Browse Source

Enable CI encryption, temporarily disabled OSX and appveyor latex builds

Stefan Profanter 6 years ago
parent
commit
98d2160ab3

+ 7 - 7
.travis.yml

@@ -53,13 +53,13 @@ matrix:
     #- os: linux
     #  compiler: gcc
     #  env: LINT=true
-    # - os: osx
-    #   compiler: clang
-    #   # disable homebrew auto update which takes a lot of time
-    #   env: HOMEBREW_NO_AUTO_UPDATE=1
-    #   cache:
-    #     directories:
-    #       - $HOME/Library/Caches/Homebrew
+    - os: osx
+      compiler: clang
+      # disable homebrew auto update which takes a lot of time
+      env: HOMEBREW_NO_AUTO_UPDATE=1
+      cache:
+        directories:
+          - $HOME/Library/Caches/Homebrew
 
 addons:
   apt:

+ 5 - 0
tests/fuzz/CMakeLists.txt

@@ -61,6 +61,11 @@ set(fuzzing_plugin_sources ${PROJECT_SOURCE_DIR}/plugins/ua_network_tcp.c
         ${PROJECT_SOURCE_DIR}/plugins/ua_pki_certificate.c
         ${PROJECT_SOURCE_DIR}/plugins/ua_securitypolicy_none.c)
 
+if(UA_ENABLE_ENCRYPTION)
+    set(fuzzing_plugin_sources ${fuzzing_plugin_sources}
+        ${PROJECT_SOURCE_DIR}/plugins/ua_securitypolicy_basic128rsa15.c)
+endif()
+
 add_library(open62541-fuzzplugins OBJECT ${fuzzing_plugin_sources})
 add_dependencies(open62541-fuzzplugins open62541)
 

+ 19 - 19
tools/appveyor/build.ps1

@@ -10,24 +10,24 @@ Copy-Item LICENSE pack
 Copy-Item AUTHORS pack
 Copy-Item README.md pack
 
-# Write-Host -ForegroundColor Green "`n###################################################################"
-# Write-Host -ForegroundColor Green "`n##### Building Documentation on $env:CC_NAME #####`n"
-# New-Item -ItemType directory -Path build
-# cd build
-# & cmake -DMIKTEX_BINARY_PATH=c:\miktex\texmfs\install\miktex\bin -DCMAKE_BUILD_TYPE=Release -DUA_COMPILE_AS_CXX:BOOL=$env:FORCE_CXX -DUA_BUILD_EXAMPLES:BOOL=OFF -G"$env:CC_NAME" ..
-# & cmake --build . --target doc_latex
-# if ($LASTEXITCODE -and $LASTEXITCODE -ne 0) {
-# 	Write-Host -ForegroundColor Red "`n`n*** Make doc_latex. Exiting ... ***"
-# 	exit $LASTEXITCODE
-# }
-# & cmake --build . --target doc_pdf
-# if ($LASTEXITCODE -and $LASTEXITCODE -ne 0) {
-# 	Write-Host -ForegroundColor Red "`n`n*** Make doc_pdf. Exiting ... ***"
-# 	exit $LASTEXITCODE
-# }
-# cd ..
-# Move-Item -Path "build\doc_latex\open62541.pdf" -Destination pack\
-# Remove-Item -Path build -Recurse -Force
+Write-Host -ForegroundColor Green "`n###################################################################"
+Write-Host -ForegroundColor Green "`n##### Building Documentation on $env:CC_NAME #####`n"
+New-Item -ItemType directory -Path build
+cd build
+& cmake -DMIKTEX_BINARY_PATH=c:\miktex\texmfs\install\miktex\bin -DCMAKE_BUILD_TYPE=Release -DUA_COMPILE_AS_CXX:BOOL=$env:FORCE_CXX -DUA_BUILD_EXAMPLES:BOOL=OFF -G"$env:CC_NAME" ..
+& cmake --build . --target doc_latex
+if ($LASTEXITCODE -and $LASTEXITCODE -ne 0) {
+	Write-Host -ForegroundColor Red "`n`n*** Make doc_latex. Exiting ... ***"
+	exit $LASTEXITCODE
+}
+& cmake --build . --target doc_pdf
+if ($LASTEXITCODE -and $LASTEXITCODE -ne 0) {
+	Write-Host -ForegroundColor Red "`n`n*** Make doc_pdf. Exiting ... ***"
+	exit $LASTEXITCODE
+}
+cd ..
+Move-Item -Path "build\doc_latex\open62541.pdf" -Destination pack\
+Remove-Item -Path build -Recurse -Force
 
 Write-Host -ForegroundColor Green "`n###################################################################"
 Write-Host -ForegroundColor Green "`n##### Testing $env:CC_NAME #####`n"
