(command.CommandList children: [ (command.ShFunction name_tok: <require_pc> name: require_pc body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <pkg-config> more_env: [] words: [{<pkg-config>} {(${ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_fail> more_env: [] words: [ {<atf_fail>} {(DQ <'pkg-config could not locate '> (${ Id.VSub_Number 1) <'.pc;'>)} {(DQ <'maybe need to set PKG_CONFIG_PATH?'>)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <check_version> name: check_version body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'ver1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ver1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ver1='> name:ver1) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.Left_DollarParen '$('> more_env: [] words: [ { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <atf_get_srcdir> more_env: [] words: [{<atf_get_srcdir>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'/detail/version_helper'> } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'Version reported by builtin PACKAGE_VERSION: '> (${ Id.VSub_Name ver1))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<eq> <Id.Lit_Colon ':'> <0>} {<-o>} {<save> <Id.Lit_Colon ':'> <stdout>} {<-e>} {<empty>} {<pkg-config>} {<--modversion>} {(DQ (${ Id.VSub_Number 1))} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'ver2='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ver2='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ver2='> name:ver2) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {<stdout>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Version reported by pkg-config: '> (${ Id.VSub_Name ver2))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check_equal> more_env: [] words: [{<atf_check_equal>} {(${ Id.VSub_Name ver1)} {(${ Id.VSub_Name ver2)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<version>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <version_head> name: version_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Checks that the version in atf-c++ is correct'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.progs>)} {(DQ <pkg-config>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <version_body> name: version_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <require_pc> more_env: [] words: [{<require_pc>} {(DQ <'atf-c++'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <check_version> more_env: [] words: [{<check_version>} {(DQ <'atf-c++'>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<build>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <build_head> name: build_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [ {<atf_set>} {(DQ <descr>)} {(DQ <'Checks that a test program can be built against'>)} {(DQ <'the C++ library based on the pkg-config information'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.progs>)} {(DQ <pkg-config>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <build_body> name: build_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <require_pc> more_env: [] words: [{<require_pc>} {(DQ <'atf-c++'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<eq> <Id.Lit_Colon ':'> <0>} {<-o>} {<save> <Id.Lit_Colon ':'> <stdout>} {<-e>} {<empty>} {<pkg-config>} {<--variable> <Id.Lit_Equals '='> <cxx>} {<atf-c> <Id.Lit_Other '+'> <Id.Lit_Other '+'>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'cxx='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cxx='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cxx='> name:cxx) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {<stdout>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Compiler is: '> (${ Id.VSub_Name cxx))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_require_prog> more_env: [] words: [{<atf_require_prog>} {(${ Id.VSub_Name cxx)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<tp.cpp>}) (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: [ <'#include <iostream>\n'> <'\n'> <'#include <atf-c++.hpp>\n'> <'\n'> <'ATF_TEST_CASE(tc);\n'> <'ATF_TEST_CASE_HEAD(tc) {\n'> <' set_md_var('> <Id.Right_DoubleQuote '"'> <descr> <Id.Right_DoubleQuote '"'> <', '> <Id.Right_DoubleQuote '"'> <'A test case'> <Id.Right_DoubleQuote '"'> <');\n'> <'}\n'> <'ATF_TEST_CASE_BODY(tc) {\n'> <' std::cout << '> <Id.Right_DoubleQuote '"'> <Running> <Id.Lit_BadBackslash '\\'> <n> <Id.Right_DoubleQuote '"'> <';\n'> <'}\n'> <'\n'> <'ATF_INIT_TEST_CASES(tcs) {\n'> <' ATF_ADD_TEST_CASE(tcs, tc);\n'> <'}\n'> ] ) ) ] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<eq> <Id.Lit_Colon ':'> <0>} {<-o>} {<save> <Id.Lit_Colon ':'> <stdout>} {<-e>} {<empty>} {<pkg-config>} {<--cflags>} {<atf-c> <Id.Lit_Other '+'> <Id.Lit_Other '+'>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'cxxflags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cxxflags='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cxxflags='> name:cxxflags) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {<stdout>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'CXXFLAGS are: '> (${ Id.VSub_Name cxxflags))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<eq> <Id.Lit_Colon ':'> <0>} {<-o>} {<save> <Id.Lit_Colon ':'> <stdout>} {<-e>} {<empty>} {<pkg-config>} {<--libs-only-L>} {<--libs-only-other>} {<atf-c> <Id.Lit_Other '+'> <Id.Lit_Other '+'>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'ldflags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ldflags='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ldflags='> name:ldflags) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {<stdout>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<eq> <Id.Lit_Colon ':'> <0>} {<-o>} {<save> <Id.Lit_Colon ':'> <stdout>} {<-e>} {<empty>} {<pkg-config>} {<--libs-only-l>} {<atf-c> <Id.Lit_Other '+'> <Id.Lit_Other '+'>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'libs='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'libs='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {<stdout>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'LDFLAGS are: '> (${ Id.VSub_Name ldflags))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'LIBS are: '> (${ Id.VSub_Name libs))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<eq> <Id.Lit_Colon ':'> <0>} {<-o>} {<empty>} {<-e>} {<empty>} {(${ Id.VSub_Name cxx)} {(${ Id.VSub_Name cxxflags)} {<-o>} {<tp.o>} {<-c>} {<tp.cpp>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<eq> <Id.Lit_Colon ':'> <0>} {<-o>} {<empty>} {<-e>} {<empty>} {(${ Id.VSub_Name cxx)} {(${ Id.VSub_Name ldflags)} {<-o>} {<tp>} {<tp.o>} {(${ Id.VSub_Name libs)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'libpath='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'libpath='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libpath='> name:libpath) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [f] iterable: (for_iter.Words words:[{(${ Id.VSub_Name ldflags)}]) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(${ Id.VSub_Name f)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <-L> pattern: (pat.Words words:[{<-L> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'dir='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'dir='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(${ Id.VSub_Name f)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s,^-L,,'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-z>} {(DQ (${ Id.VSub_Name libpath))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'libpath='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'libpath='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'libpath='> name: libpath ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name dir))} ) ] redirects: [] ) ] spids: [691 706] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'libpath='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'libpath='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'libpath='> name: libpath ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name libpath) <':'> (${ Id.VSub_Name dir))} ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<eq> <Id.Lit_Colon ':'> <0>} {<-o>} {<empty>} {<-e>} {<empty>} {<test>} {<-x>} {<tp>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<eq> <Id.Lit_Colon ':'> <0>} {<-o>} {<match> <Id.Lit_Colon ':'> (SQ <Running>)} {<-e>} {<empty>} {<-x>} {(DQ <'LD_LIBRARY_PATH='> (${ Id.VSub_Name libpath) <' ./tp tc'>)} ] 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>} {<version>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<build>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] )