diff options
Diffstat (limited to 'test/network_tests/restart_routing_tests/restart_routing_test_starter.sh')
-rwxr-xr-x | test/network_tests/restart_routing_tests/restart_routing_test_starter.sh | 312 |
1 files changed, 312 insertions, 0 deletions
diff --git a/test/network_tests/restart_routing_tests/restart_routing_test_starter.sh b/test/network_tests/restart_routing_tests/restart_routing_test_starter.sh new file mode 100755 index 0000000..cffd14c --- /dev/null +++ b/test/network_tests/restart_routing_tests/restart_routing_test_starter.sh @@ -0,0 +1,312 @@ +#!/bin/bash +# Copyright (C) 2015-2017 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# Purpose: This script is needed to start the client and service with +# one command. This is necessary as ctest - which is used to run the +# tests - isn't able to start two binaries for one testcase. Therefore +# the testcase simply executes this script. This script then runs client +# and service and checks that both exit sucessfully. + +FAIL=0 + +# NOW WITHOUT JSON +echo "----------------------------------------------" +echo "----------------------------------------------" +echo " Run test with auto configuration " +echo "----------------------------------------------" +echo "----------------------------------------------" + +export VSOMEIP_CONFIGURATION=restart_routing_test_autoconfig.json + +../../examples/routingmanagerd/./routingmanagerd & +DAEMON_PID=$! + +sleep 2 + +# Start the service +export VSOMEIP_APPLICATION_NAME=restart_routing_test_service +./restart_routing_test_service & +SERIVCE_PID=$! + +# Start the client1 +export VSOMEIP_APPLICATION_NAME=restart_routing_test_client1 +./restart_routing_test_client & +CLIENT1_PID=$! + +# Start the client2 +export VSOMEIP_APPLICATION_NAME=restart_routing_test_client2 +./restart_routing_test_client & +CLIENT2_PID=$! + +# Start the client3 +export VSOMEIP_APPLICATION_NAME=restart_routing_test_client3 +./restart_routing_test_client & +CLIENT3_PID=$! + +# Start the client4 +export VSOMEIP_APPLICATION_NAME=restart_routing_test_client4 +./restart_routing_test_client & +CLIENT4_PID=$! + +sleep 2 +echo "----------------------------------------------" +echo " let routingmanagerd crash (kill -9) " +echo "----------------------------------------------" +kill -9 $DAEMON_PID +echo "----------------------------------------------" +echo " restart routingmanagerd " +echo "----------------------------------------------" +sleep 2 + +../../examples/routingmanagerd/./routingmanagerd & +DAEMON_PID=$! + +wait $SERIVCE_PID || ((FAIL+=1)) +wait $CLIENT1_PID || ((FAIL+=1)) +wait $CLIENT2_PID || ((FAIL+=1)) +wait $CLIENT3_PID || ((FAIL+=1)) +wait $CLIENT4_PID || ((FAIL+=1)) + +kill $DAEMON_PID +wait $DAEMON_PID + +# Check if client and server both exited sucessfully and the service didnt't +# have any open tcp/udp sockets +if [ $FAIL -eq 0 ] +then + echo "Test Succeeded" +else + exit 1 +fi + +# NOW WITHOUT VSOMEIPD +echo "----------------------------------------------" +echo "----------------------------------------------" +echo " Run test with auto configuration no deamon " +echo "----------------------------------------------" +echo "----------------------------------------------" + +sleep 2 + +# Start the service +export VSOMEIP_APPLICATION_NAME=restart_routing_test_service +./restart_routing_test_service & +SERIVCE_PID=$! + +# Start the client1 +export VSOMEIP_APPLICATION_NAME=restart_routing_test_client1 +./restart_routing_test_client & +CLIENT1_PID=$! + +# Start the client2 +export VSOMEIP_APPLICATION_NAME=restart_routing_test_client2 +./restart_routing_test_client & +CLIENT2_PID=$! + +# Start the client3 +export VSOMEIP_APPLICATION_NAME=restart_routing_test_client3 +./restart_routing_test_client & +CLIENT3_PID=$! + +# Start the client4 +export VSOMEIP_APPLICATION_NAME=restart_routing_test_client4 +./restart_routing_test_client & +CLIENT4_PID=$! + +sleep 2 +echo "----------------------------------------------" +echo " let service (routing) crash (kill -9) " +echo "----------------------------------------------" +kill -9 $SERIVCE_PID +echo "----------------------------------------------" +echo " restart service (routing) " +echo "----------------------------------------------" +sleep 2 + +# Start the service +export VSOMEIP_APPLICATION_NAME=restart_routing_test_service +./restart_routing_test_service & +SERIVCE_PID=$! + +wait $SERIVCE_PID || ((FAIL+=1)) +wait $CLIENT1_PID || ((FAIL+=1)) +wait $CLIENT2_PID || ((FAIL+=1)) +wait $CLIENT3_PID || ((FAIL+=1)) +wait $CLIENT4_PID || ((FAIL+=1)) + +# Check if client and server both exited sucessfully and the service didnt't +# have any open tcp/udp sockets +if [ $FAIL -eq 0 ] +then + echo "Test Succeeded" +else + exit 1 +fi + + +echo "----------------------------------------------" +echo "----------------------------------------------" +echo " Run test with json configuration " +echo "----------------------------------------------" +echo "----------------------------------------------" + +sleep 2 + +export VSOMEIP_CONFIGURATION=restart_routing_test_service.json +../../examples/routingmanagerd/./routingmanagerd & +DAEMON_PID=$! + +# Start the service +export VSOMEIP_APPLICATION_NAME=restart_routing_test_service +export VSOMEIP_CONFIGURATION=restart_routing_test_service.json +./restart_routing_test_service & +SERIVCE_PID=$! + +# Start the client1 +export VSOMEIP_APPLICATION_NAME=restart_routing_test_client1 +export VSOMEIP_CONFIGURATION=restart_routing_test_client.json +./restart_routing_test_client & +CLIENT1_PID=$! + +# Start the client2 +export VSOMEIP_APPLICATION_NAME=restart_routing_test_client2 +export VSOMEIP_CONFIGURATION=restart_routing_test_client.json +./restart_routing_test_client & +CLIENT2_PID=$! + +# Start the client3 +export VSOMEIP_APPLICATION_NAME=restart_routing_test_client3 +export VSOMEIP_CONFIGURATION=restart_routing_test_client.json +./restart_routing_test_client & +CLIENT3_PID=$! + +# Start the client4 +export VSOMEIP_APPLICATION_NAME=restart_routing_test_client4 +export VSOMEIP_CONFIGURATION=restart_routing_test_client.json +./restart_routing_test_client & +CLIENT4_PID=$! + +sleep 2 +echo "----------------------------------------------" +echo " let routingmanagerd crash (kill -9) " +echo "----------------------------------------------" +kill -9 $DAEMON_PID +echo "----------------------------------------------" +echo " restart routingmanagerd " +echo "----------------------------------------------" +sleep 2 + +export VSOMEIP_CONFIGURATION=restart_routing_test_service.json +../../examples/routingmanagerd/./routingmanagerd & +DAEMON_PID=$! + +wait $SERIVCE_PID || ((FAIL+=1)) +wait $CLIENT1_PID || ((FAIL+=1)) +wait $CLIENT2_PID || ((FAIL+=1)) +wait $CLIENT3_PID || ((FAIL+=1)) +wait $CLIENT4_PID || ((FAIL+=1)) + +kill $DAEMON_PID +wait $DAEMON_PID + +# Check if client and server both exited sucessfully and the service didnt't +# have any open tcp/udp sockets +if [ $FAIL -eq 0 ] +then + echo "Test Succeeded" +else + exit 1 +fi + +echo "----------------------------------------------" +echo "----------------------------------------------" +echo "Run test with json configuration + kill service" +echo "----------------------------------------------" +echo "----------------------------------------------" + +sleep 2 + +export VSOMEIP_CONFIGURATION=restart_routing_test_service.json +../../examples/routingmanagerd/./routingmanagerd & +DAEMON_PID=$! + +# Start the service +export VSOMEIP_APPLICATION_NAME=restart_routing_test_service +export VSOMEIP_CONFIGURATION=restart_routing_test_service.json +./restart_routing_test_service & +SERIVCE_PID=$! + +# Start the client1 +export VSOMEIP_APPLICATION_NAME=restart_routing_test_client1 +export VSOMEIP_CONFIGURATION=restart_routing_test_client.json +./restart_routing_test_client & +CLIENT1_PID=$! + +# Start the client2 +export VSOMEIP_APPLICATION_NAME=restart_routing_test_client2 +export VSOMEIP_CONFIGURATION=restart_routing_test_client.json +./restart_routing_test_client & +CLIENT2_PID=$! + +# Start the client3 +export VSOMEIP_APPLICATION_NAME=restart_routing_test_client3 +export VSOMEIP_CONFIGURATION=restart_routing_test_client.json +./restart_routing_test_client & +CLIENT3_PID=$! + +# Start the client4 +export VSOMEIP_APPLICATION_NAME=restart_routing_test_client4 +export VSOMEIP_CONFIGURATION=restart_routing_test_client.json +./restart_routing_test_client & +CLIENT4_PID=$! + +sleep 2 +echo "----------------------------------------------" +echo " let routingmanagerd crash (kill -9) " +echo "----------------------------------------------" +kill -9 $DAEMON_PID +sleep 1 +echo "----------------------------------------------" +echo " let service crash (kill -9) " +echo "----------------------------------------------" +kill -9 $SERIVCE_PID +echo "----------------------------------------------" +echo " restart routingmanagerd " +echo "----------------------------------------------" +sleep 2 + +export VSOMEIP_CONFIGURATION=restart_routing_test_service.json +../../examples/routingmanagerd/./routingmanagerd & +DAEMON_PID=$! + +echo "----------------------------------------------" +echo " restart service " +echo "----------------------------------------------" +sleep 1 + +# Start the service again +export VSOMEIP_APPLICATION_NAME=restart_routing_test_service +export VSOMEIP_CONFIGURATION=restart_routing_test_service.json +./restart_routing_test_service & +SERIVCE_PID=$! + +wait $SERIVCE_PID || ((FAIL+=1)) +wait $CLIENT1_PID || ((FAIL+=1)) +wait $CLIENT2_PID || ((FAIL+=1)) +wait $CLIENT3_PID || ((FAIL+=1)) +wait $CLIENT4_PID || ((FAIL+=1)) + +kill $DAEMON_PID +wait $DAEMON_PID + +# Check if client and server both exited sucessfully and the service didnt't +# have any open tcp/udp sockets +if [ $FAIL -eq 0 ] +then + exit 0 +else + exit 1 +fi |