| --- main.cpp 2011-09-08 10:12:34.000000000 -0700 |
| +++ main.cpp 2013-06-18 10:21:07.000000000 -0700 |
| @@ -15,7 +18,9 @@ |
| |
| bool g_testSanity = false; |
| bool g_testSpeed = false; |
| -bool g_testDiff = false; |
| +bool g_testDiff1 = false; |
| +bool g_testDiff2 = false; |
| +bool g_testDiff3 = false; |
| bool g_testDiffDist = false; |
| bool g_testAvalanche = false; |
| bool g_testBIC = false; |
| @@ -148,7 +213,7 @@ |
| BulkSpeedTest(info->hash,info->verification); |
| printf("\n"); |
| |
| - for(int i = 1; i < 32; i++) |
| + for(int i = 1; i <= 72; i++) |
| { |
| double cycles; |
| |
| @@ -161,16 +226,40 @@ |
| //----------------------------------------------------------------------------- |
| // Differential tests |
| |
| - if(g_testDiff || g_testAll) |
| - { |
| - printf("[[[ Differential Tests ]]]\n\n"); |
| + if(g_testDiff1 || g_testAll) |
| + { |
| + printf("[[[ Differential Tests (64) ]]]\n\n"); |
| |
| bool result = true; |
| bool dumpCollisions = false; |
| |
| result &= DiffTest< Blob<64>, hashtype >(hash,5,1000,dumpCollisions); |
| + |
| + if(!result) printf("*********FAIL*********\n"); |
| + printf("\n"); |
| + } |
| + |
| + if(g_testDiff2 || g_testAll) |
| + { |
| + printf("[[[ Differential Tests (256) ]]]\n\n"); |
| + |
| + bool result = true; |
| + bool dumpCollisions = false; |
| + |
| + result &= DiffTest< Blob<256>, hashtype >(hash,3,1000,dumpCollisions); |
| + |
| + if(!result) printf("*********FAIL*********\n"); |
| + printf("\n"); |
| + } |
| + |
| + if(g_testDiff3 || g_testAll) |
| + { |
| + printf("[[[ Differential Tests (128) ]]]\n\n"); |
| + |
| + bool result = true; |
| + bool dumpCollisions = false; |
| + |
| result &= DiffTest< Blob<128>, hashtype >(hash,4,1000,dumpCollisions); |
| - result &= DiffTest< Blob<256>, hashtype >(hash,3,1000,dumpCollisions); |
| |
| if(!result) printf("*********FAIL*********\n"); |
| printf("\n"); |
| @@ -544,6 +633,37 @@ |
| { |
| const char * hashToTest = "murmur3a"; |
| |
| + bool use_affinity = true, part0 = false, part1 = false, part2 = false, part3 = false, part4 = false, part5 = false, part6 = false, part7 = false, part8 = false, part9 = false; |
| + while (argc > 2) { |
| + if (!strcmp(argv[1], "--noaffinity")) { |
| + use_affinity = false; |
| + } else if (!strcmp(argv[1], "--part0")) { |
| + part0 = true; |
| + } else if (!strcmp(argv[1], "--part1")) { |
| + part1 = true; |
| + } else if (!strcmp(argv[1], "--part2")) { |
| + part2 = true; |
| + } else if (!strcmp(argv[1], "--part3")) { |
| + part3 = true; |
| + } else if (!strcmp(argv[1], "--part4")) { |
| + part4 = true; |
| + } else if (!strcmp(argv[1], "--part5")) { |
| + part5 = true; |
| + } else if (!strcmp(argv[1], "--part6")) { |
| + part6 = true; |
| + } else if (!strcmp(argv[1], "--part7")) { |
| + part7 = true; |
| + } else if (!strcmp(argv[1], "--part8")) { |
| + part8 = true; |
| + } else if (!strcmp(argv[1], "--part9")) { |
| + part9 = true; |
| + } else { |
| + fprintf(stderr, "Unknown flag '%s'\n", argv[1]); |
| + return 1; |
| + } |
| + argc--; |
| + argv++; |
| + } |
| if(argc < 2) |
| { |
| printf("(No test hash given on command line, testing Murmur3_x86_32.)\n"); |
| @@ -555,26 +675,30 @@ |
| |
| // Code runs on the 3rd CPU by default |
| |
| - SetAffinity((1 << 2)); |
| - |
| - SelfTest(); |
| + if (use_affinity) { |
| + SetAffinity((1 << 2)); |
| + } |
| + |
| + //SelfTest(); |
| |
| int timeBegin = clock(); |
| |
| - g_testAll = true; |
| - |
| - //g_testSanity = true; |
| - //g_testSpeed = true; |
| - //g_testAvalanche = true; |
| - //g_testBIC = true; |
| - //g_testCyclic = true; |
| - //g_testTwoBytes = true; |
| - //g_testDiff = true; |
| - //g_testDiffDist = true; |
| - //g_testSparse = true; |
| - //g_testPermutation = true; |
| - //g_testWindow = true; |
| - //g_testZeroes = true; |
| + g_testAll = !part0 && !part1 && !part2 && !part3 && !part4 && !part5 && !part6 && !part7 && !part8 && !part9; |
| + |
| + g_testSanity = part0; |
| + g_testSpeed = false; |
| + g_testAvalanche = part3; |
| + g_testBIC = part4; |
| + g_testCyclic = part9; |
| + g_testTwoBytes = part6; |
| + g_testDiff1 = part7; |
| + g_testDiff2 = part5; |
| + g_testDiff3 = part1; |
| + g_testDiffDist = part8; |
| + g_testSparse = part0; |
| + g_testPermutation = part2; |
| + g_testWindow = part3; |
| + g_testZeroes = part4; |
| |
| testHash(hashToTest); |
| |