diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2023-08-01 15:29:13 +0200 |
---|---|---|
committer | Philipp Maier <pmaier@sysmocom.de> | 2023-08-01 16:10:14 +0200 |
commit | a380e4efbea2701da677dc6a31065dda9bcb208f (patch) | |
tree | 59de707d2e37f99ca5e09496bd19fcd465bdaeca /tests | |
parent | 7124ad103106fc822bab1174e396a3c4e9c2f3e2 (diff) |
pySim-trace_test: verify output of pySim-trace.py
At the moment we only verify that no exceptions occurred but the output
is not yet verfied.
Related: OS#6094
Change-Id: I3aaa779b5bd8f30936c284a80dbdcb2b0e06985c
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/pySim-trace_test.sh | 92 |
1 files changed, 82 insertions, 10 deletions
diff --git a/tests/pySim-trace_test.sh b/tests/pySim-trace_test.sh index 40c5db6..4ccb2aa 100755 --- a/tests/pySim-trace_test.sh +++ b/tests/pySim-trace_test.sh @@ -1,20 +1,92 @@ #!/bin/bash +# Utility to verify the functionality of pySim-trace.py +# +# (C) 2023 by Sysmocom s.f.m.c. GmbH +# All Rights Reserved +# +# Author: Philipp Maier +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + PYSIM_TRACE=../pySim-trace.py GSMTAP_TRACE=pySim-trace_test_gsmtap.pcapng +TEMPFILE=temp.tmp echo "pySim-trace_test - a test program to test pySim-trace.py" echo "========================================================" -$PYSIM_TRACE gsmtap-pyshark-pcap -f $GSMTAP_TRACE -if [ $? -ne 0 ]; then - echo "" - echo "========================================================" - echo "Testrun with $GSMTAP_TRACE failed." - exit 1 -fi +function usage { + echo "Options:" + echo "-o: generate .ok file" +} -echo "" -echo "========================================================" -echo "trace parsed without problems -- everything ok!" +function gen_ok_file { + $PYSIM_TRACE gsmtap-pyshark-pcap -f $GSMTAP_TRACE > $GSMTAP_TRACE.ok + echo "Generated file: $GSMTAP_TRACE.ok" + echo "------------8<------------" + cat $GSMTAP_TRACE.ok + echo "------------8<------------" +} + +function run_test { + $PYSIM_TRACE gsmtap-pyshark-pcap -f $GSMTAP_TRACE | tee $TEMPFILE + if [ ${PIPESTATUS[0]} -ne 0 ]; then + echo "" + echo "========================================================" + echo "Testrun with $GSMTAP_TRACE failed (exception)." + rm -f $TEMPFILE + exit 1 + fi + DIFF=`diff $GSMTAP_TRACE.ok $TEMPFILE` + if ! [ -z "$DIFF" ]; then + echo "Testrun with $GSMTAP_TRACE failed (unexpected output)." + echo "------------8<------------" + diff $GSMTAP_TRACE.ok $TEMPFILE + echo "------------8<------------" + rm -f $TEMPFILE + exit 1 + fi + + echo "" + echo "========================================================" + echo "trace parsed without problems -- everything ok!" + rm -f $TEMPFILE +} + +OPT_GEN_OK_FILE=0 +while getopts ":ho" OPT; do + case $OPT in + h) + usage + exit 0 + ;; + o) + OPT_GEN_OK_FILE=1 + ;; + \?) + echo "Invalid option: -$OPTARG" >&2 + exit 1 + ;; + esac +done + +if [ $OPT_GEN_OK_FILE -eq 1 ]; then + gen_ok_file + exit 0 +else + run_test + exit 0 +fi |