> Sixth, learning from mistakes and is not license to lower expectations. Each > time I broke the code, I looked beyond the instance problem and questioned > why it happened in the first place. I then placed controls to stop future > breaks. Of all the controls that can be placed, we achieve the highest yield > from cryptest.sh and additional self tests. > > I've been tracking bug reports and performance of cryptest.sh. cryptest.sh > detected 78% of the bugs before users experienced them. The script caught > every problem introduced this week. If you are submitting patches, then it > would behoove you to run cryptest.sh on your integrated changes or risk > being tarred and feathered by users.
By the way, cryptest.sh can be found at https://github.com/weidai11/cryptopp/blob/master/cryptest.sh. Here is the result of running it on a late 2010 MacBook. I'd be interested to know if anyone else tests their library under 75 different configurations for one platform. Keep in mind I do this continually for the BSDs, Linux, OS X and Solaris. (And the 2 to 10 hour runtime explains why a break creeps into Master for an instance. The script takes a while to run, so we have to wait for the results to catch unforeseen issues). ************************************************ 74 configurations tested - No Posix NDEBUG or assert - C++ std::min and std::max - X86 rotate immediate code generation - Debug, default CXXFLAGS - Release, default CXXFLAGS - Debug, x86_64 minimum arch CXXFLAGS - Release, x86_64 minimum arch CXXFLAGS - Debug, mismatched arch capabilities - Release, mismatched arch capabilities - Debug, DISABLE_ASM - Release, DISABLE_ASM - Debug, c++03 - Release, c++03 - Debug, c++11 - Release, c++11 - Debug, gnu++11 - Release, gnu++11 - Debug, c++14 - Release, c++14 - Debug, gnu++14 - Release, gnu++14 - Debug, MAINTAIN_BACKWARDS_COMPATIBILITY - Release, MAINTAIN_BACKWARDS_COMPATIBILITY - Debug, INIT_PRIORITY - Release, INIT_PRIORITY - Debug, NO_UNALIGNED_DATA_ACCESS - Release, NO_UNALIGNED_DATA_ACCESS - Debug, NO_OS_DEPENDENCE - Release, NO_OS_DEPENDENCE - Debug, -O3 optimizations - Release, -O3 optimizations - Debug, -O5 optimizations - Release, -O5 optimizations - Debug, -Os optimizations - Release, -Os optimizations - Debug, -Ofast optimizations - Release, -Ofast optimizations - Debug, dead code strip - Release, dead code strip - Debug, OpenMP - Release, OpenMP - Debug, c++03, Asan - Release, c++03, Asan - Debug, c++11, Asan - Release, c++11, Asan - Release, c++14, Asan - Darwin, c++03, libc++ (LLVM) - Darwin, c++03, libstdc++ (GNU) - Darwin, c++11, libc++ (LLVM) - Darwin, c++11, libstdc++ (GNU) - Darwin, c++14, libc++ (LLVM) - Darwin, c++14, libstdc++ (GNU) - Darwin, Intel multiarch, c++03 - Darwin, Intel multiarch, c++11 - Darwin, Intel multiarch, c++14 - Darwin, c++03, Malloc Guards - Darwin, c++11, Malloc Guards - Darwin, c++14, Malloc Guards - AES, RDRAND and RDSEED - Benchmarks, c++03 - Benchmarks, c++11 - Benchmarks, c++14 - Valgrind, c++03 - Valgrind, c++11 - Valgrind, c++14 - GCC compiler - MacPorts 5.x GCC compiler - MacPorts 6.x GCC compiler - MacPorts 3.7 Clang compiler - MacPorts 3.8 Clang compiler - MacPorts 3.9 Clang compiler - Xcode Clang compiler - Test install with data directory - Test remove with data directory ************************************************ Testing started: Wed Sep 21 01:26:40 EDT 2016 Testing finished: Wed Sep 21 11:25:15 EDT 2016 -- -- You received this message because you are subscribed to the "Crypto++ Users" Google Group. To unsubscribe, send an email to [email protected]. More information about Crypto++ and this group is available at http://www.cryptopp.com. --- You received this message because you are subscribed to the Google Groups "Crypto++ Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
