(command.CommandList children: [ (C {<set>} {<-o>} {<nounset>}) (C {<set>} {<-o>} {<pipefail>}) (C {<set>} {<-o>} {<errexit>}) (C {<source>} {<'test/common.sh'>}) (command.ShFunction name: _compare body: (BraceGroup children: [ (C {<set>} {<Id.Lit_Other '+'> <o>} {<errexit>}) (command.Simple words: [{(DQ ($ Id.VSub_At '$@'))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'_tmp/shebang.txt'>} ) ] do_fork: T ) (C {<local>} {<Id.Lit_VarLike 'expected_status='> ($ Id.VSub_QMark '$?')}) (command.Simple words: [{($ Id.VSub_DollarName '$OSH')} {(DQ ($ Id.VSub_At '$@'))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'_tmp/osh.txt'>} ) ] do_fork: T ) (C {<local>} {<Id.Lit_VarLike 'osh_status='> ($ Id.VSub_QMark '$?')}) (C {<set>} {<-o>} {<errexit>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [(C {<diff>} {<-u>} {<'_tmp/shebang.txt'>} {<'_tmp/osh.txt'>})] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<FAIL>}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [111 124] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<test>} {($ Id.VSub_DollarName '$expected_status')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$osh_status')} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} { (DQ <'FAIL: Got status '> ($ Id.VSub_DollarName '$osh_status') <' but expected '> ($ Id.VSub_DollarName '$expected_status') ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [141 153] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (command.ShFunction name: version-text body: (BraceGroup children:[(C {<_compare>} {<'test/spec.sh'>} {<version-text>})]) ) (command.ShFunction name: count body: (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: (BraceGroup children:[(C {<_compare>} {<'test/spec.sh'>} {<builtins-special>})]) ) (command.ShFunction name: html-summary body: (BraceGroup children:[(C {<_compare>} {<'test/spec-runner.sh'>} {<html-summary>})]) ) (command.ShFunction name: gen-module-init body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'modules='> (SQ <'time datetime'>)}) (C {<_compare>} {<'build/actions.sh'>} {<gen-module-init>} {($ Id.VSub_DollarName '$modules')} ) ] ) ) (command.ShFunction name: wild body: (BraceGroup children: [(C {<_compare>} {<'test/wild.sh'>} {<all>} {(SQ <'^distro/usr-bin'>)})] ) ) (command.ShFunction name: startup-benchmark body: (BraceGroup children:[(C {<_compare>} {<'benchmarks/startup.sh'>} {<compare-strace>})]) ) (command.ShFunction name: configure body: (BraceGroup children: [ (command.Sentence child: (C {<_compare>} {<'./configure'>}) terminator: <Id.Op_Semi _> ) ] ) ) (command.ShFunction name: nix body: (BraceGroup children: [ (command.Sentence child: (C {<_compare>} {<'gold/nix.sh'>} {<isElfSimpleWithStdin>}) terminator: <Id.Op_Semi _> ) ] ) ) (command.ShFunction name: and-or body: (BraceGroup children: [ (command.Sentence child: (C {<_compare>} {<'gold/and-or.sh'>} {<test-simple>}) terminator: <Id.Op_Semi _> ) ] ) ) (command.ShFunction name: comments body: (BraceGroup children: [ (command.Sentence child: (C {<_compare>} {<'gold/comments.sh'>}) terminator: <Id.Op_Semi _> ) ] ) ) (command.ShFunction name: readonly_ body: (BraceGroup children: [ (command.Sentence child: (C {<_compare>} {<'gold/readonly.sh'>}) terminator: <Id.Op_Semi _> ) ] ) ) (command.ShFunction name: export body: (BraceGroup children: [ (command.Sentence child: (C {<_compare>} {<'gold/export.sh'>}) terminator: <Id.Op_Semi _> ) ] ) ) (command.ShFunction name: glob body: (BraceGroup children: [ (command.Sentence child: (C {<_compare>} {<'gold/glob.sh'>}) terminator: <Id.Op_Semi _> ) ] ) ) (command.ShFunction name: no-op body: (BraceGroup children: [ (command.Sentence child: (C {<_compare>} {<'scripts/count.sh'>}) terminator: <Id.Op_Semi _> ) ] ) ) (command.ShFunction name: complex-here-docs body: (BraceGroup children: [ (command.Sentence child: (C {<_compare>} {<'gold/complex-here-docs.sh'>}) terminator: <Id.Op_Semi _> ) ] ) ) (command.ShFunction name: strip-op-char-class body: (BraceGroup children: [ (command.Sentence child: (C {<_compare>} {<'gold/strip-op-char-class.sh'>}) terminator: <Id.Op_Semi _> ) ] ) ) (command.ShFunction name: echo-e body: (BraceGroup children: [ (command.Sentence child: (C {<_compare>} {<'gold/echo-e.sh'>}) terminator: <Id.Op_Semi _> ) ] ) ) (command.ShFunction name: dollar-sq body: (BraceGroup children: [ (command.Sentence child: (C {<_compare>} {<'gold/dollar-sq.sh'>}) terminator: <Id.Op_Semi _> ) ] ) ) (command.ShFunction name: word-eval body: (BraceGroup children: [ (command.Sentence child: (C {<_compare>} {<'gold/word-eval.sh'>}) terminator: <Id.Op_Semi _> ) ] ) ) (command.ShFunction name: abuild body: (BraceGroup children: [(C {<_compare>} {<'gold/abuild.sh'>} {<is_function>} {<is_function>})] ) ) (command.ShFunction name: declare body: (BraceGroup children: [ (command.Sentence child: (C {<_compare>} {<'gold/declare.sh'>} {<demo>}) terminator: <Id.Op_Semi _> ) ] ) ) (command.ShFunction name: scope body: (BraceGroup children: [ (command.Sentence child: (C {<_compare>} {<'gold/scope.sh'>}) terminator: <Id.Op_Semi _> ) ] ) ) (C {<readonly>} {<-a>} {<Id.Lit_VarLike 'PASSING='> (sh_array_literal left: <Id.Op_LParen _> 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: (BraceGroup children: [ (C {<run-all>} { (DQ (braced_var_sub token: <Id.VSub_Name PASSING> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ) ] ) ) (command.ShFunction name: run-for-release body: (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 '$@'))}) ] )