-
Notifications
You must be signed in to change notification settings - Fork 13
/
test.sh
executable file
·47 lines (34 loc) · 921 Bytes
/
test.sh
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
#!/bin/sh -e
# Alpine Wall test script
# Copyright (C) 2012-2022 Kaarle Ritvanen
# See LICENSE file for license details
cd "$(dirname "$0")"
export LUA_PATH="./?.lua;;"
LUA=lua${LUA_VERSION}
AWALL="$LUA ./awall-cli"
GEN_POLICIES=
for cls in mandatory optional private; do
eval "export AWALL_PATH_$(echo $cls | tr a-z A-Z)=test/$cls"
mkdir -p test/$cls
for script in test/$cls/*.lua; do
[ -f $script ] || continue
policy=${script%.lua}.json
GEN_POLICIES="$GEN_POLICIES $policy"
$LUA $script > $policy
done
done
POLICIES=$(ls test/optional/*.json | sed -E 's:^.*/([^/]+).json$:\1:')
for pol in $POLICIES; do
$AWALL disable $pol 2>/dev/null
done
[ "$1" = translate ] && rm -f test/output/*/ipset-*
RC=0
for pol in $POLICIES; do
dir=test/output/$pol
mkdir -p $dir
$AWALL enable $pol
$AWALL ${1:-diff} -o $dir || RC=1
$AWALL disable $pol
done
rm $GEN_POLICIES
exit $RC