Skip to content

Commit 38738c4

Browse files
committed
CRITICAL FIX: Not all differentials can cause Diff test failures
This is reported bug #199: rurban/smhasher#199 To see this bug in action, apply the following patch (without this fix!): @@ -158,7 +158,7 @@ bool DiffTest ( pfHash hash, int diffbits, int reps, bool dumpCollisions ) reps,testcount,expected); Hash_Seed_init (hash, g_seed); - for(int i = 0; i < reps; i++) + for(int i = 0; i < 0; i++) { if(i % (reps/10) == 0) printf("."); @@ -173,6 +173,10 @@ bool DiffTest ( pfHash hash, int diffbits, int reps, bool dumpCollisions ) bool result = true; + r.rand_p(&k1,sizeof(keytype)); + diffs.push_back(k1); + diffs.push_back(k1); + result &= ProcessDifferentials(diffs,reps,dumpCollisions); return result;
1 parent 7ec44b0 commit 38738c4

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

tests/DifferentialTest.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,8 @@ bool ProcessDifferentials ( std::vector<keytype> & diffs, int reps, bool dumpCol
110110

111111
if(count > 1)
112112
{
113+
result = false;
114+
113115
if(dumpCollisions)
114116
{
115117
double pct = 100 * (double(count) / double(reps));

0 commit comments

Comments
 (0)