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 138 139 140 141 142 143 144 145 146 147 148 149 150 151
|
#!/usr/bin/expect -f
# This file is part of Firejail project
# Copyright (C) 2014-2026 Firejail Authors
# License GPL v2
set timeout 10
spawn $env(SHELL)
match_max 100000
send -- "firejail --whitelist=/dev/null\r"
expect {
timeout {puts "TESTING ERROR 0\n";exit}
-re "Child process initialized in \[0-9\]+.\[0-9\]+ ms"
}
sleep 1
send -- "ls /dev | wc -l\r"
expect {
timeout {puts "TESTING ERROR 1\n";exit}
"1"
}
after 100
send -- "exit\r"
sleep 1
send -- "firejail --whitelist=/dev/null --whitelist=/dev/random\r"
expect {
timeout {puts "TESTING ERROR 2\n";exit}
-re "Child process initialized in \[0-9\]+.\[0-9\]+ ms"
}
sleep 1
send -- "ls /dev | wc -l\r"
expect {
timeout {puts "TESTING ERROR 3\n";exit}
"2"
}
after 100
send -- "exit\r"
sleep 1
send -- "firejail --private-dev\r"
expect {
timeout {puts "TESTING ERROR 4\n";exit}
-re "Child process initialized in \[0-9\]+.\[0-9\]+ ms"
}
sleep 1
send -- "ls /dev | wc -l\r"
expect {
timeout {puts "TESTING ERROR 5\n";exit}
"10" {puts "OK\n"}
"11" {puts "OK\n"}
"12" {puts "OK\n"}
"13" {puts "OK\n"}
"14" {puts "OK\n"}
"15" {puts "OK\n"}
"16" {puts "OK\n"}
"17" {puts "OK\n"}
"18" {puts "OK\n"}
"19" {puts "OK\n"}
"20" {puts "OK\n"}
"21" {puts "OK\n"}
"22" {puts "OK\n"}
"23" {puts "OK\n"}
"24" {puts "OK\n"}
}
after 100
set have_dvd 0
send -- "ls -l /dev\r"
expect {
"dvd" {set have_dvd 1}
}
after 100
set have_dri 0
send -- "ls -l /dev\r"
expect {
"dri" {set have_dri 1}
}
after 100
set have_snd 0
send -- "ls -l /dev\r"
expect {
"snd" {set have_snd 1}
}
after 100
send -- "exit\r"
sleep 1
if { $have_snd > 0 } {
puts "TESTING --private-dev --nosound\n"
send -- "firejail --private-dev --nosound ls /dev\r"
expect {
timeout {puts "TESTING ERROR 7\n";exit}
-re "Child process initialized in \[0-9\]+.\[0-9\]+ ms"
}
expect {
timeout {puts "TESTING ERROR 8\n";exit}
"snd" {puts "TESTING ERROR 9\n";exit}
"Parent is shutting down"
}
after 100
} else {
puts "TESTING skip --private-dev --nosound, no /dev/snd device available\n"
}
if { $have_dvd > 0 } {
puts "TESTING --private-dev --nodvd\n"
send -- "firejail --private-dev --nodvd ls /dev\r"
expect {
timeout {puts "TESTING ERROR 10\n";exit}
-re "Child process initialized in \[0-9\]+.\[0-9\]+ ms"
}
expect {
timeout {puts "TESTING ERROR 11\n";exit}
"dvd" {puts "TESTING ERROR 12\n";exit}
"cdrom" {puts "TESTING ERROR 13\n";exit}
"dvdrom" {puts "TESTING ERROR 14\n";exit}
"cdrw" {puts "TESTING ERROR 15\n";exit}
"dvdrw" {puts "TESTING ERROR 16\n";exit}
"Parent is shutting down"
}
after 100
} else {
puts "TESTING skip --private-dev --nodvd, no /dev/dvd device available\n"
}
if { $have_dri > 0 } {
puts "TESTING --private-dev --no3d\n"
send -- "firejail --private-dev --no3d ls /dev\r"
expect {
timeout {puts "TESTING ERROR 17\n";exit}
-re "Child process initialized in \[0-9\]+.\[0-9\]+ ms"
}
expect {
timeout {puts "TESTING ERROR 18\n";exit}
"dri" {puts "TESTING ERROR 19\n";exit}
"Parent is shutting down"
}
after 100
} else {
puts "TESTING skip --private-dev --no3d, no /dev/dri device available\n"
}
after 100
puts "\nall done\n"
|