summaryrefslogtreecommitdiff
path: root/test/run_tests.sh
blob: acb080f3966048dadf2a1a345fd71aa8d8e3f9cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/usr/bin/env sh

set -e

LINE_SPACES=${LINE_SPACES:-48}
MYDIR="$(realpath "$(dirname ${0})")"
nDPId_test_EXEC="${2:-"$(realpath "${MYDIR}/../nDPId-test")"}"
nDPI_SOURCE_ROOT="${1}"

if [ $# -ne 1 -a $# -ne 2 ]; then
cat <<EOF
usage: ${0} [path-to-nDPI-source-root] [path-to-nDPId-test-exec]

	path-to-nDPId-test-exec defaults to ${nDPId_test_EXEC}
EOF
exit 1
fi

nDPI_TEST_DIR="${nDPI_SOURCE_ROOT}/tests/pcap"

cat <<EOF
nDPId-test......: ${nDPId_test_EXEC}
nDPI source root: ${nDPI_TEST_DIR}

EOF

cd "${nDPI_TEST_DIR}"
mkdir -p /tmp/nDPId-test-stderr
set +e
RETVAL=0
for pcap_file in $(ls *.pcap*); do
    ${nDPId_test_EXEC} "${pcap_file}" \
        >"${MYDIR}/results/${pcap_file}.out.new" \
        2>"/tmp/nDPId-test-stderr/${pcap_file}.out"

    if [ $? -eq 0 ]; then
        if diff -u0 "${MYDIR}/results/${pcap_file}.out" \
                    "${MYDIR}/results/${pcap_file}.out.new" >/dev/null; then
            printf "%-${LINE_SPACES}s\t%s\n" "${pcap_file}" '[OK]'
        else
            printf "%-${LINE_SPACES}s\t%s\n" "${pcap_file}" '[DIFF]'
            diff -u0 "${MYDIR}/results/${pcap_file}.out" \
                     "${MYDIR}/results/${pcap_file}.out.new"
            mv -v "${MYDIR}/results/${pcap_file}.out.new" \
                  "${MYDIR}/results/${pcap_file}.out"
            RETVAL=1
        fi
    else
        printf "%-${LINE_SPACES}s\t%s\n" "${pcap_file}" '[FAIL]'
        RETVAL=1
    fi

    rm -f "${MYDIR}/results/${pcap_file}.out.new"
done

exit ${RETVAL}