(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description spids:[4]) op: Equal rhs: {(SQ <'check that certain rev-parse options work outside repo'>)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ <'set up non-repo directory'>)} { (SQ <'\n'> <'\tGIT_CEILING_DIRECTORIES=$(pwd) &&\n'> <'\texport GIT_CEILING_DIRECTORIES &&\n'> <'\tmkdir non-repo &&\n'> <'\tcd non-repo &&\n'> <'\t# confirm that git does not find a repo\n'> <'\ttest_must_fail git rev-parse --git-dir\n'> ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tricky spids:[40]) op: Equal rhs: { (DQ ('really tricky with ') (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (' and ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (" and '") ) } spids: [40] ) ] spids: [40] ) (FuncDef name: dump_args body: (BraceGroup children: [ (ForEach iter_name: i iter_words: [{(DQ ($ VSub_At '$@'))}] do_arg_iter: F body: (DoGroup children: [(C {(echo)} {(DQ ('arg: ') ($ VSub_Name '$i'))})] spids: [68 79] ) spids: [62 66] ) ] spids: [54] ) spids: [49 53] ) (C {(test_expect_success)} {(SQ <'rev-parse --sq-quote'>)} { (SQ <'\n'> <'\tdump_args "$tricky" easy >expect &&\n'> <'\teval "dump_args $(git rev-parse --sq-quote "$tricky" easy)" >actual &&\n'> <'\ttest_cmp expect actual\n'> ) } ) (C {(test_expect_success)} {(SQ <'rev-parse --local-env-vars'>)} { (SQ <'\n'> <'\tgit rev-parse --local-env-vars >actual &&\n'> <'\t# we do not want to depend on the complete list here,\n'> <'\t# so just look for something plausible\n'> <'\tgrep ^GIT_DIR actual\n'> ) } ) (C {(test_expect_success)} {(SQ <'rev-parse --resolve-git-dir'>)} { (SQ <'\n'> <'\tgit init --separate-git-dir repo dir &&\n'> <'\ttest_must_fail git rev-parse --resolve-git-dir . &&\n'> <'\techo "$(pwd)/repo" >expect &&\n'> <'\tgit rev-parse --resolve-git-dir dir/.git >actual &&\n'> <'\ttest_cmp expect actual\n'> ) } ) (C {(test_done)}) ] )