aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorLibravatar netblue30 <netblue30@yahoo.com>2016-11-13 10:47:20 -0500
committerLibravatar netblue30 <netblue30@yahoo.com>2016-11-13 10:47:20 -0500
commit63e16bfcd9f79c63f3801f51df4840f74fa6f41b (patch)
treefa62784ad7ff5becbb4856ed84264cb5d4de8828 /test
parentset_perms cleanup (diff)
downloadfirejail-63e16bfcd9f79c63f3801f51df4840f74fa6f41b.tar.gz
firejail-63e16bfcd9f79c63f3801f51df4840f74fa6f41b.tar.zst
firejail-63e16bfcd9f79c63f3801f51df4840f74fa6f41b.zip
major cleanup and testing
Diffstat (limited to 'test')
-rwxr-xr-xtest/appimage/appimage-v1.exp6
-rwxr-xr-xtest/appimage/appimage-v2.exp4
-rwxr-xr-xtest/apps-x11/apps-x11.sh36
-rwxr-xr-xtest/apps-x11/x11-none.exp48
-rwxr-xr-xtest/apps-x11/x11-xephyr.exp59
-rwxr-xr-xtest/apps-x11/xterm-xephyr.exp86
-rwxr-xr-xtest/apps-x11/xterm-xorg.exp (renamed from test/apps-x11/xterm.exp)2
-rwxr-xr-xtest/apps-x11/xterm-xpra.exp86
-rwxr-xr-xtest/fs/read-write.exp4
-rwxr-xr-xtest/network/firemon-arp.exp12
-rw-r--r--test/root/firejail.config20
-rwxr-xr-xtest/root/root.sh6
-rwxr-xr-xtest/root/seccomp-umount.exp2
-rwxr-xr-xtest/utils/join.exp2
-rwxr-xr-xtest/utils/ls.exp42
-rwxr-xr-xtest/utils/utils.sh4
16 files changed, 392 insertions, 27 deletions
diff --git a/test/appimage/appimage-v1.exp b/test/appimage/appimage-v1.exp
index 88687ae2a..503da2b9b 100755
--- a/test/appimage/appimage-v1.exp
+++ b/test/appimage/appimage-v1.exp
@@ -7,7 +7,7 @@ set timeout 10
7spawn $env(SHELL) 7spawn $env(SHELL)
8match_max 100000 8match_max 100000
9 9
10send -- "firejail --appimage Leafpad-0.8.17-x86_64.AppImage\r" 10send -- "firejail --name=appimage-test --appimage Leafpad-0.8.17-x86_64.AppImage\r"
11expect { 11expect {
12 timeout {puts "TESTING ERROR 1\n";exit} 12 timeout {puts "TESTING ERROR 1\n";exit}
13 "Child process initialized" 13 "Child process initialized"
@@ -77,5 +77,9 @@ expect {
77} 77}
78after 100 78after 100
79 79
80spawn $env(SHELL)
81send -- "firejail --shutdown=appimage-test\r"
82sleep 3
83
80puts "\nall done\n" 84puts "\nall done\n"
81 85
diff --git a/test/appimage/appimage-v2.exp b/test/appimage/appimage-v2.exp
index 7b3bf4cbd..5cb9d0849 100755
--- a/test/appimage/appimage-v2.exp
+++ b/test/appimage/appimage-v2.exp
@@ -77,5 +77,9 @@ expect {
77} 77}
78after 100 78after 100
79 79
80spawn $env(SHELL)
81send -- "firejail --shutdown=appimage-test\r"
82sleep 3
83
80puts "\nall done\n" 84puts "\nall done\n"
81 85
diff --git a/test/apps-x11/apps-x11.sh b/test/apps-x11/apps-x11.sh
index 1b3494290..4a8671dbd 100755
--- a/test/apps-x11/apps-x11.sh
+++ b/test/apps-x11/apps-x11.sh
@@ -6,6 +6,33 @@
6export MALLOC_CHECK_=3 6export MALLOC_CHECK_=3
7export MALLOC_PERTURB_=$(($RANDOM % 255 + 1)) 7export MALLOC_PERTURB_=$(($RANDOM % 255 + 1))
8 8
9echo "TESTING: no x11 (test/apps-x11/x11-none.exp)"
10./x11-none.exp
11
12
13which xterm
14if [ "$?" -eq 0 ];
15then
16 echo "TESTING: xterm x11 xorg"
17 ./xterm-xorg.exp
18
19 which xpra
20 if [ "$?" -eq 0 ];
21 then
22 echo "TESTING: xterm x11 xpra"
23 ./xterm-xpra.exp
24 fi
25
26 which Xephyr
27 if [ "$?" -eq 0 ];
28 then
29 echo "TESTING: xterm x11 xephyr"
30 ./xterm-xephyr.exp
31 fi
32else
33 echo "TESTING SKIP: xterm not found"
34fi
35
9# check xpra/xephyr 36# check xpra/xephyr
10which xpra 37which xpra
11if [ "$?" -eq 0 ]; 38if [ "$?" -eq 0 ];
@@ -23,15 +50,6 @@ else
23 fi 50 fi
24fi 51fi
25 52
26which xterm
27if [ "$?" -eq 0 ];
28then
29 echo "TESTING: xterm x11"
30 ./xterm.exp
31else
32 echo "TESTING SKIP: xterm not found"
33fi
34
35which firefox 53which firefox
36if [ "$?" -eq 0 ]; 54if [ "$?" -eq 0 ];
37then 55then
diff --git a/test/apps-x11/x11-none.exp b/test/apps-x11/x11-none.exp
new file mode 100755
index 000000000..e9908839b
--- /dev/null
+++ b/test/apps-x11/x11-none.exp
@@ -0,0 +1,48 @@
1#!/usr/bin/expect -f
2# This file is part of Firejail project
3# Copyright (C) 2014-2016 Firejail Authors
4# License GPL v2
5
6set timeout 10
7spawn $env(SHELL)
8match_max 100000
9
10send -- "firejail --name=test --x11=none\r"
11expect {
12 timeout {puts "TESTING ERROR 0\n";exit}
13 "use network namespace in firejail"
14}
15sleep 1
16
17send -- "firejail --name=test --net=none --x11=none\r"
18expect {
19 timeout {puts "TESTING ERROR 1\n";exit}
20 "Child process initialized"
21}
22sleep 1
23
24send -- "ls -al /tmp/.X11-unix\r"
25expect {
26 timeout {puts "TESTING ERROR 2\n";exit}
27 "cannot open directory"
28}
29after 100
30
31send -- "xterm\r"
32expect {
33 timeout {puts "TESTING ERROR 3\n";exit}
34 "DISPLAY is not set"
35}
36after 100
37
38send -- "export DISPLAY=:0.0\r"
39after 100
40send -- "xterm\r"
41expect {
42 timeout {puts "TESTING ERROR 4\n";exit}
43 "Xt error"
44}
45after 100
46
47puts "\nall done\n"
48
diff --git a/test/apps-x11/x11-xephyr.exp b/test/apps-x11/x11-xephyr.exp
new file mode 100755
index 000000000..41a413890
--- /dev/null
+++ b/test/apps-x11/x11-xephyr.exp
@@ -0,0 +1,59 @@
1#!/usr/bin/expect -f
2# This file is part of Firejail project
3# Copyright (C) 2014-2016 Firejail Authors
4# License GPL v2
5
6set timeout 10
7spawn $env(SHELL)
8match_max 100000
9
10send -- "firejail --name=test --x11=xephyr xterm\r"
11expect {
12 timeout {puts "TESTING ERROR 1\n";exit}
13 "Child process initialized"
14}
15
16exit
17
18
19sleep 5
20
21
22expect {
23 timeout {puts "TESTING ERROR 0\n";exit}
24 "use network namespace in firejail"
25}
26sleep 1
27
28send -- "firejail --name=test --net=none --x11=none\r"
29expect {
30 timeout {puts "TESTING ERROR 1\n";exit}
31 "Child process initialized"
32}
33sleep 1
34
35send -- "ls -al /tmp/.X11-unix\r"
36expect {
37 timeout {puts "TESTING ERROR 2\n";exit}
38 "cannot open directory"
39}
40after 100
41
42send -- "xterm\r"
43expect {
44 timeout {puts "TESTING ERROR 3\n";exit}
45 "DISPLAY is not set"
46}
47after 100
48
49send -- "export DISPLAY=:0.0\r"
50after 100
51send -- "xterm\r"
52expect {
53 timeout {puts "TESTING ERROR 4\n";exit}
54 "Xt error"
55}
56after 100
57
58puts "\nall done\n"
59
diff --git a/test/apps-x11/xterm-xephyr.exp b/test/apps-x11/xterm-xephyr.exp
new file mode 100755
index 000000000..5b4299478
--- /dev/null
+++ b/test/apps-x11/xterm-xephyr.exp
@@ -0,0 +1,86 @@
1#!/usr/bin/expect -f
2# This file is part of Firejail project
3# Copyright (C) 2014-2016 Firejail Authors
4# License GPL v2
5
6set timeout 10
7spawn $env(SHELL)
8match_max 100000
9
10send -- "firejail --name=test --x11=xephyr xterm\r"
11sleep 10
12
13spawn $env(SHELL)
14send -- "firejail --list\r"
15expect {
16 timeout {puts "TESTING ERROR 3\n";exit}
17 ":firejail"
18}
19expect {
20 timeout {puts "TESTING ERROR 3.1\n";exit}
21 "xterm"
22}
23sleep 1
24
25# grsecurity exit
26send -- "file /proc/sys/kernel/grsecurity\r"
27expect {
28 timeout {puts "TESTING ERROR - grsecurity detection\n";exit}
29 "grsecurity: directory" {puts "grsecurity present, exiting...\n";exit}
30 "cannot open" {puts "grsecurity not present\n"}
31}
32
33send -- "firejail --name=blablabla\r"
34expect {
35 timeout {puts "TESTING ERROR 4\n";exit}
36 "Child process initialized"
37}
38sleep 2
39
40spawn $env(SHELL)
41send -- "firemon --seccomp\r"
42expect {
43 timeout {puts "TESTING ERROR 5\n";exit}
44 "need to be root" {puts "/proc mounted as hidepid, exiting...\n"; exit}
45 ":firejail"
46}
47expect {
48 timeout {puts "TESTING ERROR 5.0\n";exit}
49 "xterm"
50}
51expect {
52 timeout {puts "TESTING ERROR 5.1 (seccomp)\n";exit}
53 "Seccomp: 2"
54}
55expect {
56 timeout {puts "TESTING ERROR 5.1\n";exit}
57 "name=blablabla"
58}
59sleep 1
60send -- "firemon --caps\r"
61expect {
62 timeout {puts "TESTING ERROR 6\n";exit}
63 ":firejail"
64}
65expect {
66 timeout {puts "TESTING ERROR 6.0\n";exit}
67 "xterm"
68}
69expect {
70 timeout {puts "TESTING ERROR 6.1\n";exit}
71 "CapBnd"
72}
73expect {
74 timeout {puts "TESTING ERROR 6.2\n";exit}
75 "0000000000000000"
76}
77expect {
78 timeout {puts "TESTING ERROR 6.3\n";exit}
79 "name=blablabla"
80}
81sleep 1
82send -- "firejail --shutdown=test\r"
83sleep 3
84
85puts "\nall done\n"
86
diff --git a/test/apps-x11/xterm.exp b/test/apps-x11/xterm-xorg.exp
index 4fa5ddf0c..fbc88f196 100755
--- a/test/apps-x11/xterm.exp
+++ b/test/apps-x11/xterm-xorg.exp
@@ -7,7 +7,7 @@ set timeout 10
7spawn $env(SHELL) 7spawn $env(SHELL)
8match_max 100000 8match_max 100000
9 9
10send -- "firejail --name=test --x11 xterm\r" 10send -- "firejail --name=test --x11=xorg xterm\r"
11sleep 10 11sleep 10
12 12
13spawn $env(SHELL) 13spawn $env(SHELL)
diff --git a/test/apps-x11/xterm-xpra.exp b/test/apps-x11/xterm-xpra.exp
new file mode 100755
index 000000000..379de131a
--- /dev/null
+++ b/test/apps-x11/xterm-xpra.exp
@@ -0,0 +1,86 @@
1#!/usr/bin/expect -f
2# This file is part of Firejail project
3# Copyright (C) 2014-2016 Firejail Authors
4# License GPL v2
5
6set timeout 10
7spawn $env(SHELL)
8match_max 100000
9
10send -- "firejail --name=test --x11=xpra xterm\r"
11sleep 10
12
13spawn $env(SHELL)
14send -- "firejail --list\r"
15expect {
16 timeout {puts "TESTING ERROR 3\n";exit}
17 ":firejail"
18}
19expect {
20 timeout {puts "TESTING ERROR 3.1\n";exit}
21 "xterm"
22}
23sleep 1
24
25# grsecurity exit
26send -- "file /proc/sys/kernel/grsecurity\r"
27expect {
28 timeout {puts "TESTING ERROR - grsecurity detection\n";exit}
29 "grsecurity: directory" {puts "grsecurity present, exiting...\n";exit}
30 "cannot open" {puts "grsecurity not present\n"}
31}
32
33send -- "firejail --name=blablabla\r"
34expect {
35 timeout {puts "TESTING ERROR 4\n";exit}
36 "Child process initialized"
37}
38sleep 2
39
40spawn $env(SHELL)
41send -- "firemon --seccomp\r"
42expect {
43 timeout {puts "TESTING ERROR 5\n";exit}
44 "need to be root" {puts "/proc mounted as hidepid, exiting...\n"; exit}
45 ":firejail"
46}
47expect {
48 timeout {puts "TESTING ERROR 5.0\n";exit}
49 "xterm"
50}
51expect {
52 timeout {puts "TESTING ERROR 5.1 (seccomp)\n";exit}
53 "Seccomp: 2"
54}
55expect {
56 timeout {puts "TESTING ERROR 5.1\n";exit}
57 "name=blablabla"
58}
59sleep 1
60send -- "firemon --caps\r"
61expect {
62 timeout {puts "TESTING ERROR 6\n";exit}
63 ":firejail"
64}
65expect {
66 timeout {puts "TESTING ERROR 6.0\n";exit}
67 "xterm"
68}
69expect {
70 timeout {puts "TESTING ERROR 6.1\n";exit}
71 "CapBnd"
72}
73expect {
74 timeout {puts "TESTING ERROR 6.2\n";exit}
75 "0000000000000000"
76}
77expect {
78 timeout {puts "TESTING ERROR 6.3\n";exit}
79 "name=blablabla"
80}
81sleep 1
82send -- "firejail --shutdown=test\r"
83sleep 3
84
85puts "\nall done\n"
86
diff --git a/test/fs/read-write.exp b/test/fs/read-write.exp
index cfca15605..57986488e 100755
--- a/test/fs/read-write.exp
+++ b/test/fs/read-write.exp
@@ -20,12 +20,14 @@ expect {
20 timeout {puts "TESTING ERROR 1\n";exit} 20 timeout {puts "TESTING ERROR 1\n";exit}
21 "done" 21 "done"
22} 22}
23after 100
23 24
24send -- "echo mytest >~/_firejail_test_dir/test1/b;echo done\r" 25send -- "echo mytest >~/_firejail_test_dir/test1/b;echo done\r"
25expect { 26expect {
26 timeout {puts "TESTING ERROR 2\n";exit} 27 timeout {puts "TESTING ERROR 2\n";exit}
27 "done" 28 "done"
28} 29}
30after 100
29 31
30send -- "cat ~/_firejail_test_dir/a;echo done\r" 32send -- "cat ~/_firejail_test_dir/a;echo done\r"
31expect { 33expect {
@@ -33,7 +35,7 @@ expect {
33 "mytest" {puts "TESTING ERROR 4\n";exit} 35 "mytest" {puts "TESTING ERROR 4\n";exit}
34 "done" 36 "done"
35} 37}
36 38after 100
37 39
38send -- "cat ~/_firejail_test_dir/test1/b;echo done\r" 40send -- "cat ~/_firejail_test_dir/test1/b;echo done\r"
39expect { 41expect {
diff --git a/test/network/firemon-arp.exp b/test/network/firemon-arp.exp
index e40ffb609..71fa1660f 100755
--- a/test/network/firemon-arp.exp
+++ b/test/network/firemon-arp.exp
@@ -4,12 +4,12 @@ set timeout 10
4spawn $env(SHELL) 4spawn $env(SHELL)
5match_max 100000 5match_max 100000
6 6
7send -- "ping -c 3 192.168.1.1\r" 7#send -- "ping -c 3 192.168.1.1\r"
8expect { 8#expect {
9 timeout {puts "TESTING ERROR 0\n";exit} 9# timeout {puts "TESTING ERROR 0\n";exit}
10 "3 packets transmitted" 10# "3 packets transmitted"
11} 11#}
12sleep 1 12#sleep 1
13 13
14send -- "firejail --name=test1\r" 14send -- "firejail --name=test1\r"
15expect { 15expect {
diff --git a/test/root/firejail.config b/test/root/firejail.config
new file mode 100644
index 000000000..71ff2f4e9
--- /dev/null
+++ b/test/root/firejail.config
@@ -0,0 +1,20 @@
1bind yes
2chroot yes
3chroot-desktop yes
4file-transfer yes
5force-nonewprivs no
6network yes
7overlayfs yes
8private-bin-no-local no
9private-home yes
10quiet-by-default no
11remount-proc-sys yes
12restricted-network no
13# netfilter-default /etc/iptables.iptables.rules
14seccomp yes
15userns yes
16whitelist yes
17x11 yes
18xephyr-screen 800x600
19xephyr-window-title yes
20xephyr-extra-params -grayscale
diff --git a/test/root/root.sh b/test/root/root.sh
index 8c7437e49..471b7d535 100755
--- a/test/root/root.sh
+++ b/test/root/root.sh
@@ -1,5 +1,8 @@
1#!/bin/bash 1#!/bin/bash
2 2
3# set a new firejail config file
4cp firejail.config /etc/firejail/firejail.config
5
3#******************************** 6#********************************
4# servers 7# servers
5#******************************** 8#********************************
@@ -91,3 +94,6 @@ else
91 echo "TESTING SKIP: firecfg, firefox not found" 94 echo "TESTING SKIP: firecfg, firefox not found"
92fi 95fi
93 96
97# restore the default config file
98cp ../../etc/firejail.config /etc/firejail/firejail.config
99
diff --git a/test/root/seccomp-umount.exp b/test/root/seccomp-umount.exp
index 04a9b7a3d..c441c5fc4 100755
--- a/test/root/seccomp-umount.exp
+++ b/test/root/seccomp-umount.exp
@@ -7,7 +7,7 @@ set timeout 10
7spawn $env(SHELL) 7spawn $env(SHELL)
8match_max 100000 8match_max 100000
9 9
10send -- "firejail --net=br0 --ip=10.10.20.5 --seccomp --noprofile\r" 10send -- "firejail --seccomp --noprofile\r"
11expect { 11expect {
12 timeout {puts "TESTING ERROR 0\n";exit} 12 timeout {puts "TESTING ERROR 0\n";exit}
13 "Child process initialized" 13 "Child process initialized"
diff --git a/test/utils/join.exp b/test/utils/join.exp
index 7f582e2e5..fc30bc6a4 100755
--- a/test/utils/join.exp
+++ b/test/utils/join.exp
@@ -8,7 +8,7 @@ cd /home
8spawn $env(SHELL) 8spawn $env(SHELL)
9match_max 100000 9match_max 100000
10 10
11send -- "firejail --name=jointesting\r" 11send -- "firejail --name=jointesting --cpu=0 --nice=2\r"
12expect { 12expect {
13 timeout {puts "TESTING ERROR 0\n";exit} 13 timeout {puts "TESTING ERROR 0\n";exit}
14 "Child process initialized" 14 "Child process initialized"
diff --git a/test/utils/ls.exp b/test/utils/ls.exp
index cd2c2984c..ff6867c51 100755
--- a/test/utils/ls.exp
+++ b/test/utils/ls.exp
@@ -3,6 +3,8 @@
3set timeout 10 3set timeout 10
4spawn $env(SHELL) 4spawn $env(SHELL)
5match_max 100000 5match_max 100000
6set firstspawn $spawn_id
7
6 8
7send -- "rm -f lstesting\r" 9send -- "rm -f lstesting\r"
8sleep 1 10sleep 1
@@ -11,11 +13,11 @@ expect {
11 timeout {puts "TESTING ERROR 0\n";exit} 13 timeout {puts "TESTING ERROR 0\n";exit}
12 "Child process initialized" 14 "Child process initialized"
13} 15}
14sleep 2 16sleep 1
15send -- "echo my_testing > ~/lstesting\r" 17send -- "echo my_testing > ~/lstesting\r"
16sleep 2 18after 100
17
18 19
20# ls
19spawn $env(SHELL) 21spawn $env(SHELL)
20send -- "firejail --ls=test ~/.\r" 22send -- "firejail --ls=test ~/.\r"
21expect { 23expect {
@@ -23,14 +25,44 @@ expect {
23 "lstesting" 25 "lstesting"
24} 26}
25sleep 1 27sleep 1
28
29# get
26send -- "firejail --get=test ~/lstesting\r" 30send -- "firejail --get=test ~/lstesting\r"
27sleep 2 31sleep 1
28send -- "cat lstesting\r" 32send -- "cat lstesting\r"
29expect { 33expect {
30 timeout {puts "TESTING ERROR 3\n";exit} 34 timeout {puts "TESTING ERROR 2n";exit}
31 "my_testing" 35 "my_testing"
32} 36}
37after 100
38
39# put
40send -- "echo put_test > ~/lstesting\r"
41after 100
42send -- "firejail --put=test ~/lstesting ~/lstesting_2\r"
33sleep 1 43sleep 1
44
45set spawn_id $firstspawn
46send -- "ls -al ~\r"
47expect {
48 timeout {puts "TESTING ERROR 3\n";exit}
49 "lstesting_2"
50}
51
52after 100
53send -- "cat ~/lstesting_2\r"
54expect {
55 timeout {puts "TESTING ERROR 4\n";exit}
56 "put_test"
57}
58after 100
59send -- "exit\r"
60sleep 1
61
62
63
64
65
34send -- "rm -f lstesting\r" 66send -- "rm -f lstesting\r"
35 67
36after 100 68after 100
diff --git a/test/utils/utils.sh b/test/utils/utils.sh
index 7b0ab1096..bd91110f7 100755
--- a/test/utils/utils.sh
+++ b/test/utils/utils.sh
@@ -88,10 +88,10 @@ echo "TESTING: top (test/utils/top.exp)"
88echo "TESTING: file transfer (test/utils/ls.exp)" 88echo "TESTING: file transfer (test/utils/ls.exp)"
89./ls.exp 89./ls.exp
90 90
91echo "TESTING: firemon --seccomp (test/utils/firemon-seccomp.exp)" 91echo "TESTING: firemon seccomp (test/utils/firemon-seccomp.exp)"
92./firemon-seccomp.exp 92./firemon-seccomp.exp
93 93
94echo "TESTING: firemon --caps (test/utils/firemon-caps.exp)" 94echo "TESTING: firemon caps (test/utils/firemon-caps.exp)"
95./firemon-caps.exp 95./firemon-caps.exp
96 96
97echo "TESTING: firemon cpu (test/utils/firemon-cpu.exp)" 97echo "TESTING: firemon cpu (test/utils/firemon-cpu.exp)"