summaryrefslogtreecommitdiff
path: root/test/network_tests/restart_routing_tests/restart_routing_test_starter.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test/network_tests/restart_routing_tests/restart_routing_test_starter.sh')
-rwxr-xr-xtest/network_tests/restart_routing_tests/restart_routing_test_starter.sh312
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