(command.CommandList children: [ (C {(Id.KW_Set set)} {(-o)} {(nounset)}) (C {(Id.KW_Set set)} {(-o)} {(pipefail)}) (C {(Id.KW_Set set)} {(-o)} {(errexit)}) (C {(source)} {(test/common.sh)}) (command.ShFunction name: _compare body: (command.BraceGroup children: [ (C {(Id.KW_Set set)} {(Id.Lit_Other '+') (o)} {(errexit)}) (command.Simple words: [{(DQ ($ Id.VSub_At '$@'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:75) fd: -1 arg_word: {(_tmp/shebang.txt)} ) ] ) (C {(local)} {(Id.Lit_VarLike 'expected_status=') ($ Id.VSub_QMark '$?')}) (command.Simple words: [{($ Id.VSub_DollarName '$OSH')} {(DQ ($ Id.VSub_At '$@'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:92) fd: -1 arg_word: {(_tmp/osh.txt)} ) ] ) (C {(local)} {(Id.Lit_VarLike 'osh_status=') ($ Id.VSub_QMark '$?')}) (C {(Id.KW_Set set)} {(-o)} {(errexit)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [(C {(diff)} {(-u)} {(_tmp/shebang.txt)} {(_tmp/osh.txt)})] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:122) ) ] action: [ (C {(echo)} {(FAIL)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:132) arg_word: {(1)} ) ] spids: [111 124] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {($ Id.VSub_DollarName '$expected_status')} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {($ Id.VSub_DollarName '$osh_status')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:151) ) ] action: [ (C {(echo)} { (DQ ('FAIL: Got status ') ($ Id.VSub_DollarName '$osh_status') (' but expected ') ($ Id.VSub_DollarName '$expected_status') ) } ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:166) arg_word: {(1)} ) ] spids: [141 153] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:175) arg_word: {(0)} ) ] ) ) (command.ShFunction name: version-text body: (command.BraceGroup children:[(C {(_compare)} {(test/spec.sh)} {(version-text)})]) ) (command.ShFunction name: count body: (command.BraceGroup children: [ (C {(_compare)} {(scripts/count.sh)} {(all)}) (C {(_compare)} {(scripts/count.sh)} {(parser)}) (C {(_compare)} {(scripts/count.sh)} {(parser-port)}) (C {(_compare)} {(scripts/count.sh)} {(runtime)}) ] ) ) (command.ShFunction name: one-spec-test body: (command.BraceGroup children:[(C {(_compare)} {(test/spec.sh)} {(builtins-special)})]) ) (command.ShFunction name: html-summary body: (command.BraceGroup children:[(C {(_compare)} {(test/spec-runner.sh)} {(html-summary)})]) ) (command.ShFunction name: gen-module-init body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'modules=') (SQ (Token id:Id.Lit_Chars val:'time datetime' span_id:296)) } ) (C {(_compare)} {(build/actions.sh)} {(gen-module-init)} {($ Id.VSub_DollarName '$modules')}) ] ) ) (command.ShFunction name: wild body: (command.BraceGroup children: [ (C {(_compare)} {(test/wild.sh)} {(all)} {(SQ (Token id:Id.Lit_Chars val:'^distro/usr-bin' span_id:325))} ) ] ) ) (command.ShFunction name: startup-benchmark body: (command.BraceGroup children: [(C {(_compare)} {(benchmarks/startup.sh)} {(compare-strace)})] ) ) (command.ShFunction name: configure body: (command.BraceGroup children: [ (command.Sentence child: (C {(_compare)} {(./configure)}) terminator: (Token id:Id.Op_Semi val:';' span_id:371) ) ] ) ) (command.ShFunction name: nix body: (command.BraceGroup children: [ (command.Sentence child: (C {(_compare)} {(gold/nix.sh)} {(isElfSimpleWithStdin)}) terminator: (Token id:Id.Op_Semi val:';' span_id:386) ) ] ) ) (command.ShFunction name: and-or body: (command.BraceGroup children: [ (command.Sentence child: (C {(_compare)} {(gold/and-or.sh)} {(test-simple)}) terminator: (Token id:Id.Op_Semi val:';' span_id:401) ) ] ) ) (command.ShFunction name: comments body: (command.BraceGroup children: [ (command.Sentence child: (C {(_compare)} {(gold/comments.sh)}) terminator: (Token id:Id.Op_Semi val:';' span_id:415) ) ] ) ) (command.ShFunction name: readonly_ body: (command.BraceGroup children: [ (command.Sentence child: (C {(_compare)} {(gold/readonly.sh)}) terminator: (Token id:Id.Op_Semi val:';' span_id:428) ) ] ) ) (command.ShFunction name: export body: (command.BraceGroup children: [ (command.Sentence child: (C {(_compare)} {(gold/export.sh)}) terminator: (Token id:Id.Op_Semi val:';' span_id:441) ) ] ) ) (command.ShFunction name: glob body: (command.BraceGroup children: [ (command.Sentence child: (C {(_compare)} {(gold/glob.sh)}) terminator: (Token id:Id.Op_Semi val:';' span_id:454) ) ] ) ) (command.ShFunction name: no-op body: (command.BraceGroup children: [ (command.Sentence child: (C {(_compare)} {(scripts/count.sh)}) terminator: (Token id:Id.Op_Semi val:';' span_id:467) ) ] ) ) (command.ShFunction name: complex-here-docs body: (command.BraceGroup children: [ (command.Sentence child: (C {(_compare)} {(gold/complex-here-docs.sh)}) terminator: (Token id:Id.Op_Semi val:';' span_id:480) ) ] ) ) (command.ShFunction name: strip-op-char-class body: (command.BraceGroup children: [ (command.Sentence child: (C {(_compare)} {(gold/strip-op-char-class.sh)}) terminator: (Token id:Id.Op_Semi val:';' span_id:494) ) ] ) ) (command.ShFunction name: echo-e body: (command.BraceGroup children: [ (command.Sentence child: (C {(_compare)} {(gold/echo-e.sh)}) terminator: (Token id:Id.Op_Semi val:';' span_id:511) ) ] ) ) (command.ShFunction name: dollar-sq body: (command.BraceGroup children: [ (command.Sentence child: (C {(_compare)} {(gold/dollar-sq.sh)}) terminator: (Token id:Id.Op_Semi val:';' span_id:524) ) ] ) ) (command.ShFunction name: word-eval body: (command.BraceGroup children: [ (command.Sentence child: (C {(_compare)} {(gold/word-eval.sh)}) terminator: (Token id:Id.Op_Semi val:';' span_id:537) ) ] ) ) (command.ShFunction name: abuild body: (command.BraceGroup children: [(C {(_compare)} {(gold/abuild.sh)} {(is_function)} {(is_function)})] ) ) (command.ShFunction name: declare body: (command.BraceGroup children: [ (command.Sentence child: (C {(_compare)} {(gold/declare.sh)} {(demo)}) terminator: (Token id:Id.Op_Semi val:';' span_id:574) ) ] ) ) (command.ShFunction name: scope body: (command.BraceGroup children: [ (command.Sentence child: (C {(_compare)} {(gold/scope.sh)}) terminator: (Token id:Id.Op_Semi val:';' span_id:591) ) ] ) ) (C {(readonly)} {(-a)} {(Id.Lit_VarLike 'PASSING=') (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:602) words: [ {(configure)} {(nix)} {(and-or)} {(comments)} {(readonly_)} {(export)} {(glob)} {(no-op)} {(complex-here-docs)} {(echo-e)} {(dollar-sq)} {(word-eval)} {(strip-op-char-class)} {(abuild)} {(count)} {(one-spec-test)} {(html-summary)} {(gen-module-init)} ] ) } ) (command.ShFunction name: all-passing body: (command.BraceGroup children: [ (C {(run-all)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:PASSING span_id:707) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ) ] ) ) (command.ShFunction name: run-for-release body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'out_dir=') (_tmp/gold)}) (C {(mkdir)} {(-p)} {($ Id.VSub_DollarName '$out_dir')}) (command.Pipeline children: [(C {(all-passing)}) (C {(tee)} {($ Id.VSub_DollarName '$out_dir') (/log.txt)})] negated: F ) (C {(echo)} {(DQ ('Wrote ') ($ Id.VSub_DollarName '$out_dir') (/log.txt))}) ] ) ) (C {(DQ ($ Id.VSub_At '$@'))}) ] )