beginning of a test suite
[rxpd] / tests / 20simplecommands.tests
1 # we randomize ports to minimize collisions,
2 # this needs to be fixed someday (use netstat and check which port is free)
3 port=$((RANDOM+1500))
4 ./rxpd -dq -b $srcdir/files -p policy -t $port example
5
6 function rxpd_client()
7 {
8     nc localhost $port;
9 }
10
11 TESTING "basic protcol tests" rxpd_client
12
13
14 # this test has to be updated with each new version
15 TEST "version information" <<END
16 in: VERSION:
17 out: rxpd 0.2pre1
18 out: #
19 out: # Copyright (C)
20 out: #   2007,               Christian Thaeter <ct@pipapo.org>
21 out: #
22 out: # This is free software.  You may redistribute copies of it under the terms of
23 out: # the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
24 out: # There is NO WARRANTY, to the extent permitted by law.
25 out: #
26 out: # http://www.pipapo.org/pipawiki/RegexPolicyDaemon
27 END
28
29
30 TEST "buildin protocol help" <<END
31 in: HELP:
32 out: # Available commands:
33 out: #
34 out: # CHECK data against regular expressions.
35 out: # APPEND new rules to a list.
36 out: # PREPEND new rules in front of a list.
37 out: # REMOVE rules from a list.
38 out: # REPLACE a rule in a list with new rules.
39 out: # DELETE a list from memory.
40 out: # LOAD a list from disk.
41 out: # SAVE a list to disk.
42 out: # FETCH a list from a remote server.
43 out: # SYNC atimes from other lists.
44 out: # EXPIRE aged rules from a list.
45 out: # DUMP rules in a list.
46 out: # LIST all existing lists.
47 out: # VERSION of this rxpd is 0.2pre1.
48 out: # HELP is what you see right now.
49 out: # SHUTDOWN the daemon.
50 out: #
51 out: # general syntax is: 'COMMAND:listname\n..data..'
52 END
53
54
55 TEST "show loaded files" <<END
56 in: LIST:
57 out: example
58 out: policy
59 END
60
61
62 TEST "dump a file" <<END
63 in: DUMP:policy
64 out: # syntax:
65 out: # [atime]:name:command:list:proto:address
66 out: #
67 out: # Allow dumping of the 'policy' list itself
68 out: :ACCEPT:DUMP:policy
69 out: # allow localhost
70 out: :ACCEPT:.*:tcp.:127.0.0.1$
71 out: # Clients from local network are allowed to do anything
72 out: :ACCEPT:.*:tcp.:10\..*$
73 out: # Forbid all others to do anything else with the policy
74 out: :REJECT:.*:policy
75 out: # Hey and no one shall remotely shutdown this daemon!
76 out: :REJECT:SHUTDOWN
77 out: # Finally allow anything else
78 out: :ACCEPT:.*
79 END
80
81
82 TEST "daemon shutdown" <<END
83 in: SHUTDOWN:
84 out: #OK:
85 END
86