summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStef Walter <stefw@gnome.org>2013-03-25 21:16:28 +0100
committerStef Walter <stefw@gnome.org>2013-03-25 21:17:05 +0100
commitb0e44f8e1e589726c95506da5121e95a54269fd7 (patch)
treedf03d4751dbeb65c67f3a5d505d83a63f3cbe6af
parent3f74a3b32ce42cc7e38bdbf8349f976000c3af4c (diff)
Fix testing of murmur hash on bigendian systems
The murmur hash produces different output depending on the architecture https://bugzilla.redhat.com/show_bug.cgi?id=927394
-rw-r--r--common/tests/test-hash.c60
1 files changed, 23 insertions, 37 deletions
diff --git a/common/tests/test-hash.c b/common/tests/test-hash.c
index c8694e1..a1cb917 100644
--- a/common/tests/test-hash.c
+++ b/common/tests/test-hash.c
@@ -135,44 +135,30 @@ test_md5 (CuTest *cu)
static void
test_murmur2 (CuTest *cu)
{
- struct {
- const char *input;
- const char *input2;
- int hash;
- } fixtures[] = {
- { "one", NULL, 1910179066 },
- { "two", NULL, 396151652 },
- { "four", NULL, -2034170174 },
- { "seven", NULL, -588341181 },
- /* Note that these are identical output */
- { "eleven", NULL, -37856894 },
- { "ele", "ven", -37856894 },
- { NULL },
- };
-
- uint32_t first;
- uint32_t second;
- int i;
+ uint32_t one, two, four, seven, eleven, split;
- assert (sizeof (first) == P11_HASH_MURMUR2_LEN);
- for (i = 0; fixtures[i].input != NULL; i++) {
- p11_hash_murmur2 ((unsigned char *)&first,
- fixtures[i].input,
- strlen (fixtures[i].input),
- fixtures[i].input2,
- fixtures[i].input2 ? strlen (fixtures[i].input2) : 0,
- NULL);
-
- p11_hash_murmur2 ((unsigned char *)&second,
- fixtures[i].input,
- strlen (fixtures[i].input),
- fixtures[i].input2,
- fixtures[i].input2 ? strlen (fixtures[i].input2) : 0,
- NULL);
-
- CuAssertIntEquals (cu, fixtures[i].hash, first);
- CuAssertIntEquals (cu, fixtures[i].hash, second);
- }
+ assert (sizeof (one) == P11_HASH_MURMUR2_LEN);
+
+ p11_hash_murmur2 ((unsigned char *)&one, "one", 3, NULL);
+ p11_hash_murmur2 ((unsigned char *)&two, "two", 3, NULL);
+ p11_hash_murmur2 ((unsigned char *)&four, "four", 4, NULL);
+ p11_hash_murmur2 ((unsigned char *)&seven, "seven", 5, NULL);
+ p11_hash_murmur2 ((unsigned char *)&eleven, "eleven", 6, NULL);
+ p11_hash_murmur2 ((unsigned char *)&split, "ele", 3, "ven", 3, NULL);
+
+ CuAssertTrue (cu, one != two);
+ CuAssertTrue (cu, one != four);
+ CuAssertTrue (cu, one != seven);
+ CuAssertTrue (cu, one != eleven);
+
+ CuAssertTrue (cu, two != four);
+ CuAssertTrue (cu, two != seven);
+ CuAssertTrue (cu, two != eleven);
+
+ CuAssertTrue (cu, four != seven);
+ CuAssertTrue (cu, four != eleven);
+
+ CuAssertTrue (cu, split == eleven);
}
static void