X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=utils%2Fci%2Fcheck_manual_usage_example.sh;h=ea8c2af7770b9ab1be70e8e882ad30c80026e143;hb=5ca7aae70bfb9a8df5aed1fc44b195d7a13c462d;hp=6b9bc3fa3832684a46a30bea35161868c9c6e269;hpb=6a5c2ec0afb49c33c123d6a16bb2190608c47704;p=osm%2Fvim-emu.git diff --git a/utils/ci/check_manual_usage_example.sh b/utils/ci/check_manual_usage_example.sh index 6b9bc3f..ea8c2af 100755 --- a/utils/ci/check_manual_usage_example.sh +++ b/utils/ci/check_manual_usage_example.sh @@ -21,9 +21,14 @@ W() { sleep 0.5s done EOF - timeout -k 3s ${T} ${SUBF} "${1}" - local RES=$? + local RES=0 + timeout -k 3s ${T} ${SUBF} "${1}" || RES=$? rm -f ${SUBF} + if [ ! "$RES" = "0" ]; then + sync + echo -e "\n\n\n(Debug) Error while waiting for a pattern to appear in screenlog.0\n\n\n" + strings screenlog.0 + fi return ${RES} } @@ -39,18 +44,24 @@ if ! screen --version | grep 'Screen version'; then sudo apt-get install -y screen screen --version | grep 'Screen version' fi +if ! timeout --version; then + # Install coreutils for the timeout command + sudo apt-get update -qq -y + sudo apt-get install -y coreutils + timeout --version +fi # Initial cleanup -pkill -f 'screen -L -S sonemu' || true +pkill -f 'SCREEN -L -S sonemu' || true screen -wipe || true rm -f screenlog.0 # Start containernet with a topology -screen -L -S sonemu -d -m python src/emuvim/examples/simple_topology.py +screen -L -S sonemu -d -m sudo python src/emuvim/examples/simple_topology.py # Setup screen for immediate flusing screen -S sonemu -X logfile flush 0 # Wait for the cli to start -W '^*** Starting CLI:' +W '^*** Starting CLI:' 60s # Print nodes Cmd 'nodes' # Start vnf1 @@ -59,19 +70,20 @@ son-emu-cli compute start -d datacenter1 -n vnf1 && sleep 1s son-emu-cli compute start -d datacenter1 -n vnf2 && sleep 1s # List compute nodes son-emu-cli compute list && sleep 1s +sync # avoid text overlapping # Gather some infos -Cmd 'sh echo "... starting various checks"' -sync # avoid test overlapping -Cmd 'vnf1 ifconfig && echo "... checked vnf1"' +Cmd 'sh sync && echo -e "\n... starting various checks"' +sync # avoid text overlapping +Cmd 'vnf1 ifconfig && sync && echo -e "\n... checked vnf1"' W "^... checked vnf1" -Cmd 'vnf2 ifconfig && echo "... checked vnf2"' +Cmd 'vnf2 ifconfig && sync && echo -e "\n... checked vnf2"' W "^... checked vnf2" # Try to ping vnfs -Cmd 'vnf1 ping -c 2 vnf2 || echo "... checked ping"' +Cmd 'vnf1 ping -c 2 vnf2 && sync && echo -e "\n... checked ping"' W "^... checked ping" 20s Cmd 'quit' # Wait for sonemu to end -W '^*** Done' +W '*** Done' echo -e '\n\n******************* Result ******************\n\n' strings screenlog.0