aboutsummaryrefslogtreecommitdiffstats
path: root/test/filters/fseccomp.exp
blob: 93f24ba71a1933cc0e506a6b5ea3e1b495406e1e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#!/usr/bin/expect -f
# This file is part of Firejail project
# Copyright (C) 2014-2018 Firejail Authors
# License GPL v2

set timeout 10
spawn $env(SHELL)
match_max 100000

after 100
send -- "fseccomp debug-syscalls\r"
expect {
	timeout {puts "TESTING ERROR 1\n";exit}
	"1	- write"
}

after 100
send -- "fseccomp debug-errnos\r"
expect {
	timeout {puts "TESTING ERROR 2\n";exit}
	"1	- EPERM"
}

after 100
send -- "fseccomp debug-protocols\r"
expect {
	timeout {puts "TESTING ERROR 3\n";exit}
	"unix, inet, inet6, netlink, packet,"
}

after 100
send -- "fseccomp protocol build unix,inet seccomp-test-file\r"
after 100
send -- "fsec-print seccomp-test-file\r"
expect {
	timeout {puts "TESTING ERROR 4.1\n";exit}
	"jeq socket"
}

after 100
send -- "fseccomp secondary 64 seccomp-test-file\r"
after 100
send -- "fsec-print seccomp-test-file\r"
expect {
	timeout {puts "TESTING ERROR 5.1\n";exit}
	"jeq mount"
}
expect {
	timeout {puts "TESTING ERROR 5.2\n";exit}
	"jeq umount2"
}
expect {
	timeout {puts "TESTING ERROR 5.3\n";exit}
	"ret ALLOW"
}

after 100
send -- "fseccomp default seccomp-test-file\r"
after 100
send -- "fsec-print seccomp-test-file\r"
expect {
	timeout {puts "TESTING ERROR 6.1\n";exit}
	"jeq mount"
}
expect {
	timeout {puts "TESTING ERROR 6.2\n";exit}
	"jeq umount2"
}
expect {
	timeout {puts "TESTING ERROR 6.3\n";exit}
	"ret ALLOW"
}

after 100
send -- "fseccomp drop seccomp-test-file tmpfile chmod,chown\r"
after 100
send -- "fsec-print seccomp-test-file\r"
expect {
	timeout {puts "TESTING ERROR 7.1\n";exit}
	"jeq mount" {puts "TESTING ERROR 7.2\n";exit}
	"jeq umount2" {puts "TESTING ERROR 7.3\n";exit}
	"jeq chmod"
}
expect {
	timeout {puts "TESTING ERROR 7.4\n";exit}
	"jeq chown"
}
expect {
	timeout {puts "TESTING ERROR 7.5\n";exit}
	"ret ALLOW"
}

after 100
send -- "fseccomp default drop seccomp-test-file tmpfile chmod,chown\r"
after 100
send -- "fsec-print seccomp-test-file\r"
expect {
	timeout {puts "TESTING ERROR 8.1\n";exit}
	"jeq mount"
}
expect {
	timeout {puts "TESTING ERROR 8.2\n";exit}
	"jeq umount2"
}
expect {
	timeout {puts "TESTING ERROR 8.3\n";exit}
	"jeq chmod"
}
expect {
	timeout {puts "TESTING ERROR 8.4\n";exit}
	"jeq chown"
}
expect {
	timeout {puts "TESTING ERROR 8.5\n";exit}
	"ret ALLOW"
}
after 100
send -- "fseccomp keep seccomp-test-file tmpfile chmod,chown\r"
after 100
send -- "fsec-print seccomp-test-file\r"
expect {
	timeout {puts "TESTING ERROR 9.1\n";exit}
	"jeq chmod"
}
expect {
	timeout {puts "TESTING ERROR 9.2\n";exit}
	"jeq chown"
}
expect {
	timeout {puts "TESTING ERROR 9.3\n";exit}
	"ret KILL"
}



after 100
puts "\nall done\n"