2008-10-23 Matthias Clasen <mclasen@redhat.com>
+ * glib/gchecksum.c (g_compute_checksum_for_data): Accept
+ lengths < 2. Patch by Tommi Komulainen
+
+ * tests/checksum-test.c: Add a test for this
+
+2008-10-23 Matthias Clasen <mclasen@redhat.com>
+
Bug 556921 – gpoll.h breaks hal compilation
* glib/gpoll.h: Include gtypes.h. Pointed out by Anis Elleuch
g_return_val_if_fail (IS_VALID_TYPE (checksum_type), NULL);
g_return_val_if_fail (data != NULL, NULL);
- g_return_val_if_fail (length > 1, NULL);
checksum = g_checksum_new (checksum_type);
if (!checksum)
}
}
+static void
+test_checksum_string (GChecksumType checksum_type,
+ const gchar *type,
+ const gchar **sums)
+{
+ int length;
+
+ for (length = 0; length <= FIXED_LEN; length++)
+ {
+ const char *expected = sums[length];
+ char *checksum;
+
+ checksum = g_compute_checksum_for_string (checksum_type,
+ FIXED_STR,
+ length);
+ if (strcmp (checksum, expected) != 0)
+ {
+ g_print ("Invalid %s checksum for `%.*s' (length %d):\n"
+ "%s (expecting: %s)\n",
+ type,
+ length, FIXED_STR, length,
+ checksum,
+ expected);
+ exit (1);
+ }
+
+ g_free (checksum);
+ }
+}
+
#define test(type, length) test_checksum (G_CHECKSUM_##type, \
#type, \
type##_sums[length], \
length)
+#define test_string(type) test_checksum_string (G_CHECKSUM_##type, \
+ #type, \
+ type##_sums)
+
int
main (int argc, char *argv[])
{
test (SHA256, length);
}
+ test_string (MD5);
+ test_string (SHA1);
+ test_string (SHA256);
+
return EXIT_SUCCESS;
}