File: run_test.sh

package info (click to toggle)
dlt-daemon 3.0.0-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 7,296 kB
  • sloc: ansic: 58,041; cpp: 16,199; sh: 1,769; xml: 1,440; python: 376; makefile: 32
file content (74 lines) | stat: -rw-r--r-- 1,555 bytes parent folder | download | duplicates (3)
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/sh
set -e
# cleanup on exit to avoid hanging ctest
cleanup() {
    if [ -n "$READER_PID" ]; then
        kill "$READER_PID" 2>/dev/null || true
    fi
    if [ -f /tmp/dlt.pid ]; then
        while IFS= read -r pid; do
            kill -9 "$pid" 2>/dev/null || true
        done < /tmp/dlt.pid
        rm -f /tmp/dlt.pid
    fi
    if [ -p /tmp/dlt ]; then
        rm -f /tmp/dlt || true
    fi
}
trap cleanup EXIT
# Args: <dlt-daemon> <dlt-receive> <test-bin> <ctxnum> <dlt-convert>
DAEMON_BIN="$1"
RECEIVE_BIN="$2"
TEST_BIN="$3"
CTXNUM="$4"
CONVERT_BIN="$5"

DIR="$(cd "$(dirname "$0")" && pwd)"
cd "$DIR"

rm -f /tmp/dlt.pid
rm -rf "$DIR"/*.dlt

if [ ! -p /tmp/dlt ]; then
    rm -f /tmp/dlt
    mkfifo /tmp/dlt
    chmod 666 /tmp/dlt
fi

# Start background FIFO reader so daemon can open /tmp/dlt for writing
cat /tmp/dlt > /dev/null 2>&1 &
READER_PID=$!

"$DAEMON_BIN" -c "$DIR/dlt.conf" &
echo $! >> /tmp/dlt.pid
sleep 0.2

"$RECEIVE_BIN" -o "$DIR/dlt-receive.dlt" localhost &
sleep 0.2

"$TEST_BIN" -c "$CTXNUM" &
sleep 1

if [ -f /tmp/dlt.pid ]; then
    while IFS= read -r pid; do
        kill -9 "$pid" 2>/dev/null || true
    done < /tmp/dlt.pid
fi
sleep 0.5

if [ -f "$DIR/dlt-receive.dlt" ]; then
    echo 'Result from network'
    "$CONVERT_BIN" -a "$DIR/dlt-receive.dlt"
    sleep 0.5
fi

echo 'Result from file'
find "$DIR" -name '*.dlt' -not -name 'dlt-receive.dlt' -print0 | xargs -0 -r "$CONVERT_BIN" -a
sleep 0.5

# Stop background FIFO reader
if [ -n "$READER_PID" ]; then
    kill "$READER_PID" 2>/dev/null || true
fi

exit 0