File: start-state-crash.test

package info (click to toggle)
zeekctl 2.2.0%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 2,544 kB
  • sloc: python: 5,639; sh: 1,374; makefile: 71; awk: 24
file content (42 lines) | stat: -rw-r--r-- 1,200 bytes parent folder | download
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
# Test that the start command writes correct values to state database
# when a node crashes upon startup, and when a node is already in the
# crashed state.
#
# @TEST-REQUIRES: which sqlite3
# @TEST-EXEC: bash %INPUT
# @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-state-db btest-diff out
# @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-state-db btest-diff out2

. zeekctl-test-setup

while read line; do installfile $line; done << EOF
etc/zeekctl.cfg__no_email
bin/zeek__test
EOF

cat > $ZEEKCTL_INSTALL_PREFIX/zeekctltest.cfg << EOF
crash=zeek
EOF

test ! -e $ZEEKCTL_INSTALL_PREFIX/spool/state.db

zeekctl install
! zeekctl start

sqlite3 $ZEEKCTL_INSTALL_PREFIX/spool/state.db ".dump" > dump.out

# Produce "key = value" output from the database dump.
awk -F \' '{ if (NF == 5) { print $2, "=", $4 } }' dump.out | sort > out

# Next time we don't want node to crash.
rm $ZEEKCTL_INSTALL_PREFIX/zeekctltest.cfg

# Node should transition from crashed to running state.
zeekctl start

sqlite3 $ZEEKCTL_INSTALL_PREFIX/spool/state.db ".dump" > dump.out2

# Produce "key = value" output from the database dump.
awk -F \' '{ if (NF == 5) { print $2, "=", $4 } }' dump.out2 | sort > out2

zeekctl stop