microsoft/onnxruntime-extensions
Publicmirrored from https://github.com/microsoft/onnxruntime-extensionsAvailable
cmake/externals/farmhash/dev/PATCH
153lines · modecode
| 1 | --- main.cpp 2011-09-08 10:12:34.000000000 -0700 |
| 2 | +++ main.cpp 2013-06-18 10:21:07.000000000 -0700 |
| 3 | @@ -15,7 +18,9 @@ |
| 4 | |
| 5 | bool g_testSanity = false; |
| 6 | bool g_testSpeed = false; |
| 7 | -bool g_testDiff = false; |
| 8 | +bool g_testDiff1 = false; |
| 9 | +bool g_testDiff2 = false; |
| 10 | +bool g_testDiff3 = false; |
| 11 | bool g_testDiffDist = false; |
| 12 | bool g_testAvalanche = false; |
| 13 | bool g_testBIC = false; |
| 14 | @@ -148,7 +213,7 @@ |
| 15 | BulkSpeedTest(info->hash,info->verification); |
| 16 | printf("\n"); |
| 17 | |
| 18 | - for(int i = 1; i < 32; i++) |
| 19 | + for(int i = 1; i <= 72; i++) |
| 20 | { |
| 21 | double cycles; |
| 22 | |
| 23 | @@ -161,16 +226,40 @@ |
| 24 | //----------------------------------------------------------------------------- |
| 25 | // Differential tests |
| 26 | |
| 27 | - if(g_testDiff || g_testAll) |
| 28 | - { |
| 29 | - printf("[[[ Differential Tests ]]]\n\n"); |
| 30 | + if(g_testDiff1 || g_testAll) |
| 31 | + { |
| 32 | + printf("[[[ Differential Tests (64) ]]]\n\n"); |
| 33 | |
| 34 | bool result = true; |
| 35 | bool dumpCollisions = false; |
| 36 | |
| 37 | result &= DiffTest< Blob<64>, hashtype >(hash,5,1000,dumpCollisions); |
| 38 | + |
| 39 | + if(!result) printf("*********FAIL*********\n"); |
| 40 | + printf("\n"); |
| 41 | + } |
| 42 | + |
| 43 | + if(g_testDiff2 || g_testAll) |
| 44 | + { |
| 45 | + printf("[[[ Differential Tests (256) ]]]\n\n"); |
| 46 | + |
| 47 | + bool result = true; |
| 48 | + bool dumpCollisions = false; |
| 49 | + |
| 50 | + result &= DiffTest< Blob<256>, hashtype >(hash,3,1000,dumpCollisions); |
| 51 | + |
| 52 | + if(!result) printf("*********FAIL*********\n"); |
| 53 | + printf("\n"); |
| 54 | + } |
| 55 | + |
| 56 | + if(g_testDiff3 || g_testAll) |
| 57 | + { |
| 58 | + printf("[[[ Differential Tests (128) ]]]\n\n"); |
| 59 | + |
| 60 | + bool result = true; |
| 61 | + bool dumpCollisions = false; |
| 62 | + |
| 63 | result &= DiffTest< Blob<128>, hashtype >(hash,4,1000,dumpCollisions); |
| 64 | - result &= DiffTest< Blob<256>, hashtype >(hash,3,1000,dumpCollisions); |
| 65 | |
| 66 | if(!result) printf("*********FAIL*********\n"); |
| 67 | printf("\n"); |
| 68 | @@ -544,6 +633,37 @@ |
| 69 | { |
| 70 | const char * hashToTest = "murmur3a"; |
| 71 | |
| 72 | + bool use_affinity = true, part0 = false, part1 = false, part2 = false, part3 = false, part4 = false, part5 = false, part6 = false, part7 = false, part8 = false, part9 = false; |
| 73 | + while (argc > 2) { |
| 74 | + if (!strcmp(argv[1], "--noaffinity")) { |
| 75 | + use_affinity = false; |
| 76 | + } else if (!strcmp(argv[1], "--part0")) { |
| 77 | + part0 = true; |
| 78 | + } else if (!strcmp(argv[1], "--part1")) { |
| 79 | + part1 = true; |
| 80 | + } else if (!strcmp(argv[1], "--part2")) { |
| 81 | + part2 = true; |
| 82 | + } else if (!strcmp(argv[1], "--part3")) { |
| 83 | + part3 = true; |
| 84 | + } else if (!strcmp(argv[1], "--part4")) { |
| 85 | + part4 = true; |
| 86 | + } else if (!strcmp(argv[1], "--part5")) { |
| 87 | + part5 = true; |
| 88 | + } else if (!strcmp(argv[1], "--part6")) { |
| 89 | + part6 = true; |
| 90 | + } else if (!strcmp(argv[1], "--part7")) { |
| 91 | + part7 = true; |
| 92 | + } else if (!strcmp(argv[1], "--part8")) { |
| 93 | + part8 = true; |
| 94 | + } else if (!strcmp(argv[1], "--part9")) { |
| 95 | + part9 = true; |
| 96 | + } else { |
| 97 | + fprintf(stderr, "Unknown flag '%s'\n", argv[1]); |
| 98 | + return 1; |
| 99 | + } |
| 100 | + argc--; |
| 101 | + argv++; |
| 102 | + } |
| 103 | if(argc < 2) |
| 104 | { |
| 105 | printf("(No test hash given on command line, testing Murmur3_x86_32.)\n"); |
| 106 | @@ -555,26 +675,30 @@ |
| 107 | |
| 108 | // Code runs on the 3rd CPU by default |
| 109 | |
| 110 | - SetAffinity((1 << 2)); |
| 111 | - |
| 112 | - SelfTest(); |
| 113 | + if (use_affinity) { |
| 114 | + SetAffinity((1 << 2)); |
| 115 | + } |
| 116 | + |
| 117 | + //SelfTest(); |
| 118 | |
| 119 | int timeBegin = clock(); |
| 120 | |
| 121 | - g_testAll = true; |
| 122 | - |
| 123 | - //g_testSanity = true; |
| 124 | - //g_testSpeed = true; |
| 125 | - //g_testAvalanche = true; |
| 126 | - //g_testBIC = true; |
| 127 | - //g_testCyclic = true; |
| 128 | - //g_testTwoBytes = true; |
| 129 | - //g_testDiff = true; |
| 130 | - //g_testDiffDist = true; |
| 131 | - //g_testSparse = true; |
| 132 | - //g_testPermutation = true; |
| 133 | - //g_testWindow = true; |
| 134 | - //g_testZeroes = true; |
| 135 | + g_testAll = !part0 && !part1 && !part2 && !part3 && !part4 && !part5 && !part6 && !part7 && !part8 && !part9; |
| 136 | + |
| 137 | + g_testSanity = part0; |
| 138 | + g_testSpeed = false; |
| 139 | + g_testAvalanche = part3; |
| 140 | + g_testBIC = part4; |
| 141 | + g_testCyclic = part9; |
| 142 | + g_testTwoBytes = part6; |
| 143 | + g_testDiff1 = part7; |
| 144 | + g_testDiff2 = part5; |
| 145 | + g_testDiff3 = part1; |
| 146 | + g_testDiffDist = part8; |
| 147 | + g_testSparse = part0; |
| 148 | + g_testPermutation = part2; |
| 149 | + g_testWindow = part3; |
| 150 | + g_testZeroes = part4; |
| 151 | |
| 152 | testHash(hashToTest); |