(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mkimg_blksz_list) op: assign_op.Equal rhs: {(DQ <'512 4096'>)} spids: [4] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mkimg_format_list) op: assign_op.Equal rhs: {(DQ <'qcow qcow2 raw vhd vhdf vmdk'>)} spids: [9] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mkimg_geom_list) op: assign_op.Equal rhs: {(DQ <'1x1 63x255'>)} spids: [14] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mkimg_scheme_list) op: assign_op.Equal rhs: {(DQ <'apm bsd ebr gpt mbr vtoc8'>)} spids: [19] ) ] ) (command.ShFunction name: bootcode body: (command.BraceGroup children: [ (command.Case to_match: {($ Id.VSub_Number '$1')} arms: [ (case_arm pat_list: [{<bsd>}] action: [(C {<echo>} {<8192>})] spids: [39 40 46 -1] ) (case_arm pat_list: [{<gpt>} {<mbr>}] action: [(C {<echo>} {<512>})] spids: [49 52 58 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(C {<echo>} {<0>})] spids: [61 62 68 -1] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (command.ShFunction name: mkcontents body: (command.BraceGroup children: [ (C {<local>} {<byte>} {<count>} {<name>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:byte) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [98] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:count) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [102] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:name) op: assign_op.Equal rhs: {<_tmp-> ($ Id.VSub_DollarName '$byte') <-> ($ Id.VSub_DollarName '$count') <.bin>} spids: [107] ) ] ) (command.Simple words: [ {<jot>} {<-b>} {($ Id.VSub_DollarName '$byte')} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$count')}) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>}) ) ) } ] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$name')} ) ] ) (C {<echo>} {($ Id.VSub_DollarName '$name')}) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (command.ShFunction name: makeimage body: (command.BraceGroup children: [ (C {<local>} {<blksz>} {<bootarg>} {<bootsz>} {<format>} {<geom>} {<nhds>} {<nsecs>} {<partarg>} {<pfx>} {<scheme>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:format) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [176] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:scheme) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [180] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:blksz) op: assign_op.Equal rhs: {($ Id.VSub_Number '$3')} spids: [184] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:geom) op: assign_op.Equal rhs: {($ Id.VSub_Number '$4')} spids: [188] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pfx) op: assign_op.Equal rhs: {($ Id.VSub_Number '$5')} spids: [192] ) ] ) (C {<shift>} {<5>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:nsecs) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name geom> suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{<'x*'>}) ) } spids: [202] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:nhds) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name geom> suffix_op: (suffix_op.Unary op_id:Id.VOp1_Pound arg_word:{<'*x'>}) ) } spids: [210] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bootsz) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> command_list: (command.CommandList children: [(C {<bootcode>} {($ Id.VSub_DollarName '$scheme')})] ) ) } spids: [219] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {($ Id.VSub_DollarName '$bootsz')} {<-gt>} {<0>}) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bootarg) op: assign_op.Equal rhs: { (DQ <'-b '> (command_sub left_token: <Id.Left_Backtick '`'> command_list: (command.CommandList children: [ (C {<mkcontents>} {<B>} {($ Id.VSub_DollarName '$bootsz')}) ] ) ) ) } spids: [243] ) ] ) ] spids: [229 240] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bootarg) op: assign_op.Equal rhs: {(DQ )} spids: [261] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:partarg) op: assign_op.Equal rhs: {(DQ )} spids: [270] ) ] ) (command.ForEach iter_name: P iter_words: [{($ Id.VSub_Star '$*')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:partarg) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$partarg') <' -p '> ($ Id.VSub_DollarName '$P') ) } spids: [287] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$partarg'))}) terminator: <Id.Op_Semi _> ) ] action: [ (C {<local>} {<swap>} {<ufs>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:swap) op: assign_op.Equal rhs: {(DQ <'-p freebsd-swap::128K'>)} spids: [319] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ufs) op: assign_op.Equal rhs: { (DQ <'-p freebsd-ufs:='> (command_sub left_token: <Id.Left_Backtick '`'> command_list: (command.CommandList children: [(C {<mkcontents>} {<P>} {<4194304>})] ) ) ) } spids: [325] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:partarg) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$ufs') <' '> ($ Id.VSub_DollarName '$swap'))} spids: [340] ) ] ) ] spids: [298 309] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:imagename) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$pfx') <-> ($ Id.VSub_DollarName '$geom') <-> ($ Id.VSub_DollarName '$blksz') <-> ($ Id.VSub_DollarName '$scheme') <.> ($ Id.VSub_DollarName '$format') } spids: [352] ) ] ) (C {<mkimg>} {<-y>} {<-f>} {($ Id.VSub_DollarName '$format')} {<-o>} {($ Id.VSub_DollarName '$imagename')} {<-s>} {($ Id.VSub_DollarName '$scheme')} {<-P>} {($ Id.VSub_DollarName '$blksz')} {<-H>} {($ Id.VSub_DollarName '$nhds')} {<-T>} {($ Id.VSub_DollarName '$nsecs')} {($ Id.VSub_DollarName '$bootarg')} {($ Id.VSub_DollarName '$partarg')} ) (C {<echo>} {($ Id.VSub_DollarName '$imagename')}) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (command.ShFunction name: mkimg_rebase body: (command.BraceGroup children: [ (C {<local>} {<baseline>} {<image>} {<result>} {<tmpfile>} {<update>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:image) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [433] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [437] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:baseline) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$image') <.gz.uu>} spids: [442] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:update) op: assign_op.Equal rhs: {<yes>} spids: [447] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {<-f>} {($ Id.VSub_DollarName '$baseline')}) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tmpfile) op: assign_op.Equal rhs: {<_tmp-baseline>} spids: [464] ) ] ) (command.Pipeline children: [ (C {<uudecode>} {<-p>} {($ Id.VSub_DollarName '$baseline')}) (command.Simple words: [{<gunzip>} {<-c>}] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$tmpfile')} ) ] ) ] negated: F ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<cmp>} {<-s>} {($ Id.VSub_DollarName '$tmpfile')} {($ Id.VSub_DollarName '$result')} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:update) op: assign_op.Equal rhs: {<no>} spids: [499] ) ] ) ] spids: [485 496] ) ] ) ] spids: [452 461] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {($ Id.VSub_DollarName '$update')} {<Id.Lit_Equals '='>} {<yes>}) terminator: <Id.Op_Semi _> ) ] action: [ (command.Subshell command_list: (command.CommandList children: [ (command.Sentence child: (C {<echo>} {<-n>} {(SQ <'# $'>)}) terminator: <Id.Op_Semi _> ) (command.Sentence child: (C {<echo>} {<-n>} {<FreeBSD>}) terminator: <Id.Op_Semi _> ) (C {<echo>} {(SQ <'$'>)}) ] ) redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$baseline')} ) ] ) (command.Pipeline children: [ (C {<gzip>} {<-c>} {($ Id.VSub_DollarName '$result')}) (command.Simple words: [{<uuencode>} {($ Id.VSub_DollarName '$image') <.gz>}] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$baseline')} ) ] ) ] negated: F ) ] spids: [510 521] ) ] ) (C {<rm>} {($ Id.VSub_DollarName '$image')} {($ Id.VSub_DollarName '$result')} {<_tmp-> <Id.Lit_Star '*'>} ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (command.ShFunction name: mkimg_test body: (command.BraceGroup children: [ (C {<local>} {<blksz>} {<format>} {<geom>} {<scheme>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:geom) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [615] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:blksz) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [619] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:scheme) op: assign_op.Equal rhs: {($ Id.VSub_Number '$3')} spids: [623] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:format) op: assign_op.Equal rhs: {($ Id.VSub_Number '$4')} spids: [627] ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$scheme')} arms: [ (case_arm pat_list: [{<ebr>} {<mbr>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bsd) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> command_list: (command.CommandList children: [ (C {<makeimage>} {<raw>} {<bsd>} {($ Id.VSub_DollarName '$blksz')} {($ Id.VSub_DollarName '$geom')} {<_tmp>} ) ] ) ) } spids: [645] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:partinfo) op: assign_op.Equal rhs: {(DQ <'freebsd:='> ($ Id.VSub_DollarName '$bsd'))} spids: [663] ) ] ) ] spids: [639 642 670 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:partinfo) op: assign_op.Equal rhs: {(DQ )} spids: [677] ) ] ) ] spids: [673 674 682 -1] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:image) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> command_list: (command.CommandList children: [ (C {<makeimage>} {($ Id.VSub_DollarName '$format')} {($ Id.VSub_DollarName '$scheme')} {($ Id.VSub_DollarName '$blksz')} {($ Id.VSub_DollarName '$geom')} {<img>} {($ Id.VSub_DollarName '$partinfo')} ) ] ) ) } spids: [688] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$image') <.out>} spids: [708] ) ] ) (command.Simple words: [{<hexdump>} {<-C>} {($ Id.VSub_DollarName '$image')}] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$result')} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {(DQ <x> ($ Id.VSub_DollarName '$mkimg_update_baseline'))} {<Id.Lit_Equals '='>} {(DQ <xyes>)} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<mkimg_rebase>} {($ Id.VSub_DollarName '$image')} {($ Id.VSub_DollarName '$result')} ) ] spids: [724 740] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:baseline) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> command_list: (command.CommandList children:[(C {<atf_get_srcdir>})]) ) </> ($ Id.VSub_DollarName '$image') } spids: [753] ) ] ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Other ':'> <0>} {<cmp>} {<-s>} {($ Id.VSub_DollarName '$baseline')} {($ Id.VSub_DollarName '$result')} ) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (C {<atf_test_case>} {<rebase>}) (command.ShFunction name: rebase_body body: (command.BraceGroup children: [ (C {<local>} {<nm>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mkimg_update_baseline) op: assign_op.Equal rhs: {<yes>} spids: [807] ) ] ) (command.ForEach iter_name: nm iter_words: [{($ Id.VSub_DollarName '$mkimg_tests')}] do_arg_iter: F body: (command.DoGroup children:[(C {(${ Id.VSub_Name nm) <_body>})]) ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (command.ShFunction name: atf_init_test_cases body: (command.BraceGroup children: [ (C {<local>} {<B>} {<F>} {<G>} {<S>} {<nm>}) (command.ForEach iter_name: G iter_words: [{($ Id.VSub_DollarName '$mkimg_geom_list')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: B iter_words: [{($ Id.VSub_DollarName '$mkimg_blksz_list')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: S iter_words: [{($ Id.VSub_DollarName '$mkimg_scheme_list')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: F iter_words: [{($ Id.VSub_DollarName '$mkimg_format_list')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:nm) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name S) <_> (${ Id.VSub_Name G) <_> (${ Id.VSub_Name B) <_> (${ Id.VSub_Name F) ) } spids: [908] ) ] ) (C {<atf_test_case>} {($ Id.VSub_DollarName '$nm')}) (C {<eval>} { (DQ (${ Id.VSub_Name nm) <'_body() { mkimg_test '> ($ Id.VSub_DollarName '$G') <' '> ($ Id.VSub_DollarName '$B') <' '> ($ Id.VSub_DollarName '$S') <' '> ($ Id.VSub_DollarName '$F') <'; }'> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mkimg_tests) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name mkimg_tests) <' '> (${ Id.VSub_Name nm) ) } spids: [951] ) ] ) (C {<atf_add_test_case>} {($ Id.VSub_DollarName '$nm')}) ] ) ) ] ) ) ] ) ) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {(DQ (${ Id.VSub_Name __RUNNING_INSIDE_ATF_RUN))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <internal-yes-value>)} ) terminator: <Id.Op_Semi _> ) ] action: [(C {<atf_add_test_case>} {<rebase>})] spids: [985 1003] ) ] ) ] ) ) ] )