#!/usr/bin/expect -f # This file is part of Firejail project # Copyright (C) 2014-2023 Firejail Authors # License GPL v2 set timeout 10 spawn $env(SHELL) match_max 100000 if {[file exists ~/.asoundrc]} { puts "found .asoundrc file\n" } else { send -- "touch ~/.asoundrc\r" } after 100 if {[file exists ~/.Xauthority]} { puts "found .Xauthority file\n" } else { send -- "touch ~/.Xauthority\r" } after 100 send -- "rm -fr ~/_firejail_test_dir1_\r" after 100 send -- "mkdir ~/_firejail_test_dir1_\r" sleep 1 # testing profile and private send -- "firejail --private=~/_firejail_test_dir1_\r" expect { timeout {puts "TESTING ERROR 0\n";exit} -re "Child process initialized in \[0-9\]+.\[0-9\]+ ms" } sleep 1 send -- "ls -l ~\r" expect { timeout {puts "TESTING ERROR 1\n";exit} "total 0" } after 100 send -- "find ~ | LC_ALL=C sort\r" expect { timeout {puts "TESTING ERROR 4\n";exit} ".Xauthority" } expect { timeout {puts "TESTING ERROR 2\n";exit} ".asoundrc" } expect { timeout {puts "TESTING ERROR 3\n";exit} ".bashrc" } after 100 send -- "exit\r" sleep 1 # testing profile and private send -- "firejail --private=/etc\r" expect { timeout {puts "TESTING ERROR 5\n";exit} "private directory is not owned by the current user" } sleep 1 send -- "mkdir ~/_firejail_test_dir1_/test_dir_2\r" after 100 send -- "touch ~/_firejail_test_dir1_/test_dir_2/testfile\r" sleep 1 send -- "firejail --debug --noprofile --blacklist=~/test_dir_2 --private=~/_firejail_test_dir1_\r" expect { timeout {puts "TESTING ERROR 10\n";exit} "Disable" } expect { timeout {puts "TESTING ERROR 11\n";exit} "test_dir_2" } expect { timeout {puts "TESTING ERROR 12\n";exit} -re "Child process initialized in \[0-9\]+.\[0-9\]+ ms" } sleep 1 send -- "ls ~/test_dir_2\r" expect { timeout {puts "TESTING ERROR 13\n";exit} "cannot open directory" } after 100 send "exit\r" sleep 1 send -- "rm -fr ~/_firejail_test_dir1\r" after 100 puts "\nall done\n"