-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathverify-handler
More file actions
executable file
·96 lines (68 loc) · 1.73 KB
/
verify-handler
File metadata and controls
executable file
·96 lines (68 loc) · 1.73 KB
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#!/bin/bash
code=$1
# ---
DATA_DIR="TEST/data/"
RES_DIR="TEST/output/"
NO_HANDLER="ProcNetNULL"
NO_DATAFILE="N/A"
declare -A preftrans=(
[#/proc/net/]="pn/"
[#/proc/self/]="ps/"
[#/proc/sysvipc/]="pi/"
)
# -- Can't be in the list, since it collides
last_from="#/proc/"
last_sub="pr/"
# ---
err_exit() \
{
echo "Error : $*"
exit 1
}
# ---
if [ "${code}" = "" ]
then
err_exit "No handler class given."
fi
# ---
if [ "${code}" = "${NO_HANDLER}" ]
then
err_exit "Dummy handler '${NO_HANDLER}' does not produce any output."
fi
summary=( $(./ShowHandlerDataFile "${code}") )
if [ "${#summary[@]}" -lt 4 ]
then
err_exit "Lookup of data used by '${code}' failed."
fi
datafile="${summary[-1]}"
# ---
if [ "${datafile}" = "${NO_DATAFILE}" ]
then
err_exit "No datafile mapping available for '${code}'."
fi
# ---
#echo "dbg:: Handler:${code} Data:${datafile}"
for pref in ${!preftrans[@]}
do
datafile="${datafile/${pref}/${preftrans[${pref}]}}"
# echo "${pref} > ${preftrans[${pref}]} : ${datafile}"
done
#echo "dbg:: Handler:${code} Data:${datafile}"
datafile="${datafile/${last_from}/${last_sub}}"
#echo "${last_from} > ${last_sub} : ${datafile}"
#echo "dbg:: Handler:${code} Data:${datafile}"
inp="${DATA_DIR}${datafile}"
csv="${RES_DIR}${datafile}.csv"
json="${RES_DIR}${datafile}.json"
if [ ! -f "${inp}" -a ! -L "${inp}" ]
then
err_exit "The ${code} input file '${inp}' not found."
fi
# ---
#echo "dbg:: Read:${inp}"
#echo "dbg:: CSV::${csv} $(./proc2csv ${inp} | sum) $(sum ${csv})"
#echo "dbg:: JSON:${json} $(./proc2json ${inp} | sum) $(sum ${json})"
[ "$(./proc2csv ${inp} | sum)" = "$(sum ${csv})" -a \
"$(./proc2json ${inp} | sum)" = "$(sum ${json})" ] \
&& compare="Pass" || compare="Fail"
echo "${compare} ${code}"