diff options
Diffstat (limited to 'src/cli/test_anastasis_reducer_done_policy_review.sh')
-rwxr-xr-x | src/cli/test_anastasis_reducer_done_policy_review.sh | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/src/cli/test_anastasis_reducer_done_policy_review.sh b/src/cli/test_anastasis_reducer_done_policy_review.sh new file mode 100755 index 0000000..7052067 --- /dev/null +++ b/src/cli/test_anastasis_reducer_done_policy_review.sh | |||
@@ -0,0 +1,105 @@ | |||
1 | #!/bin/bash | ||
2 | |||
3 | set -eu | ||
4 | |||
5 | # Exit, with status code "skip" (no 'real' failure) | ||
6 | function exit_skip() { | ||
7 | echo " SKIP: $1" | ||
8 | exit 77 | ||
9 | } | ||
10 | |||
11 | # Exit, with error message (hard failure) | ||
12 | function exit_fail() { | ||
13 | echo " ERROR: $1" | ||
14 | exit 1 | ||
15 | } | ||
16 | |||
17 | # Cleanup to run whenever we exit | ||
18 | function cleanup() | ||
19 | { | ||
20 | for n in `jobs -p` | ||
21 | do | ||
22 | kill $n 2> /dev/null || true | ||
23 | done | ||
24 | rm -f $TFILE | ||
25 | wait | ||
26 | } | ||
27 | |||
28 | # Install cleanup handler (except for kill -9) | ||
29 | TFILE=`mktemp test_reducer_stateXXXXXX` | ||
30 | trap cleanup EXIT | ||
31 | |||
32 | |||
33 | # Check we can actually run | ||
34 | echo -n "Testing for jq ..." | ||
35 | jq -h > /dev/null || exit_skip "jq required" | ||
36 | echo " FOUND" | ||
37 | |||
38 | echo -n "Testing for anastasis-reducer ..." | ||
39 | anastasis-reducer -h > /dev/null || exit_skip "anastasis-reducer required" | ||
40 | echo " FOUND" | ||
41 | |||
42 | echo -n "Test done policy review (next) in a backup state ..." | ||
43 | anastasis-reducer next resources/05-backup.json $TFILE | ||
44 | |||
45 | STATE=`jq -r -e .backup_state < $TFILE` | ||
46 | if test "$STATE" != "SECRET_EDITING" | ||
47 | then | ||
48 | exit_fail "Expected new state to be 'SECRET_EDITING', got '$STATE'" | ||
49 | fi | ||
50 | |||
51 | ARRAY_LENGTH=`jq -r -e '.authentication_methods | length' < $TFILE` | ||
52 | if test $ARRAY_LENGTH -lt 3 | ||
53 | then | ||
54 | exit_fail "Expected auth methods array length to be >= 3, got $ARRAY_LENGTH" | ||
55 | fi | ||
56 | |||
57 | ARRAY_LENGTH=`jq -r -e '.policies | length' < $TFILE` | ||
58 | if test $ARRAY_LENGTH -lt 3 | ||
59 | then | ||
60 | exit_fail "Expected policies array length to be >= 3, got $ARRAY_LENGTH" | ||
61 | fi | ||
62 | |||
63 | echo " OK" | ||
64 | |||
65 | |||
66 | |||
67 | echo -n "Test adding policy ..." | ||
68 | anastasis-reducer -a \ | ||
69 | '{ "policy" : [ | ||
70 | { "authentication_method" : 1, | ||
71 | "provider" : "http://localhost:8088/" }, | ||
72 | { "authentication_method" : 1, | ||
73 | "provider" : "http://localhost:8089/" } | ||
74 | ] }' \ | ||
75 | add_policy \ | ||
76 | resources/05-backup.json \ | ||
77 | $TFILE 2> /dev/null | ||
78 | |||
79 | ARRAY_LENGTH=`jq -r -e '.policies | length' < $TFILE` | ||
80 | if test $ARRAY_LENGTH -lt 4 | ||
81 | then | ||
82 | exit_fail "Expected policy array length to be >= 4, got $ARRAY_LENGTH" | ||
83 | fi | ||
84 | |||
85 | echo " OK" | ||
86 | |||
87 | |||
88 | echo -n "Test deleting policy ..." | ||
89 | anastasis-reducer -a \ | ||
90 | '{ "policy_index" : 2 }' \ | ||
91 | delete_policy \ | ||
92 | resources/05-backup.json \ | ||
93 | $TFILE 2> /dev/null | ||
94 | |||
95 | ARRAY_LENGTH=`jq -r -e '.policies | length' < $TFILE` | ||
96 | if test $ARRAY_LENGTH -ge 3 | ||
97 | then | ||
98 | exit_fail "Expected policy array length to be < 3, got $ARRAY_LENGTH" | ||
99 | fi | ||
100 | |||
101 | echo " OK" | ||
102 | |||
103 | |||
104 | |||
105 | exit 0 | ||