summaryrefslogtreecommitdiff
path: root/test/run_tests.sh
diff options
context:
space:
mode:
authorToni Uhlig <matzeton@googlemail.com>2022-11-12 23:06:37 +0100
committerToni Uhlig <matzeton@googlemail.com>2022-11-16 23:06:37 +0100
commit57c5d8532bfe581df2730137ea8d2282041067a2 (patch)
tree4ad2d8327028e44d28097cc630748c0716e3934f /test/run_tests.sh
parent869d4de27185e84988617188882e555efdb81531 (diff)
Test for diff's in flow-analyse CSV generator daemon.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'test/run_tests.sh')
-rwxr-xr-xtest/run_tests.sh57
1 files changed, 57 insertions, 0 deletions
diff --git a/test/run_tests.sh b/test/run_tests.sh
index 30efe03e4..988b96417 100755
--- a/test/run_tests.sh
+++ b/test/run_tests.sh
@@ -9,6 +9,7 @@ NETCAT_EXEC="$(which nc) -q 0 -l 127.0.0.1 9000"
JSON_VALIDATOR="$(realpath "${3:-"${MYDIR}/../examples/py-schema-validation/py-schema-validation.py"}")"
SEMN_VALIDATOR="$(realpath "${4:-"${MYDIR}/../examples/py-semantic-validation/py-semantic-validation.py"}")"
FLOW_INFO="$(realpath "${5:-"${MYDIR}/../examples/py-flow-info/flow-info.py"}")"
+NDPISRVD_ANALYSED="$(realpath "${6:-"$(dirname ${nDPId_test_EXEC})/nDPIsrvd-analysed"}")"
IS_GIT=$(test -d "${MYDIR}/../.git" -o -f "${MYDIR}/../.git" && printf '1' || printf '0')
function usage()
@@ -21,6 +22,7 @@ usage: ${0} [path-to-nDPI-source-root] \\
path-to-nDPId-JSON-validator defaults to ${JSON_VALIDATOR}
path-to-nDPId-SEMANTIC-validator default to ${SEMN_VALIDATOR}
path-to-nDPId-flow-info defaults to ${FLOW_INFO}
+ path-to-nDPIsrvd-analysed defaults to ${NDPISRVD_ANALYSED}
EOF
return 0
}
@@ -28,6 +30,9 @@ return 0
test -z "$(which flock)" && { printf '%s\n' 'flock not found'; exit 1; }
test -z "$(which pkill)" && { printf '%s\n' 'pkill not found'; exit 1; }
test -z "$(which nc)" && { printf '%s\n' 'nc not found'; exit 1; }
+test -z "$(which ss)" && { printf '%s\n' 'ss not found'; exit 1; }
+test -z "$(which cat)" && { printf '%s\n' 'cat not found'; exit 1; }
+test -z "$(which grep)" && { printf '%s\n' 'grep not found'; exit 1; }
if [ $# -eq 0 -a -x "${MYDIR}/../libnDPI/tests/pcap" ]; then
nDPI_SOURCE_ROOT="${MYDIR}/../libnDPI"
@@ -233,6 +238,58 @@ done
cat <<EOF
+-----------------------
+-- Flow Analyse DIFF --
+-----------------------
+
+EOF
+
+if [ -x "${NDPISRVD_ANALYSED}" ]; then
+ cd "${MYDIR}"
+ for out_file in results/*.out; do
+ result_file="$(basename ${out_file})"
+ printf "%-${LINE_SPACES}s\t" "${result_file}"
+ cat "${out_file}" | grep -vE '^~~.*$' | ${NETCAT_EXEC} &
+ nc_pid=$!
+ while ! ss -4 -t -n -l | grep -q '127.0.0.1:9000'; do sleep 0.5; printf '%s\n' 'Waiting until socket 127.0.0.1:9000 is available..' >>"/tmp/nDPId-test-stderr/${result_file}"; done
+ ${NDPISRVD_ANALYSED} -s '127.0.0.1:9000' -o "/tmp/nDPId-test-stdout/${result_file}.csv.new" 2>>"/tmp/nDPId-test-stderr/${result_file}" 1>&2
+ kill -SIGTERM ${nc_pid} 2>/dev/null
+ wait ${nc_pid} 2>/dev/null
+ if [ ! -r "${MYDIR}/results/flow-analyse/${result_file}" ]; then
+ printf '%s\n' '[NEW]'
+ test ${IS_GIT} -eq 1 && \
+ mv -v "/tmp/nDPId-test-stdout/${result_file}.csv.new" \
+ "${MYDIR}/results/flow-analyse/${result_file}"
+ TESTS_FAILED=$((TESTS_FAILED + 1))
+ elif diff -u0 "${MYDIR}/results/flow-analyse/${result_file}" \
+ "/tmp/nDPId-test-stdout/${result_file}.csv.new" >/dev/null; then
+ printf '%s\n' '[OK]'
+ rm -f "/tmp/nDPId-test-stdout/${result_file}.csv.new"
+ else
+ printf '%s\n' '[DIFF]'
+ diff -u0 "${MYDIR}/results/flow-analyse/${result_file}" \
+ "/tmp/nDPId-test-stdout/${result_file}.csv.new"
+ test ${IS_GIT} -eq 1 && \
+ mv -v "/tmp/nDPId-test-stdout/${result_file}.csv.new" \
+ "${MYDIR}/results/flow-analyse/${result_file}"
+ cat "/tmp/nDPId-test-stderr/${result_file}"
+ TESTS_FAILED=$((TESTS_FAILED + 1))
+ fi
+ done
+
+ for out_file in ${MYDIR}/results/flow-analyse/*.out; do
+ result_file="$(basename ${out_file})"
+ if [ ! -r "${MYDIR}/results/${result_file}" ]; then
+ printf "%-${LINE_SPACES}s\t%s\n" "${result_file}" "[MISSING]"
+ TESTS_FAILED=$((TESTS_FAILED + 1))
+ fi
+ done
+else
+ printf '%s\n' "Not found or not executable: ${NDPISRVD_ANALYSED}"
+fi
+
+cat <<EOF
+
--------------------------------
-- SCHEMA/SEMANTIC Validation --
--------------------------------