aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2023-08-01 15:29:13 +0200
committerPhilipp Maier <pmaier@sysmocom.de>2023-08-01 16:10:14 +0200
commita380e4efbea2701da677dc6a31065dda9bcb208f (patch)
tree59de707d2e37f99ca5e09496bd19fcd465bdaeca /tests
parent7124ad103106fc822bab1174e396a3c4e9c2f3e2 (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-xtests/pySim-trace_test.sh92
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