fixed typo
[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: # DUMPH rules in a list, human readable atime.
55 out: # LIST all existing lists.
56 out: # VERSION of this rxpd is $version.
57 out: # HELP is what you see right now.
58 out: # SHUTDOWN the daemon.
59 out: #
60 out: # general syntax is: 'COMMAND:listname\n..data..'
61 out: # see http://www.pipapo.org/pipawiki/RegexPolicyDaemon
62 END
63
64
65 TEST "show loaded files" <<END
66 in: LIST:
67 out: example
68 out: policy
69 END
70
71
72 TEST "dump a file" <<END
73 in: DUMP:policy
74 out: # syntax:
75 out: # [atime]:name:command:list:proto:address
76 out: #
77 out: # Allow dumping of the 'policy' list itself
78 out: :ACCEPT:DUMP:policy
79 out: :REJECT:DUMP:nodump
80 out: # allow localhost
81 out: :ACCEPT:.*:tcp.:127.0.0.1$
82 out: # Clients from local network are allowed to do anything
83 out: :ACCEPT:.*:tcp.:10\..*$
84 out: # Forbid all others to do anything else with the policy
85 out: :REJECT:.*:policy
86 out: # Hey and no one shall remotely shutdown this daemon!
87 out: :REJECT:SHUTDOWN
88 out: # Finally allow anything else
89 out: :ACCEPT:.*
90 END
91
92
93 TEST "daemon shutdown" <<END
94 in: SHUTDOWN:
95 out: #OK:
96 END
97