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