osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40213?usp=email )
Change subject: log_merge: use same prefix as for pcap files ......................................................................
log_merge: use same prefix as for pcap files
In some testsuites we have tests in ttcn3 files other than the main testsuite executable. In that case we save the pcap files with the name of the ttcn3 file with the test, but before this patch the merged log file has the name of the main testsuite. This is inconsistent and may lead to a conflict if a test exists in multiple ttcn3 files.
Fix this by getting the same prefix as we use for the pcap from the logfile itself. Fall back to using the same prefix as without this patch in case we can't parse the log line.
Fixes: OS#6787 Change-Id: Id2937d711a54a34c0d87d080199b4c3d5a5d6e06 --- M log_merge.sh 1 file changed, 32 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/13/40213/1
diff --git a/log_merge.sh b/log_merge.sh index 7560fe9..65a3003 100755 --- a/log_merge.sh +++ b/log_merge.sh @@ -10,6 +10,37 @@ # # the output files will be called "Module-Testcase.merged"
+# OS#6787: Get the same prefix as for the pcap files by parsing the external +# command line from the logfile, e.g: +# 11:34:37.106541 STP_Tests_M3UA.ttcn:877 Starting external command `/home/user/…/ttcn3-tcpdump-start.sh STP_Tests_M3UA.TC_rkm_unreg_active'. +get_new_prefix() { + local prefix="$1" + local prefix_new + local start_cmd_line + + for i in "$prefix"-*.log; do + if ! [ -e "$i" ]; then + continue + fi + + start_cmd_line="$(grep -o 'Starting external command `.*-start.sh.*' "$i")" + if [ -z "$start_cmd_line" ]; then + continue + fi + + prefix_new="$(echo "${start_cmd_line##* }" | cut -d "'" -f 1)" + if [ -z "$prefix_new" ]; then + continue + fi + + echo "$prefix_new" + return + done + + >&2 echo "log_merge: WARNING: get_new_prefix failed for: $prefix" + echo "$prefix" +} + if [ "x$1" = "x" ]; then echo "You have to specify the Test Suite prefix" exit 2 @@ -22,7 +53,7 @@
for t in $TEST_CASES; do PREFIX="$BASE_NAME-$t" - OUTPUT="$BASE_NAME.$t.merged" + OUTPUT="$(get_new_prefix "$PREFIX").merged" if [ -e "$OUTPUT" ]; then >&2 echo "log_merge: ERROR: file already exists: $OUTPUT" exit 1