9bb221ea70820c0b7d60b57198120c0d04c4c274
[rxpd] / tests / 50listsyncronization.tests
1 # we randomize ports to minimize collisions,
2 # this needs to be fixed someday (use netstat and check which port is free)
3
4 cp -rf $srcdir/files ./
5 chmod -R +w files
6 port=$((RANDOM+1500))
7 ./rxpd -dq -b files -p policy -t $port example
8
9 function rxpd_client()
10 {
11     nc -q1 localhost $port;
12 }
13
14 TESTING "list syncronization tests" rxpd_client
15
16 TEST "copy a list" <<END
17 in: FETCH:test
18 in: 127.0.0.1:$port/policy
19 out: #OK:
20 END
21
22 TEST "copy a list, check" <<END
23 in: DUMP:test
24 out: # syntax:
25 out: # [atime]:name:command:list:proto:address
26 out: #
27 out: # Allow dumping of the 'policy' list itself
28 out: :ACCEPT:DUMP:policy
29 out: # allow localhost
30 out: :ACCEPT:.*:tcp.:127.0.0.1$
31 out: # Clients from local network are allowed to do anything
32 out: :ACCEPT:.*:tcp.:10\..*$
33 out: # Forbid all others to do anything else with the policy
34 out: :REJECT:.*:policy
35 out: # Hey and no one shall remotely shutdown this daemon!
36 out: :REJECT:SHUTDOWN
37 out: # Finally allow anything else
38 out: :ACCEPT:.*
39 END
40
41 TEST "copy a list for syncing" <<END
42 in: FETCH:test
43 in: 127.0.0.1:$port/example
44 out: #OK:
45 END
46
47 sleep 2
48
49 TEST "sync rules, touch" <<END
50 in: CHECK:test
51 in: MirBSD
52 END
53
54 TEST "sync rules, sync" <<END
55 in: UPDATE:example
56 in: test
57 out: #OK:
58 END
59
60 TEST "sync rules, expire" <<END
61 in: EXPIRE:example
62 in: 1
63 END
64
65 TEST "sync rules, check" <<END
66 in: CHECK:example
67 in: MirBSD
68 out: accept:MirBSD
69 END