From bd0ab7919bb4e2c734b57d33ecb5bf72009a3a84 Mon Sep 17 00:00:00 2001 From: Yaroslav Stefinko Date: Mon, 31 Aug 2020 12:34:59 +0300 Subject: [PATCH] [Azure]Add FV Win network test job Add job and script for Windows build/test job. It will rung nightly on Azure pipelines. Resolves: OLPEDGE-928 Signed-off-by: Yaroslav Stefinko --- azure-pipelines.yml | 16 ++++++-- scripts/windows/build.sh | 7 +++- scripts/windows/test_fv_network.sh | 63 ++++++++++++++++++++++++++++++ 3 files changed, 82 insertions(+), 4 deletions(-) create mode 100755 scripts/windows/test_fv_network.sh diff --git a/azure-pipelines.yml b/azure-pipelines.yml index d3ac66a6b..e97e45872 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -22,11 +22,21 @@ jobs: displayName: 'Commit checker script' - job: Windows_build pool: - vmImage: 'vs2017-win2016' + vmImage: 'windows-latest' steps: - - bash: scripts/windows/build.sh + - bash: curl https://raw.githubusercontent.com/mock-server/mockserver/master/mockserver-core/src/main/resources/org/mockserver/socket/CertificateAuthorityCertificate.pem --output mock-server-cert.cer + displayName: 'Get cert' + - powershell: Import-Certificate -FilePath mock-server-cert.cer -CertStoreLocation Cert:\LocalMachine\Root + displayName: 'Import cert' + - powershell: dir Cert:\CurrentUser\Root + displayName: 'Check cert CurrentUser' + - powershell: dir Cert:\LocalMachine\Root + displayName: 'Check cert LocalMachine' + - bash: whoami && scripts/windows/build.sh displayName: 'Windows Build' - + - bash: sudo scripts/windows/test_fv_network.sh + displayName: 'Windows FV Network test' + condition: in(variables['Build.Reason'], 'Schedule', 'Manual') - job: MacOS_build pool: vmImage: 'macOS-10.14' diff --git a/scripts/windows/build.sh b/scripts/windows/build.sh index 5f43d6d09..b3c8a43a5 100755 --- a/scripts/windows/build.sh +++ b/scripts/windows/build.sh @@ -17,9 +17,14 @@ # SPDX-License-Identifier: Apache-2.0 # License-Filename: LICENSE +echo ">>> Installing mock server SSL certificate into OS... >>>" +curl https://raw.githubusercontent.com/mock-server/mockserver/master/mockserver-core/src/main/resources/org/mockserver/socket/CertificateAuthorityCertificate.pem --output mock-server-cert.cer +certutil -enterprise -f -v -addstore "Root" mock-server-cert.cer +certutil -enterprise -f -v -addstore "CA" mock-server-cert.cer + [[ -d "build" ]] && rm -rf build mkdir build && cd build -cmake .. -G "Visual Studio 15 2017 Win64" \ +cmake .. -G "Visual Studio 16 2019" -A "x64" \ -DCMAKE_BUILD_TYPE=$BUILD_TYPE cmake --build . --config $BUILD_TYPE diff --git a/scripts/windows/test_fv_network.sh b/scripts/windows/test_fv_network.sh new file mode 100755 index 000000000..7f6b1d642 --- /dev/null +++ b/scripts/windows/test_fv_network.sh @@ -0,0 +1,63 @@ +#!/bin/bash -ex +# +# Copyright (C) 2020 HERE Europe B.V. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# License-Filename: LICENSE + +# Set workspace location +if [[ ${CI_PROJECT_DIR} == "" ]]; then + export CI_PROJECT_DIR=`pwd` +fi + +[[ -d "reports" ]] && rm -rf reports + +#echo ">>> Installing mock server SSL certificate into OS... >>>" +#curl https://raw.githubusercontent.com/mock-server/mockserver/master/mockserver-core/src/main/resources/org/mockserver/socket/CertificateAuthorityCertificate.pem --output mock-server-cert.cer +#certutil -enterprise -f -v -addstore "Root" mock-server-cert.cer +#certutil -enterprise -f -v -addstore "CA" mock-server-cert.cer + + +echo ">>> Starting Mock Server... >>>" +pushd tests/utils/mock-server + npm install + node server.js & export SERVER_PID=$! +popd + +# Node can start server in 1 second, but not faster. +# Add waiter for server to be started. No other way to solve that. +# Curl returns code 1 - means server still down. Curl returns 0 when server is up +RC=1 +while [[ ${RC} -ne 0 ]]; +do + set +e + curl -s http://localhost:1080 + RC=$? + sleep 0.2 + set -e +done + +echo ">>> Start network tests ... >>>" +$CI_PROJECT_DIR/build/tests/functional/network/RelWithDebInfo/olp-cpp-sdk-functional-network-tests \ + --gtest_output="xml:$CI_PROJECT_DIR/reports/olp-functional-network-test-report.xml" +result=$? +echo ">>> Finished network tests >>>" + +# Terminate the mock server +kill -TERM $SERVER_PID + +wait + +exit ${result}