diff --git a/.appveyor.yml b/.appveyor.yml index 67a71b8a..2f8d0246 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -34,9 +34,9 @@ test_script: - cmd: >- msbuild /t:CopyCryptestToRoot cryptest.vcxproj - + cryptest.exe v - + cryptest.exe tv all # Right now, we have a few failures that we don't know how to workaround. diff --git a/.travis.yml b/.travis.yml index ab8cab0d..fd86436c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,64 +1,64 @@ -language: cpp - -os: - - linux - - osx - -dist: trusty -sudo: false - -# OS X only supports one image. Use the latest. -osx_image: xcode8.2 - -git: - depth: 3 - -compiler: - - clang - - gcc - -env: - global: - - BUILD_JOBS=2 - - matrix: - - BUILD_MODE="shared" - - BUILD_MODE="static" - - BUILD_MODE="no-asm" - - BUILD_MODE="asan" - - BUILD_MODE="ubsan" - - BUILD_MODE="valgrind" - - exclude: - # Skip GCC on OS X entirely - - os: osx - compiler: gcc - - # The sanitizer builds under Clang run the tests very - # slowly and cause CI timeouts. - - compiler: clang - env: BUILD_MODE="asan" - - compiler: clang - env: BUILD_MODE="ubsan" - - compiler: clang - env: BUILD_MODE="valgrind" - -script: - - make clean &>/dev/null && make - - ./cryptest.exe v && ./cryptest.exe tv all - -# whitelist branches to avoid testing feature branches twice -branches: - only: - - master - -addons: - sonarqube: true - - coverity_scan: - project: - name: "cryptopp" - build_command: "make -j 2" - -#notifications: -# email: jdoe@example.com +language: cpp + +os: + - linux + - osx + +dist: trusty +sudo: false + +# OS X only supports one image. Use the latest. +osx_image: xcode8.2 + +git: + depth: 3 + +compiler: + - clang + - gcc + +env: + global: + - BUILD_JOBS=2 + + matrix: + - BUILD_MODE="shared" + - BUILD_MODE="static" + - BUILD_MODE="no-asm" + - BUILD_MODE="asan" + - BUILD_MODE="ubsan" + - BUILD_MODE="valgrind" + + exclude: + # Skip GCC on OS X entirely + - os: osx + compiler: gcc + + # The sanitizer builds under Clang run the tests very + # slowly and cause CI timeouts. + - compiler: clang + env: BUILD_MODE="asan" + - compiler: clang + env: BUILD_MODE="ubsan" + - compiler: clang + env: BUILD_MODE="valgrind" + +script: + - make clean &>/dev/null && make + - ./cryptest.exe v && ./cryptest.exe tv all + +# whitelist branches to avoid testing feature branches twice +branches: + only: + - master + +addons: + sonarqube: true + + coverity_scan: + project: + name: "cryptopp" + build_command: "make -j 2" + +#notifications: +# email: jdoe@example.com diff --git a/GNUmakefile b/GNUmakefile index 91633f7f..6acf84fe 100755 --- a/GNUmakefile +++ b/GNUmakefile @@ -725,22 +725,22 @@ endif .PHONY: trim trim: ifneq ($(IS_DARWIN),0) - sed -i '' -e's/[[:space:]]*$$//' *.sh *.h *.cpp *.asm *.s *.sln *.vcxproj *.filters GNUmakefile GNUmakefile-cross - sed -i '' -e's/[[:space:]]*$$//' TestData/*.dat TestVectors/*.txt TestScripts/*.sh + sed -i '' -e's/[[:space:]]*$$//' *.sh .*.yml *.h *.cpp *.asm *.s *.sln *.vcxproj *.filters GNUmakefile GNUmakefile-cross + sed -i '' -e's/[[:space:]]*$$//' TestData/*.dat TestVectors/*.txt TestScripts/*.* make convert else - sed -i -e's/[[:space:]]*$$//' *.sh *.h *.cpp *.asm *.s *.sln *.vcxproj *.filters GNUmakefile GNUmakefile-cross - sed -i -e's/[[:space:]]*$$//' TestData/*.dat TestVectors/*.txt TestScripts/*.sh + sed -i -e's/[[:space:]]*$$//' *.sh .*.yml *.h *.cpp *.asm *.s *.sln *.vcxproj *.filters GNUmakefile GNUmakefile-cross + sed -i -e's/[[:space:]]*$$//' TestData/*.dat TestVectors/*.txt TestScripts/*.* make convert endif .PHONY: convert convert: @-$(CHMOD) 0700 TestVectors/ TestData/ TestScripts/ - @-$(CHMOD) 0600 $(TEXT_FILES) *.asm *.s *.zip *.cmake TestVectors/*.txt TestData/*.dat + @-$(CHMOD) 0600 $(TEXT_FILES) .*.yml *.asm *.s *.zip *.cmake TestVectors/*.txt TestData/*.dat TestScripts/*.* @-$(CHMOD) 0700 $(EXEC_FILES) *.sh *.cmd TestScripts/*.sh TestScripts/*.pl TestScripts/*.cmd @-$(CHMOD) 0700 *.cmd *.sh GNUmakefile GNUmakefile-cross TestScripts/*.sh TestScripts/*.pl - -unix2dos --keepdate --quiet $(TEXT_FILES) *.asm *.cmd *.cmake TestScripts/*.pl TestScripts/*.cmd + -unix2dos --keepdate --quiet $(TEXT_FILES) .*.yml *.asm *.cmd *.cmake TestScripts/*.* -dos2unix --keepdate --quiet GNUmakefile GNUmakefile-cross *.s *.sh TestScripts/*.sh ifneq ($(IS_DARWIN),0) @-xattr -c * diff --git a/TestScripts/coverity-linux.txt b/TestScripts/coverity-linux.txt index b6805af6..3eedcb6c 100644 --- a/TestScripts/coverity-linux.txt +++ b/TestScripts/coverity-linux.txt @@ -1,32 +1,32 @@ -# coverity-linux.txt - Scan build submission instructions for Unix and Linux. -# Written and placed in public domain by Jeffrey Walton and Uri Blumenthal. -# Copyright assigned to Crypto++ project. -# -# The following are copy/paste instructions for invoking cov-build, building the library and submitting the artifacts for a scan. -# -# For more information see http://cryptopp.com/wiki/Coverity_Scan. - -################################################################## - -reset - -make distclean &>/dev/null - -# Usually we test with these flags -# CXXFLAGS="-DNDEBUG -g3 -O2" - -# Testing for Issue 302 (http://github.com/weidai11/cryptopp/issues/302) -CXXFLAGS="-DNDEBUG -g2 -O3 -march=i686 -msse -msse2 -msse3 -mssse3 -mno-aes" cov-build --dir cov-int make -j 2 - -tar czvf cryptopp.tgz cov-int - -CRYPTOPP_COVERITY_TOKEN=XXXXXXXXXXXXXXXX -COVERITY_SCAN_NAME="Rijndael-AliasedTable-SSE2-Linux-i686" - -curl - --form token="$CRYPTOPP_COVERITY_TOKEN" \ - --form email=webmaster@cryptopp.com \ - --form file=@cryptopp.tgz \ - --form version="$COVERITY_SCAN_NAME" \ - --form description="$COVERITY_SCAN_NAME" \ - https://scan.coverity.com/builds?project=Cryptopp +# coverity-linux.txt - Scan build submission instructions for Unix and Linux. +# Written and placed in public domain by Jeffrey Walton and Uri Blumenthal. +# Copyright assigned to Crypto++ project. +# +# The following are copy/paste instructions for invoking cov-build, building the library and submitting the artifacts for a scan. +# +# For more information see http://cryptopp.com/wiki/Coverity_Scan. + +################################################################## + +reset + +make distclean &>/dev/null + +# Usually we test with these flags +# CXXFLAGS="-DNDEBUG -g3 -O2" + +# Testing for Issue 302 (http://github.com/weidai11/cryptopp/issues/302) +CXXFLAGS="-DNDEBUG -g2 -O3 -march=i686 -msse -msse2 -msse3 -mssse3 -mno-aes" cov-build --dir cov-int make -j 2 + +tar czvf cryptopp.tgz cov-int + +CRYPTOPP_COVERITY_TOKEN=XXXXXXXXXXXXXXXX +COVERITY_SCAN_NAME="Rijndael-AliasedTable-SSE2-Linux-i686" + +curl + --form token="$CRYPTOPP_COVERITY_TOKEN" \ + --form email=webmaster@cryptopp.com \ + --form file=@cryptopp.tgz \ + --form version="$COVERITY_SCAN_NAME" \ + --form description="$COVERITY_SCAN_NAME" \ + https://scan.coverity.com/builds?project=Cryptopp diff --git a/TestScripts/coverity-macosx.txt b/TestScripts/coverity-macosx.txt index fe778240..d5df3f75 100644 --- a/TestScripts/coverity-macosx.txt +++ b/TestScripts/coverity-macosx.txt @@ -1,36 +1,36 @@ -# coverity-linux.txt - Scan build submission instructions for Unix and Linux. -# Written and placed in public domain by Jeffrey Walton and Uri Blumenthal. -# Copyright assigned to Crypto++ project. -# -# The following are copy/paste instructions for invoking cov-build, building the library and submitting the artifacts for a scan. -# -# For more information see http://cryptopp.com/wiki/Coverity_Scan. - -################################################################## - -reset - -make distclean &>/dev/null - -# Usually we test with these flags -CXXFLAGS="-DNDEBUG -g3 -O2" cov-build --dir cov-int make -j 2 - -# Sometimes we need these flags (add COVERITY_UNSUPPORTED) -# COVERITY_UNSUPPORTED=1 CXXFLAGS="-DNDEBUG -g3 -O2" cov-build --dir cov-int make -j 2 - -# Sometimes we need these flags (alternate compile, C++11) -# CXX=/opt/local/bin/clang++-mp-3.7 COVERITY_UNSUPPORTED=1 CXXFLAGS="-DNDEBUG -g3 -O2 -std=c++11" cov-build --dir cov-int make -j 2 - - -tar czvf cryptopp.tgz cov-int - -CRYPTOPP_COVERITY_TOKEN=XXXXXXXXXXXXXXXX -COVERITY_SCAN_NAME="Cryptopp-MacOSX-x86_64" - -curl - --form token="$CRYPTOPP_COVERITY_TOKEN" \ - --form email=webmaster@cryptopp.com \ - --form file=@cryptopp.tgz \ - --form version="$COVERITY_SCAN_NAME" \ - --form description="$COVERITY_SCAN_NAME" \ - https://scan.coverity.com/builds?project=Cryptopp +# coverity-linux.txt - Scan build submission instructions for Unix and Linux. +# Written and placed in public domain by Jeffrey Walton and Uri Blumenthal. +# Copyright assigned to Crypto++ project. +# +# The following are copy/paste instructions for invoking cov-build, building the library and submitting the artifacts for a scan. +# +# For more information see http://cryptopp.com/wiki/Coverity_Scan. + +################################################################## + +reset + +make distclean &>/dev/null + +# Usually we test with these flags +CXXFLAGS="-DNDEBUG -g3 -O2" cov-build --dir cov-int make -j 2 + +# Sometimes we need these flags (add COVERITY_UNSUPPORTED) +# COVERITY_UNSUPPORTED=1 CXXFLAGS="-DNDEBUG -g3 -O2" cov-build --dir cov-int make -j 2 + +# Sometimes we need these flags (alternate compile, C++11) +# CXX=/opt/local/bin/clang++-mp-3.7 COVERITY_UNSUPPORTED=1 CXXFLAGS="-DNDEBUG -g3 -O2 -std=c++11" cov-build --dir cov-int make -j 2 + + +tar czvf cryptopp.tgz cov-int + +CRYPTOPP_COVERITY_TOKEN=XXXXXXXXXXXXXXXX +COVERITY_SCAN_NAME="Cryptopp-MacOSX-x86_64" + +curl + --form token="$CRYPTOPP_COVERITY_TOKEN" \ + --form email=webmaster@cryptopp.com \ + --form file=@cryptopp.tgz \ + --form version="$COVERITY_SCAN_NAME" \ + --form description="$COVERITY_SCAN_NAME" \ + https://scan.coverity.com/builds?project=Cryptopp diff --git a/TestScripts/coverity-windows.txt b/TestScripts/coverity-windows.txt index b289920d..c8f2f381 100644 --- a/TestScripts/coverity-windows.txt +++ b/TestScripts/coverity-windows.txt @@ -1,30 +1,30 @@ -REM coverity-windows.txt - Scan build submission instructions for Windows using cryptest.nmake. -REM Written and placed in public domain by Jeffrey Walton and Uri Blumenthal. -REM Copyright assigned to Crypto++ project. -REM -REM The following are copy/paste instructions for invoking cov-build, building the library and -REM submitting the artifacts for a scan. Also see http://cryptopp.com/wiki/Coverity_Scan. - -REM ################################################################ - -cls - -del /f cryptopp.zip -rmdir /q /s cov-int -nmake /f cryptest.nmake clean - -REM Uncomment CXXFLAGS in makefile. Pay attention to X86, X64 or ARM -cov-build.exe --dir cov-int nmake /f cryptest.nmake - -7z.exe a -r -tzip -mx=9 cryptopp.zip cov-int - -set CRYPTOPP_COVERITY_TOKEN=XXXXXXXXXXXXXXXX -set COVERITY_SCAN_NAME=Rijndael-AliasedTable-SSE2-Windows-X64 - -curl.exe ^ - --form token="%CRYPTOPP_COVERITY_TOKEN%" ^ - --form email=webmaster@cryptopp.com ^ - --form file=@cryptopp.zip ^ - --form version="%COVERITY_SCAN_NAME%" ^ - --form description="%COVERITY_SCAN_NAME%" ^ - https://scan.coverity.com/builds?project=Cryptopp +REM coverity-windows.txt - Scan build submission instructions for Windows using cryptest.nmake. +REM Written and placed in public domain by Jeffrey Walton and Uri Blumenthal. +REM Copyright assigned to Crypto++ project. +REM +REM The following are copy/paste instructions for invoking cov-build, building the library and +REM submitting the artifacts for a scan. Also see http://cryptopp.com/wiki/Coverity_Scan. + +REM ################################################################ + +cls + +del /f cryptopp.zip +rmdir /q /s cov-int +nmake /f cryptest.nmake clean + +REM Uncomment CXXFLAGS in makefile. Pay attention to X86, X64 or ARM +cov-build.exe --dir cov-int nmake /f cryptest.nmake + +7z.exe a -r -tzip -mx=9 cryptopp.zip cov-int + +set CRYPTOPP_COVERITY_TOKEN=XXXXXXXXXXXXXXXX +set COVERITY_SCAN_NAME=Rijndael-AliasedTable-SSE2-Windows-X64 + +curl.exe ^ + --form token="%CRYPTOPP_COVERITY_TOKEN%" ^ + --form email=webmaster@cryptopp.com ^ + --form file=@cryptopp.zip ^ + --form version="%COVERITY_SCAN_NAME%" ^ + --form description="%COVERITY_SCAN_NAME%" ^ + https://scan.coverity.com/builds?project=Cryptopp