(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:server) op: assign_op.Equal rhs: {(SQ <'rump_server -lrumpvfs'>)} spids: [79] ) ] ) (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> (SQ <'unix://commsock'>)}) (command.ShFunction name: startsrv body: (BraceGroup children: [ (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {(${ Id.VSub_Name server)} {($ Id.VSub_At '$@')} {(${ Id.VSub_Name RUMP_SERVER)} ) ] ) ) (command.ShFunction name: test_case body: (BraceGroup children: [ (command.Sentence child: (C {<local>} {<Id.Lit_VarLike 'name='> (DQ (${ Id.VSub_Number 1))}) terminator: <Id.Op_Semi _> ) (C {<shift>}) (C {<atf_test_case>} {(DQ (${ Id.VSub_Name name))} {<cleanup>}) (C {<eval>} {(DQ (${ Id.VSub_Name name) <'_head() { '> <'\t\tatf_set '>) <require.progs> (DQ <' '>) <rump_server> (DQ <' ; '> <'\t}'>) } ) (C {<eval>} { (DQ (${ Id.VSub_Name name) <'_body() { '> <'\t\t'> (${ Id.VSub_Name name) <'_prefun ; '> <'\t\tstartsrv '> ($ Id.VSub_At '$@') <' ; '> <'\t\t'> (${ Id.VSub_Name name) <' ; '> <'\t}'> ) } ) (C {<eval>} { (DQ (${ Id.VSub_Name name) <'_cleanup() { '> <'\t\t[ -f halted ] && return 0 ; rump.halt ;\n'> <'\t}'> ) } ) ] ) ) (C {<test_case>} {<size>} {<-d>} {<Id.Lit_VarLike 'key='> <'/img'> <Id.Lit_Comma ','> <Id.Lit_VarLike 'hostpath='> <the.img> <Id.Lit_Comma ','> <Id.Lit_VarLike 'size='> <32k> } ) (command.ShFunction name: size body: (BraceGroup children: [ (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<inline> <Id.Lit_Colon ':'> (SQ <'32768\\n'>)} {<stat>} {<-f>} {<Id.Lit_Other '%'> <z>} {<the.img>} ) ] ) ) (C {<test_case>} {<offset>} {<-d>} {<Id.Lit_VarLike 'key='> <'/img'> <Id.Lit_Comma ','> <Id.Lit_VarLike 'hostpath='> <the.img> <Id.Lit_Comma ','> <Id.Lit_VarLike 'size='> <32k> <Id.Lit_Comma ','> <Id.Lit_VarLike 'offset='> <16k> } ) (command.ShFunction name: offset body: (BraceGroup children: [ (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<inline> <Id.Lit_Colon ':'> (SQ <'49152\\n'>)} {<stat>} {<-f>} {<Id.Lit_Other '%'> <z>} {<the.img>} ) ] ) ) (C {<test_case>} {<notrunc>} {<-d>} {<Id.Lit_VarLike 'key='> <'/img'> <Id.Lit_Comma ','> <Id.Lit_VarLike 'hostpath='> <the.img> <Id.Lit_Comma ','> <Id.Lit_VarLike 'size='> <8k> <Id.Lit_Comma ','> <Id.Lit_VarLike 'offset='> <16k> } ) (command.ShFunction name: notrunc_prefun body: (BraceGroup children: [ (C {<dd>} {<Id.Lit_VarLike 'if='> <'/dev/zero'>} {<Id.Lit_VarLike 'of='> <the.img>} {<Id.Lit_VarLike 'bs='> <1>} {<Id.Lit_VarLike 'oseek='> <65535>} {<Id.Lit_VarLike 'count='> <1>} ) ] ) ) (command.ShFunction name: notrunc body: (BraceGroup children: [ (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<inline> <Id.Lit_Colon ':'> (SQ <'65536\\n'>)} {<stat>} {<-f>} {<Id.Lit_Other '%'> <z>} {<the.img>} ) ] ) ) (C {<test_case>} {<Id.KW_Data data>} {<-d>} {<Id.Lit_VarLike 'key='> <'/img'> <Id.Lit_Comma ','> <Id.Lit_VarLike 'hostpath='> <the.img> <Id.Lit_Comma ','> <Id.Lit_VarLike 'size='> <8k> <Id.Lit_Comma ','> <Id.Lit_VarLike 'offset='> <16k> } ) (command.ShFunction name: data body: (BraceGroup children: [ (command.Pipeline children: [ (C {<echo>} {(SQ <'test string'>)}) (C {<dd>} {<Id.Lit_VarLike 'of='> <testfile>} {<Id.Lit_VarLike 'ibs='> <512>} {<Id.Lit_VarLike 'count='> <1>} {<Id.Lit_VarLike 'conv='> <sync>} ) ] negated: F ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-e>} {<ignore>} {<-x>} {(DQ <'dd if=testfile | rump.dd of=/img bs=512 count=1'>)} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.halt>}) (C {<touch>} {<halted>}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-e>} {<ignore>} {<-o>} {<file> <Id.Lit_Colon ':'> <testfile>} {<dd>} {<Id.Lit_VarLike 'if='> <the.img>} {<Id.Lit_VarLike 'iseek='> <16k>} {<Id.Lit_VarLike 'bs='> <1>} {<Id.Lit_VarLike 'count='> <512>} ) ] ) ) (C {<test_case>} {<type_chr>} {<-d>} {<Id.Lit_VarLike 'key='> <'/img'> <Id.Lit_Comma ','> <Id.Lit_VarLike 'hostpath='> <the.img> <Id.Lit_Comma ','> <Id.Lit_VarLike 'size='> <32k> <Id.Lit_Comma ','> <Id.Lit_VarLike 'type='> <chr> } ) (command.ShFunction name: type_chr body: (BraceGroup children: [ (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<inline> <Id.Lit_Colon ':'> (SQ <'Character Device\\n'>)} {<env>} {<Id.Lit_VarLike 'LD_PRELOAD='> <'/usr/lib/librumphijack.so'>} {<stat>} {<-f>} {<Id.Lit_Other '%'> <HT>} {<'/rump/img'>} ) ] ) ) (C {<test_case>} {<type_reg>} {<-d>} {<Id.Lit_VarLike 'key='> <'/img'> <Id.Lit_Comma ','> <Id.Lit_VarLike 'hostpath='> <the.img> <Id.Lit_Comma ','> <Id.Lit_VarLike 'size='> <32k> <Id.Lit_Comma ','> <Id.Lit_VarLike 'type='> <reg> } ) (command.ShFunction name: type_reg body: (BraceGroup children: [ (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<inline> <Id.Lit_Colon ':'> (SQ <'Regular File\\n'>)} {<env>} {<Id.Lit_VarLike 'LD_PRELOAD='> <'/usr/lib/librumphijack.so'>} {<stat>} {<-f>} {<Id.Lit_Other '%'> <HT>} {<'/rump/img'>} ) ] ) ) (C {<test_case>} {<type_blk>} {<-d>} {<Id.Lit_VarLike 'key='> <'/img'> <Id.Lit_Comma ','> <Id.Lit_VarLike 'hostpath='> <the.img> <Id.Lit_Comma ','> <Id.Lit_VarLike 'size='> <32k> <Id.Lit_Comma ','> <Id.Lit_VarLike 'type='> <blk> } ) (command.ShFunction name: type_blk body: (BraceGroup children: [ (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<inline> <Id.Lit_Colon ':'> (SQ <'Block Device\\n'>)} {<env>} {<Id.Lit_VarLike 'LD_PRELOAD='> <'/usr/lib/librumphijack.so'>} {<stat>} {<-f>} {<Id.Lit_Other '%'> <HT>} {<'/rump/img'>} ) ] ) ) (C {<test_case>} {<type_blk_default>} {<-d>} {<Id.Lit_VarLike 'key='> <'/img'> <Id.Lit_Comma ','> <Id.Lit_VarLike 'hostpath='> <the.img> <Id.Lit_Comma ','> <Id.Lit_VarLike 'size='> <32k> } ) (command.ShFunction name: type_blk_default body: (BraceGroup children: [ (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<inline> <Id.Lit_Colon ':'> (SQ <'Block Device\\n'>)} {<env>} {<Id.Lit_VarLike 'LD_PRELOAD='> <'/usr/lib/librumphijack.so'>} {<stat>} {<-f>} {<Id.Lit_Other '%'> <HT>} {<'/rump/img'>} ) ] ) ) (command.ShFunction name: atf_init_test_cases body: (BraceGroup children: [ (C {<atf_add_test_case>} {<size>}) (C {<atf_add_test_case>} {<offset>}) (C {<atf_add_test_case>} {<notrunc>}) (C {<atf_add_test_case>} {<Id.KW_Data data>}) (C {<atf_add_test_case>} {<type_chr>}) (C {<atf_add_test_case>} {<type_reg>}) (C {<atf_add_test_case>} {<type_blk>}) (C {<atf_add_test_case>} {<type_blk_default>}) ] ) ) ] )