#!/usr/bin/expect -f # This file is part of Firejail project # Copyright (C) 2014-2021 Firejail Authors # License GPL v2 set timeout 10 match_max 100000 spawn $env(SHELL) set id1 $spawn_id spawn $env(SHELL) set id2 $spawn_id send -- "stty -echo\r" after 100 # # regular run # set spawn_id $id1 send -- "firejail --name=jointesting\r" expect { timeout {puts "TESTING ERROR 0\n";exit} "Child process initialized" } sleep 1 set spawn_id $id2 send -- "firejail --join=jointesting cat /proc/self/status\r" expect { timeout {puts "TESTING ERROR 1\n";exit} "CapBnd: 0000000000000000" } sleep 1 set spawn_id $id1 send -- "exit\r" after 100 # # no caps # set spawn_id $id1 send -- "firejail --name=jointesting --noprofile\r" expect { timeout {puts "TESTING ERROR 10\n";exit} "Child process initialized" } sleep 1 set spawn_id $id2 send -- "firejail --join=jointesting cat /proc/self/status\r" expect { timeout {puts "TESTING ERROR 11\n";exit} "CapBnd:" } expect { timeout {puts "TESTING ERROR 12\n";exit} "fffffffff" } expect { timeout {puts "TESTING ERROR 13\n";exit} "CapAmb:" } sleep 1 set spawn_id $id1 send -- "exit\r" after 100 # # no caps # set spawn_id $id1 send -- "firejail --name=jointesting --noprofile --caps.keep=chown,fowner\r" expect { timeout {puts "TESTING ERROR20\n";exit} "Child process initialized" } sleep 1 set spawn_id $id2 send -- "firejail --join=jointesting cat /proc/self/status\r" expect { timeout {puts "TESTING ERROR 21\n";exit} "CapBnd: 0000000000000009" } sleep 1 set spawn_id $id1 send -- "exit\r" after 100 puts "all done\n"