From cecdb3ac28fa1b02ebf6c5eb33c75a802a12a464 Mon Sep 17 00:00:00 2001 From: Andrei Stepanov Date: Nov 25 2020 15:49:38 +0000 Subject: Add runtime entry in results.yml: https://pagure.io/standard-test-roles/issue/392 Signed-off-by: Andrei Stepanov --- diff --git a/roles/standard-test-basic/files/run-basic-test b/roles/standard-test-basic/files/run-basic-test index b49f895..5ce2f3b 100755 --- a/roles/standard-test-basic/files/run-basic-test +++ b/roles/standard-test-basic/files/run-basic-test @@ -158,6 +158,7 @@ clean_exit() { printf '%s\n' '' \ "- test: $STR_TEST_NAME" \ " result: $result" \ + " runtime: $runtime_seconds" \ " logs:" \ >> "$results" for log in "$logfile"; do @@ -179,6 +180,13 @@ clean_exit() { # If killed outside, return code will not be 0, no matter what. exit 0 } + +# next vars are used in clean_exit() +runtime_start="$(date '+%s')" +# runtime == 0 if test is not started or terminated outside +runtime_finish="$runtime_start" +runtime_seconds=0 + trap clean_exit SIGINT SIGTERM SIGABRT EXIT terminated_outside=1 rc=0 @@ -197,6 +205,8 @@ if [ -f "$STR_CMD" ]; then chmod 0775 "$STR_CMD" fi timeout --foreground "$STR_TIMEOUT" bash -c "$STR_CMD" || rc=$? +runtime_finish="$(date '+%s')" +runtime_seconds=$((runtime_finish - runtime_start)) # `terminated_outside` epxlanation: # This is for a case when STR is driven by STR-pipeline. # The STR-pipeline has code: `timeout 4h ansible-playbook`. diff --git a/roles/standard-test-beakerlib/files/run-beakerlib-test b/roles/standard-test-beakerlib/files/run-beakerlib-test index c733502..8a49b5b 100755 --- a/roles/standard-test-beakerlib/files/run-beakerlib-test +++ b/roles/standard-test-beakerlib/files/run-beakerlib-test @@ -151,6 +151,7 @@ clean_exit() { printf '%s\n' '' \ "- test: $STR_BKR_TEST" \ " result: $result" \ + " runtime: $runtime_seconds" \ " logs:" \ >> "$results" for log in "$log_file_path" "$logfile_stdout" "$logfile_stderr"; do @@ -164,6 +165,13 @@ clean_exit() { # If killed outside, return code will not be 0, no matter what. exit 0 } + +# next vars are used in clean_exit() +runtime_start="$(date '+%s')" +# runtime == 0 if test is not started, or terminated outside +runtime_finish="$runtime_start" +runtime_seconds=0 + trap clean_exit SIGINT SIGTERM SIGABRT EXIT terminated_outside=1 rc=0 @@ -192,6 +200,8 @@ if [ -f "$STR_BKR_TEST" ]; then cd $(dirname "$STR_BKR_TEST") timeout --foreground "$STR_TIMEOUT" /bin/sh -e ./$(basename "$STR_BKR_TEST") || rc=$? terminated_outside=0 + runtime_finish="$(date '+%s')" + runtime_seconds=$((runtime_finish - runtime_start)) exit $rc fi @@ -210,5 +220,7 @@ if [ -d "$STR_BKR_TEST" ]; then echo "FAIL test $STR_BKR_TEST do not know how to run test" fi terminated_outside=0 + runtime_finish="$(date '+%s')" + runtime_seconds=$((runtime_finish - runtime_start)) exit $rc fi