(command.CommandList children: [ (command.ShAssignment left: <Id.Lit_VarLike 'TMPMP='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TMPMP='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TMPMP='> name:TMPMP) op: assign_op.Equal rhs: {<umount-f_mount>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'TMPIM='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TMPIM='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TMPIM='> name:TMPIM) op: assign_op.Equal rhs: {<umount-f.im>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'VND='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'VND='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VND='> name:VND) op: assign_op.Equal rhs: {<vnd0>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'BVND='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'BVND='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BVND='> name:BVND) op: assign_op.Equal rhs: {<'/dev/'> (${ Id.VSub_Name VND)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'CVND='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CVND='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CVND='> name:CVND) op: assign_op.Equal rhs: {<'/dev/r'> (${ Id.VSub_Name VND)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MPART='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MPART='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MPART='> name:MPART) op: assign_op.Equal rhs: {<a>} ) ] redirects: [] ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<umount>} {<cleanup>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <umount_head> name: umount_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Checks forced unmounting'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <umount_body> name: umount_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<disktab>}) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'floppy288|2.88MB 3.5in Extra High Density Floppy:'> <'\t:ty=floppy:se#512:nt#2:rm#300:ns#36:nc#80:'> <'\t:pa#5760:oa#0:ba#4096:fa#512:ta=4.2BSD:'> <'\t:pb#5760:ob#0:'> <'\t:pc#5760:oc#0:\n'> ] ) ) ] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'*** Creating a dummy directory tree at'>)} {(DQ (${ Id.VSub_Name TMPMP) <' mounted on '> (${ Id.VSub_Name TMPIM))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [{<atf_check>} {<-o>} {<ignore>} {<-e>} {<ignore>} {<mkdir>} {(${ Id.VSub_Name TMPMP)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<ignore>} {<-e>} {<ignore>} {<touch>} {(${ Id.VSub_Name TMPMP) <'/under_the_mount'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<ignore>} {<-e>} {<ignore>} {<dd>} {<Id.Lit_VarLike 'if='> <'/dev/zero'>} {<Id.Lit_VarLike 'of='> (${ Id.VSub_Name TMPIM)} {<Id.Lit_VarLike 'count='> <5860>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<ignore>} {<-e>} {<ignore>} {<vnconfig>} {<-v>} {(${ Id.VSub_Name VND)} {(${ Id.VSub_Name TMPIM)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<ignore>} {<-e>} {<ignore>} {<disklabel>} {<-f>} {<disktab>} {<-rw>} {(${ Id.VSub_Name VND)} {<floppy288>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<ignore>} {<-e>} {<ignore>} {<newfs>} {<-i>} {<500>} {<-b>} {<8192>} {<-f>} {<1024>} {(${ Id.VSub_Name CVND) (${ Id.VSub_Name MPART)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<ignore>} {<-e>} {<ignore>} {<mount>} {<-o>} {<async>} {(${ Id.VSub_Name BVND) (${ Id.VSub_Name MPART)} {(${ Id.VSub_Name TMPMP)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<ignore>} {<-e>} {<ignore>} {<touch>} {(${ Id.VSub_Name TMPMP) <'/in_mounted_directory'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'*** Testing forced unmount'>)}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-e>} {(DQ (${ Id.VSub_Name TMPMP) <'/in_mounted_directory'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_fail> more_env: [] words: [{<atf_fail>} {(DQ <'Test file not present in mounted directory!'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'mydir='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'mydir='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mydir='> name:mydir) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <pwd> more_env: [] words: [{<pwd>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) ) } ) ] redirects: [] ) (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {(DQ (${ Id.VSub_Name TMPMP))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<ignore>} {<-e>} {<ignore>} {<umount>} {<-f>} {(DQ (${ Id.VSub_Name BVND) (${ Id.VSub_Name MPART))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<ne> <Id.Lit_Colon ':'> <0>} {<-e>} {<inline> <Id.Lit_Colon ':'> (DQ <'ls: .: No such file or directory'> <Id.Lit_BadBackslash '\\'> <n>) } {<ls>} {<.>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<ne> <Id.Lit_Colon ':'> <0>} {<-e>} {<inline> <Id.Lit_Colon ':'> (DQ <'ls: ..: No such file or directory'> <Id.Lit_BadBackslash '\\'> <n>) } {<ls>} {<..>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<ne> <Id.Lit_Colon ':'> <0>} {<-e>} {<ignore>} {<-o>} {<inline> <Id.Lit_Colon ':'> (DQ <'cd: can\'t cd to .'> <Id.Lit_BadBackslash '\\'> <n>)} {<-x>} {(DQ <'cd . 2>&1'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<ne> <Id.Lit_Colon ':'> <0>} {<-e>} {<ignore>} {<-o>} {<inline> <Id.Lit_Colon ':'> (DQ <'cd: can\'t cd to ..'> <Id.Lit_BadBackslash '\\'> <n>) } {<-x>} {(DQ <'cd .. 2>&1'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {(DQ (${ Id.VSub_Name mydir))}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-e>} {(DQ (${ Id.VSub_Name TMPMP) <'/under_the_mount'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_fail> more_env: [] words: [{<atf_fail>} {(DQ <'Original mount point dissapeared!'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <umount_cleanup> name: umount_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'*** Cleaning up '> (${ Id.VSub_Name TMPMP) <', '> (${ Id.VSub_Name TMPIM) <.>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <umount> more_env: [] words: [{<umount>} {<-f>} {(DQ (${ Id.VSub_Name TMPMP))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <vnconfig> more_env: [] words: [{<vnconfig>} {<-u>} {(DQ (${ Id.VSub_Name VND))}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <atf_init_test_cases> name: atf_init_test_cases body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<umount>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] )