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