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