(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'check quarantine of objects during push' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'create picky dest repo' span_id:17))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:21) (Token id:Id.Lit_Chars val:'\tgit init --bare dest.git &&\n' span_id:22) (Token id:Id.Lit_Chars val:'\twrite_script dest.git/hooks/pre-receive <<-\\EOF\n' span_id:23) (Token id:Id.Lit_Chars val:'\twhile read old new ref; do\n' span_id:24) (Token id: Id.Lit_Chars val: '\t\ttest "$(git log -1 --format=%s $new)" = reject && exit 1\n' span_id: 25 ) (Token id:Id.Lit_Chars val:'\tdone\n' span_id:26) (Token id:Id.Lit_Chars val:'\texit 0\n' span_id:27) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:28) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'accepted objects work' span_id:35))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:39) (Token id:Id.Lit_Chars val:'\ttest_commit ok &&\n' span_id:40) (Token id:Id.Lit_Chars val:'\tgit push dest.git HEAD &&\n' span_id:41) (Token id:Id.Lit_Chars val:'\tcommit=$(git rev-parse HEAD) &&\n' span_id:42) (Token id:Id.Lit_Chars val:'\tgit --git-dir=dest.git cat-file commit $commit\n' span_id:43) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'rejected objects are not installed' span_id:50))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:54) (Token id:Id.Lit_Chars val:'\ttest_commit reject &&\n' span_id:55) (Token id:Id.Lit_Chars val:'\tcommit=$(git rev-parse HEAD) &&\n' span_id:56) (Token id: Id.Lit_Chars val: '\ttest_must_fail git push dest.git reject &&\n' span_id: 57 ) (Token id: Id.Lit_Chars val: '\ttest_must_fail git --git-dir=dest.git cat-file commit $commit\n' span_id: 58 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'rejected objects are removed' span_id:65))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:69) (Token id:Id.Lit_Chars val:'\techo "incoming-*" >expect &&\n' span_id:70) (Token id:Id.Lit_Chars val:'\t(cd dest.git/objects && echo incoming-*) >actual &&\n' span_id:71) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:72) ) } ) (C {(test_done)}) ] )