summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorLibravatar netblue30 <netblue30@yahoo.com>2015-11-24 11:28:03 -0500
committerLibravatar netblue30 <netblue30@yahoo.com>2015-11-24 11:28:03 -0500
commit3fe00bab994c8ac9da482c7711aaadd38e2ea97d (patch)
treeebf3f1a663a972e0767f69959283bfb54b95ec8a /test
parentfeature test (diff)
downloadfirejail-3fe00bab994c8ac9da482c7711aaadd38e2ea97d.tar.gz
firejail-3fe00bab994c8ac9da482c7711aaadd38e2ea97d.tar.zst
firejail-3fe00bab994c8ac9da482c7711aaadd38e2ea97d.zip
feature testing
Diffstat (limited to 'test')
-rwxr-xr-xtest/configure4
-rwxr-xr-xtest/features/3.1.exp72
-rwxr-xr-xtest/features/3.2.exp72
-rw-r--r--test/features/features.txt1
4 files changed, 148 insertions, 1 deletions
diff --git a/test/configure b/test/configure
index 73c808020..67122cfe1 100755
--- a/test/configure
+++ b/test/configure
@@ -28,12 +28,14 @@ ROOTDIR="/tmp/chroot" # default chroot directory
28DEFAULT_FILES="/bin/bash /bin/sh " # basic chroot files 28DEFAULT_FILES="/bin/bash /bin/sh " # basic chroot files
29DEFAULT_FILES+="/etc/passwd /etc/nsswitch.conf /etc/group " 29DEFAULT_FILES+="/etc/passwd /etc/nsswitch.conf /etc/group "
30DEFAULT_FILES+=`find /lib -name libnss*` # files required by glibc 30DEFAULT_FILES+=`find /lib -name libnss*` # files required by glibc
31DEFAULT_FILES+=" /bin/cp /bin/ls /bin/cat /bin/ps /bin/netstat /bin/ping /sbin/ifconfig /bin/hostname /bin/grep /usr/bin/dig /usr/bin/openssl /usr/bin/id /usr/bin/getent /usr/bin/whoami /usr/bin/wc /usr/bin/wget /bin/umount" 31DEFAULT_FILES+=" /bin/cp /bin/ls /bin/cat /bin/ps /bin/netstat /bin/ping /sbin/ifconfig /usr/bin/touch /bin/hostname /bin/grep /usr/bin/dig /usr/bin/openssl /usr/bin/id /usr/bin/getent /usr/bin/whoami /usr/bin/wc /usr/bin/wget /bin/umount"
32 32
33rm -fr $ROOTDIR 33rm -fr $ROOTDIR
34mkdir -p $ROOTDIR/{root,bin,lib,lib64,usr,home,etc,dev/shm,tmp,var/run,var/tmp,var/lock,var/log,proc} 34mkdir -p $ROOTDIR/{root,bin,lib,lib64,usr,home,etc,dev/shm,tmp,var/run,var/tmp,var/lock,var/log,proc}
35mkdir -p $ROOTDIR/etc/firejail 35mkdir -p $ROOTDIR/etc/firejail
36mkdir -p $ROOTDIR/home/netblue/.config/firejail 36mkdir -p $ROOTDIR/home/netblue/.config/firejail
37chown netblue:netblue $ROOTDIR/home/netblue
38chown netblue:netblue $ROOTDIR/home/netblue/.config
37mkdir $ROOTDIR/home/someotheruser 39mkdir $ROOTDIR/home/someotheruser
38mkdir $ROOTDIR/boot 40mkdir $ROOTDIR/boot
39mkdir $ROOTDIR/selinux 41mkdir $ROOTDIR/selinux
diff --git a/test/features/3.1.exp b/test/features/3.1.exp
new file mode 100755
index 000000000..6abbf94a5
--- /dev/null
+++ b/test/features/3.1.exp
@@ -0,0 +1,72 @@
1#!/usr/bin/expect -f
2#
3# tmpfs
4#
5
6set timeout 10
7spawn $env(SHELL)
8match_max 100000
9
10#
11# N
12#
13send -- "touch ~/.config/firejail-test-file\r"
14sleep 1
15send -- "firejail --noprofile --tmpfs=/home/netblue/.config\r"
16expect {
17 timeout {puts "TESTING ERROR 0\n";exit}
18 "Child process initialized"
19}
20sleep 1
21
22send -- "ls ~/.config | wc -l\r"
23expect {
24 timeout {puts "TESTING ERROR 1\n";exit}
25 "0"
26}
27after 100
28send -- "exit\r"
29sleep 1
30
31#
32# O
33#
34send -- "firejail --noprofile --overlay --tmpfs=/home/netblue/.config\r"
35expect {
36 timeout {puts "TESTING ERROR 2\n";exit}
37 "Child process initialized"
38}
39sleep 1
40
41send -- "ls ~/.config | wc -l\r"
42expect {
43 timeout {puts "TESTING ERROR 3\n";exit}
44 "0"
45}
46after 100
47send -- "exit\r"
48sleep 1
49
50#
51# C
52#
53send -- "touch /tmp/chroot/home/netblue/.config/firejail-test-file\r"
54sleep 1
55send -- "firejail --noprofile --chroot=/tmp/chroot --tmpfs=/home/netblue/.config\r"
56expect {
57 timeout {puts "TESTING ERROR 4\n";exit}
58 "Child process initialized"
59}
60sleep 1
61
62send -- "ls ~/.config | wc -l\r"
63expect {
64 timeout {puts "TESTING ERROR 5\n";exit}
65 "0"
66}
67after 100
68send -- "exit\r"
69sleep 1
70
71
72puts "\nall done\n"
diff --git a/test/features/3.2.exp b/test/features/3.2.exp
new file mode 100755
index 000000000..f6ed01310
--- /dev/null
+++ b/test/features/3.2.exp
@@ -0,0 +1,72 @@
1#!/usr/bin/expect -f
2#
3# disable /boot
4#
5
6set timeout 10
7spawn $env(SHELL)
8match_max 100000
9
10#
11# N
12#
13send -- "rm -f ~/.config/firejail-test-file\r"
14sleep 1
15send -- "firejail --noprofile --read-only=/home/netblue/.config\r"
16expect {
17 timeout {puts "TESTING ERROR 0\n";exit}
18 "Child process initialized"
19}
20sleep 1
21
22send -- "touch ~/.config/firejail-test-file\r"
23expect {
24 timeout {puts "TESTING ERROR 1\n";exit}
25 "Read-only file system"
26}
27after 100
28send -- "exit\r"
29sleep 1
30
31#
32# O
33#
34send -- "firejail --noprofile --overlay --read-only=/home/netblue/.config\r"
35expect {
36 timeout {puts "TESTING ERROR 2\n";exit}
37 "Child process initialized"
38}
39sleep 1
40
41send -- "touch ~/.config/firejail-test-file\r"
42expect {
43 timeout {puts "TESTING ERROR 3\n";exit}
44 "Read-only file system"
45}
46after 100
47send -- "exit\r"
48sleep 1
49
50#
51# C
52#
53send -- "rm -f /tmp/chroot/home/netblue/.config/firejail-test-file\r"
54sleep 1
55send -- "firejail --noprofile --chroot=/tmp/chroot --read-only=/home/netblue/.config\r"
56expect {
57 timeout {puts "TESTING ERROR 4\n";exit}
58 "Child process initialized"
59}
60sleep 1
61
62send -- "touch ~/.config/firejail-test-file\r"
63expect {
64 timeout {puts "TESTING ERROR 5\n";exit}
65 "Read-only file system"
66}
67after 100
68send -- "exit\r"
69sleep 1
70
71
72puts "\nall done\n"
diff --git a/test/features/features.txt b/test/features/features.txt
index 95e8cc5a0..492843adc 100644
--- a/test/features/features.txt
+++ b/test/features/features.txt
@@ -70,4 +70,5 @@ C - chroot filesystem
703. Filesystem features (use --noprofile) 703. Filesystem features (use --noprofile)
71 71
723.1 tmpfs 723.1 tmpfs
733.2 read-only
73 \ No newline at end of file 74 \ No newline at end of file