Improve coverage of GHmac tests
authorMatthias Clasen <mclasen@redhat.com>
Thu, 6 Oct 2011 03:24:08 +0000 (23:24 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 8 Oct 2011 23:02:05 +0000 (19:02 -0400)
glib/tests/hmac.c

index db6e2719c3b9144d686f6ec6895504b2f4655b73..008d2938b50371ca4dcdf1e2d431901a96608ad2 100644 (file)
@@ -239,6 +239,53 @@ test_hmac_ref_unref (void)
   g_hmac_unref (hmac);
 }
 
+static void
+test_hmac_copy (void)
+{
+  GHmac *hmac, *check;
+
+  hmac = g_hmac_new (G_CHECKSUM_SHA256, (guchar*)"aaa", 3);
+  check = g_hmac_copy (hmac);
+  g_assert (check != hmac);
+  g_assert_cmpstr (g_hmac_get_string (hmac), ==, g_hmac_get_string (check));
+  g_hmac_unref (check);
+  g_hmac_unref (hmac);
+}
+
+static void
+test_hmac_for_data (void)
+{
+  gchar *string;
+  GHmac *hmac;
+
+  string = g_compute_hmac_for_data (G_CHECKSUM_SHA1,
+                                    (guchar*)"aaa", 3,
+                                    (guchar*)"bcdef", 5);
+
+  hmac = g_hmac_new (G_CHECKSUM_SHA1, (guchar*)"aaa", 3);
+  g_hmac_update (hmac, (guchar*)"bcdef", 5);
+  g_assert_cmpstr (string, ==, g_hmac_get_string (hmac));
+  g_hmac_unref (hmac);
+  g_free (string);
+}
+
+static void
+test_hmac_for_string (void)
+{
+  gchar *string;
+  GHmac *hmac;
+
+  string = g_compute_hmac_for_string (G_CHECKSUM_SHA1,
+                                      (guchar*)"aaa", 3,
+                                      "bcdef", -1);
+
+  hmac = g_hmac_new (G_CHECKSUM_SHA1, (guchar*)"aaa", 3);
+  g_hmac_update (hmac, (guchar*)"bcdef", 5);
+  g_assert_cmpstr (string, ==, g_hmac_get_string (hmac));
+  g_hmac_unref (hmac);
+  g_free (string);
+}
+
 int
 main (int argc,
     char **argv)
@@ -263,6 +310,9 @@ main (int argc,
     }
 
   g_test_add_func ("/hmac/ref-unref", test_hmac_ref_unref);
+  g_test_add_func ("/hmac/copy", test_hmac_copy);
+  g_test_add_func ("/hmac/for-data", test_hmac_for_data);
+  g_test_add_func ("/hmac/for-string", test_hmac_for_string);
 
   return g_test_run ();
 }