tests: extract stdout redirection
[platform/core/system/dlog.git] / tests / dlog_test_header.in
1 #!/bin/sh
2
3 ######## Stuff for tracking test case counts
4
5 FAILS=0
6 OKS=0
7 TOTAL=0
8 LOG_DETAILS=
9
10 ######## Relevant pids default vals
11
12 if [ -z ${UTIL_PID} ]; then UTIL_PID=-1; fi
13 if [ -z ${DLOGSEND_PID} ]; then DLOGSEND_PID=-1; fi
14 if [ -z ${MT_TEST} ]; then MT_TEST=-1; fi
15 if [ -z ${LOGGER} ]; then LOGGER=-1; fi
16
17 export LOGGER
18 export UTIL_PID
19 export DLOGSEND_PID
20 export MT_TEST
21
22 SCRIPT_NAME=$(basename $0)
23 USAGE_MESSAGE="usage: $0 [--verbose] [--quick] pipe|logger"
24
25 check_daemon() {
26         ret=1
27         if [ "$LOGGER" -ne -1 ] && [ -z "$(ps -o pid= -p "$LOGGER")" ]; then
28                 ret=0
29         fi
30         return "$ret"
31 }
32
33 fail() {
34         check_daemon && daemon_status="[logger daemon not running]"
35
36         FAILS=$((FAILS + 1))
37         TOTAL=$((TOTAL + 1))
38         printf "[$SCRIPT_NAME %03d] \033[0;31mFAILED\033[0;m: %s %s\n" "$TOTAL" "$LOG_DETAILS" "$daemon_status"
39         LOG_DETAILS=
40 }
41
42 ok() {
43         check_daemon && daemon_status="[logger daemon not running]"
44
45         OKS=$((OKS + 1))
46         TOTAL=$((TOTAL + 1))
47         printf "[$SCRIPT_NAME %03d] \033[0;32mPASSED\033[0;m: %s %s\n" "$TOTAL" "$LOG_DETAILS" "$daemon_status"
48         LOG_DETAILS=
49 }
50
51 ######## Paths to test folders etc
52
53 TESTDIR=/var/lib/dlog-tests
54
55 ######## Utility functions
56
57 cleanup() {
58         [ "$UTIL_PID" -ne -1 ] && kill "$UTIL_PID" > /dev/null 2>&1
59         [ "$MT_TEST"  -ne -1 ] && kill "$MT_TEST"  > /dev/null 2>&1
60         [ "$LOGGER"   -ne -1 ] && kill "$LOGGER"   > /dev/null 2>&1
61         # Shellcheck doesn't like this because the rm call is bad if $TESTDIR is empty.
62         # However, such cases would be caught by the conditional.
63         # shellcheck disable=SC2115
64         [ -d "$TESTDIR" ] && rm -rf "$TESTDIR"/*
65         [ -d "$RUNTIME_FILTERS_DIR" ] && rm -rf "$RUNTIME_FILTERS_DIR"
66 }
67
68 extract_timestamp() {
69         ts=0
70         case "$1" in
71                 "threadtime")
72                         time=$(echo "$2" | awk -F '[ +]' '{print $2}')
73                         ts=$(date +%s%N -d "$time")
74                 ;;
75                 "long")
76                         time=$(echo "$2" | awk -F '[ +.]' '{print $3}')
77                         ms=$(echo "$2" | awk -F '[ +.]' '{print $4}')
78                         sec=$(date +%s%N -d "$time")
79                         ns=$((10#$ms * 1000000))
80                         ts=$((sec + ns))
81                 ;;
82                 "rwtime")
83                         time=$(echo "$2" | awk -F '[ +.]' '{print $2}')
84                         ts=$(date +%s%N -d "$time")
85                 ;;
86                 "recv_realtime")
87                         time=$(echo "$2" | awk -F '[ +.]' '{print $2}')
88                         ts=$(date +%s%N -d "$time")
89                 ;;
90                 "time")
91                         time=$(echo "$2" | awk -F '[ +.]' '{print $2}')
92                         ts=$(date +%s%N -d "$time")
93                 ;;
94                 "kerneltime")
95                         ts=$(echo "$2" | awk -F '[ +]' '{print $1}' | sed -e 's/\.//g')
96                 ;;
97         esac
98         echo "$ts"
99 }
100
101 ######
102 if [ "$1" = "pipe" ]; then
103         type="pipe"
104 elif [ "$1" = "logger" ]; then
105         type="logger"
106 elif [ "$1" = "zero-copy" ]; then
107         type="zero-copy"
108 elif [ "$1" = "pipe_quick" ]; then
109         type="pipe"
110         quick=1
111 elif [ "$1" = "logger_quick" ]; then
112         type="logger"
113         quick=1
114 else
115         echo "$USAGE_MESSAGE"
116         exit 1
117 fi
118