#!/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 . PYSIM_TRACE=../pySim-trace.py GSMTAP_TRACE=pySim-trace_test_gsmtap.pcapng TEMPFILE=temp.tmp export PYSIM_INTEGRATION_TEST=1 # to avoid termcolor.colored generating colors; https://github.com/termcolor/termcolor export ANSI_COLORS_DISABLED=1 echo "pySim-trace_test - a test program to test pySim-trace.py" echo "========================================================" function usage { echo "Options:" echo "-o: generate .ok file" } 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