@@ -113,7 +113,7 @@ if ($env:CC_SHORTNAME -eq "vs2015") {
 	Write-Host -ForegroundColor Green "`n##### Testing $env:CC_NAME with unit tests #####`n"
 	New-Item -ItemType directory -Path "build"
 	cd build
-	& cmake -DCMAKE_BUILD_TYPE=Debug -DUA_BUILD_EXAMPLES=OFF -DUA_ENABLE_DISCOVERY=ON -DUA_ENABLE_DISCOVERY_MULTICAST=ON -DUA_BUILD_UNIT_TESTS=ON -DUA_ENABLE_UNIT_TESTS_MEMCHECK=ON -DCMAKE_LIBRARY_PATH=c:\check\lib -DCMAKE_INCLUDE_PATH=c:\check\include -DUA_COMPILE_AS_CXX:BOOL=$env:FORCE_CXX -G"$env:CC_NAME" ..
+	& cmake -DCMAKE_BUILD_TYPE=Debug -DUA_BUILD_EXAMPLES=OFF -DUA_ENABLE_DISCOVERY=ON -DUA_ENABLE_DISCOVERY_MULTICAST=ON -DUA_ENABLE_ENCRYPTION=ON -DUA_BUILD_UNIT_TESTS=ON -DUA_ENABLE_UNIT_TESTS_MEMCHECK=ON -DCMAKE_LIBRARY_PATH=c:\check\lib -DCMAKE_INCLUDE_PATH=c:\check\include -DUA_COMPILE_AS_CXX:BOOL=$env:FORCE_CXX -G"$env:CC_NAME" ..
 	Invoke-Expression $make_cmd
     if ($LASTEXITCODE -and $LASTEXITCODE -ne 0) {
     	Write-Host -ForegroundColor Red "`n`n*** Make failed. Exiting ... ***"

+ 45 - 32
tools/travis/travis_linux_script.sh

@@ -25,11 +25,11 @@ fi
 if ! [ -z ${FUZZER+x} ]; then
     # Test the corpus generator and use new corpus for fuzz test
     ./tests/fuzz/generate_corpus.sh
-	if [ $? -ne 0 ] ; then exit 1 ; fi
+    if [ $? -ne 0 ] ; then exit 1 ; fi
 
-	cd build_fuzz
-	make && make run_fuzzer
-	if [ $? -ne 0 ] ; then exit 1 ; fi
+    cd build_fuzz
+    make && make run_fuzzer
+    if [ $? -ne 0 ] ; then exit 1 ; fi
     exit 0
 fi
 
@@ -172,58 +172,71 @@ else
     make -j
     if [ $? -ne 0 ] ; then exit 1 ; fi
     cd .. && rm build -rf
+    echo -en 'travis_fold:end:script.build.shared_libs\\r'
 
-	if [ "$CC" != "tcc" ]; then
-		echo -en 'travis_fold:end:script.build.shared_libs\\r'echo -e "\r\n==Compile multithreaded version==" && echo -en 'travis_fold:start:script.build.multithread\\r'
-		mkdir -p build && cd build
-		cmake -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/$PYTHON -DUA_ENABLE_MULTITHREADING=ON -DUA_BUILD_EXAMPLES=ON ..
-		make -j
-		if [ $? -ne 0 ] ; then exit 1 ; fi
-		cd .. && rm build -rf
-		echo -en 'travis_fold:end:script.build.multithread\\r'
-	fi
-
-    echo -e "\r\n== Compile without discovery version ==" && echo -en 'travis_fold:start:script.build.unit_test_valgrind\\r'
+    if [ "$CC" != "tcc" ]; then
+        echo -e "\r\n==Compile multithreaded version==" && echo -en 'travis_fold:start:script.build.multithread\\r'
+        mkdir -p build && cd build
+        cmake -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/$PYTHON -DUA_ENABLE_MULTITHREADING=ON -DUA_BUILD_EXAMPLES=ON ..
+        make -j
+        if [ $? -ne 0 ] ; then exit 1 ; fi
+        cd .. && rm build -rf
+        echo -en 'travis_fold:end:script.build.multithread\\r'
+    fi
+
+    echo -e "\r\n== Compile with encryption ==" && echo -en 'travis_fold:start:script.build.encryption\\r'
+    mkdir -p build && cd build
+    cmake -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/$PYTHON -DUA_ENABLE_ENCRYPTION=ON -DUA_BUILD_EXAMPLES=ON ..
+    make -j
+    if [ $? -ne 0 ] ; then exit 1 ; fi
+    cd .. && rm build -rf
+    echo -en 'travis_fold:end:script.build.encryption\\r'
+
+    echo -e "\r\n== Compile without discovery version ==" && echo -en 'travis_fold:start:script.build.discovery\\r'
     mkdir -p build && cd build
     cmake -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/$PYTHON -DUA_ENABLE_DISCOVERY=OFF -DUA_ENABLE_DISCOVERY_MULTICAST=OFF -DUA_BUILD_EXAMPLES=ON ..
     make -j
     if [ $? -ne 0 ] ; then exit 1 ; fi
     cd .. && rm build -rf
+    echo -en 'travis_fold:end:script.build.discovery\\r'
 
-    echo -e "\r\n== Compile discovery without multicast version =="
+    echo -e "\r\n== Compile discovery without multicast version ==" && echo -en 'travis_fold:start:script.build.multicast\\r'
     mkdir -p build && cd build
     cmake -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/$PYTHON -DUA_ENABLE_DISCOVERY=ON -DUA_ENABLE_DISCOVERY_MULTICAST=OFF -DUA_BUILD_EXAMPLES=ON ..
     make -j
     if [ $? -ne 0 ] ; then exit 1 ; fi
     cd .. && rm build -rf
+    echo -en 'travis_fold:end:script.build.multicast\\r'
 
-	if [ "$CC" != "tcc" ]; then
-		echo -e "\r\n== Compile multithreaded version with discovery =="
-		mkdir -p build && cd build
-		cmake -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/$PYTHON -DUA_ENABLE_MULTITHREADING=ON -DUA_ENABLE_DISCOVERY=ON -DUA_ENABLE_DISCOVERY_MULTICAST=ON -DUA_BUILD_EXAMPLES=ON ..
-		make -j
-		if [ $? -ne 0 ] ; then exit 1 ; fi
-		cd .. && rm build -rf
-		echo -en 'travis_fold:end:script.build.multithread\\r'
-	fi
+    if [ "$CC" != "tcc" ]; then
+        echo -e "\r\n== Compile multithreaded version with discovery ==" && echo -en 'travis_fold:start:script.build.multithread_discovery\\r'
+        mkdir -p build && cd build
+        cmake -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/$PYTHON -DUA_ENABLE_MULTITHREADING=ON -DUA_ENABLE_DISCOVERY=ON -DUA_ENABLE_DISCOVERY_MULTICAST=ON -DUA_BUILD_EXAMPLES=ON ..
+        make -j
+        if [ $? -ne 0 ] ; then exit 1 ; fi
+        cd .. && rm build -rf
+        echo -en 'travis_fold:end:script.build.multithread_discovery\\r'
+    fi
 
     echo -e "\r\n== Unit tests (full NS0) ==" && echo -en 'travis_fold:start:script.build.unit_test_ns0_full\\r'
     mkdir -p build && cd build
     # Valgrind cannot handle the full NS0 because the generated file is too big. Thus run NS0 full without valgrind
     cmake -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/$PYTHON -DUA_ENABLE_FULL_NS0=ON \
-    -DCMAKE_BUILD_TYPE=Debug -DUA_BUILD_EXAMPLES=ON -DUA_ENABLE_DISCOVERY=ON -DUA_ENABLE_DISCOVERY_MULTICAST=ON \
-    -DUA_BUILD_UNIT_TESTS=ON -DUA_ENABLE_COVERAGE=OFF -DUA_ENABLE_UNIT_TESTS_MEMCHECK=OFF ..
+    -DCMAKE_BUILD_TYPE=Debug -DUA_BUILD_EXAMPLES=ON -DUA_ENABLE_ENCRYPTION=ON -DUA_ENABLE_DISCOVERY=ON \
+    -DUA_ENABLE_DISCOVERY_MULTICAST=ON -DUA_BUILD_UNIT_TESTS=ON -DUA_ENABLE_COVERAGE=OFF \
+    -DUA_ENABLE_UNIT_TESTS_MEMCHECK=OFF ..
     make -j && make test ARGS="-V"
     if [ $? -ne 0 ] ; then exit 1 ; fi
     cd .. && rm build -rf
-    echo -en 'travis_fold:end:script.build.unit_test_ns0\\r'
+    echo -en 'travis_fold:end:script.build.unit_test_ns0_full\\r'
 
-	if [ "$CC" != "tcc" ]; then
+    if [ "$CC" != "tcc" ]; then
         echo -e "\r\n== Unit tests (minimal NS0) ==" && echo -en 'travis_fold:start:script.build.unit_test_ns0_minimal\\r'
         mkdir -p build && cd build
         cmake -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/$PYTHON \
-              -DCMAKE_BUILD_TYPE=Debug -DUA_BUILD_EXAMPLES=ON -DUA_ENABLE_DISCOVERY=ON -DUA_ENABLE_DISCOVERY_MULTICAST=ON \
-              -DUA_BUILD_UNIT_TESTS=ON -DUA_ENABLE_COVERAGE=ON -DUA_ENABLE_UNIT_TESTS_MEMCHECK=ON ..
+        -DCMAKE_BUILD_TYPE=Debug -DUA_BUILD_EXAMPLES=ON  -DUA_ENABLE_ENCRYPTION=ON -DUA_ENABLE_DISCOVERY=ON \
+        -DUA_ENABLE_DISCOVERY_MULTICAST=ON -DUA_BUILD_UNIT_TESTS=ON -DUA_ENABLE_COVERAGE=ON \
+        -DUA_ENABLE_UNIT_TESTS_MEMCHECK=ON ..
         make -j && make test ARGS="-V"
         if [ $? -ne 0 ] ; then exit 1 ; fi
         echo -en 'travis_fold:end:script.build.unit_test_ns0_minimal\\r'
@@ -236,5 +249,5 @@ else
             echo -en 'travis_fold:end:script.build.coveralls\\r'
         fi
         cd .. && rm build -rf
-	fi
+    fi
 fi

+ 1 - 1
tools/travis/travis_osx_script.sh

@@ -42,7 +42,7 @@ echo -en 'travis_fold:end:script.build.multithread\\r'
 
 echo "Debug build and unit tests with valgrind" && echo -en 'travis_fold:start:script.build.unit_test\\r'
 mkdir -p build && cd build
-cmake -DCMAKE_BUILD_TYPE=Debug -DUA_BUILD_EXAMPLES=ON -DUA_ENABLE_DISCOVERY=ON -DUA_ENABLE_DISCOVERY_MULTICAST=ON -DUA_BUILD_UNIT_TESTS=ON -DUA_ENABLE_COVERAGE=ON -DUA_ENABLE_UNIT_TESTS_MEMCHECK=ON ..
+cmake -DCMAKE_BUILD_TYPE=Debug -DUA_BUILD_EXAMPLES=ON -DUA_ENABLE_ENCRYPTION=ON -DUA_ENABLE_DISCOVERY=ON -DUA_ENABLE_DISCOVERY_MULTICAST=ON -DUA_BUILD_UNIT_TESTS=ON -DUA_ENABLE_COVERAGE=ON -DUA_ENABLE_UNIT_TESTS_MEMCHECK=ON ..
 make -j && make test ARGS="-V"
 cd .. && rm -rf build
 echo -en 'travis_fold:end:script.build.unit_test\\r'