(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:'git rev-list should notice bad commits' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:28))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:34) (Token id:Id.Lit_Chars val:' git init &&\n' span_id:35) (Token id:Id.Lit_Chars val:' git config core.compression 0 &&\n' span_id:36) (Token id: Id.Lit_Chars val: ' git config core.logallrefupdates false &&\n' span_id: 37 ) (Token id:Id.Lit_Chars val:' echo "foo" > foo &&\n' span_id:38) (Token id:Id.Lit_Chars val:' git add foo &&\n' span_id:39) (Token id:Id.Lit_Chars val:' git commit -m "first commit" &&\n' span_id:40) (Token id:Id.Lit_Chars val:' echo "bar" > bar &&\n' span_id:41) (Token id:Id.Lit_Chars val:' git add bar &&\n' span_id:42) (Token id:Id.Lit_Chars val:' git commit -m "second commit" &&\n' span_id:43) (Token id:Id.Lit_Chars val:' echo "baz" > baz &&\n' span_id:44) (Token id:Id.Lit_Chars val:' git add baz &&\n' span_id:45) (Token id:Id.Lit_Chars val:' git commit -m "third commit" &&\n' span_id:46) (Token id:Id.Lit_Chars val:' echo "foo again" >> foo &&\n' span_id:47) (Token id:Id.Lit_Chars val:' git add foo &&\n' span_id:48) (Token id:Id.Lit_Chars val:' git commit -m "fourth commit" &&\n' span_id:49) (Token id:Id.Lit_Chars val:' git repack -a -f -d\n' span_id:50) (Token id:Id.Lit_Chars val:' ' span_id:51) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'verify number of revisions' span_id:58))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:64) (Token id: Id.Lit_Chars val: ' revs=$(git rev-list --all | wc -l) &&\n' span_id: 65 ) (Token id:Id.Lit_Chars val:' test $revs -eq 4 &&\n' span_id:66) (Token id: Id.Lit_Chars val: ' first_commit=$(git rev-parse HEAD~3)\n' span_id: 67 ) (Token id:Id.Lit_Chars val:' ' span_id:68) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'corrupt second commit object' span_id:75))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:81) (Token id: Id.Lit_Chars val: ' perl -i.bak -pe "s/second commit/socond commit/" .git/objects/pack/*.pack &&\n' span_id: 82 ) (Token id:Id.Lit_Chars val:' test_must_fail git fsck --full\n' span_id:83) (Token id:Id.Lit_Chars val:' ' span_id:84) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'rev-list should fail' span_id:91))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:97) (Token id: Id.Lit_Chars val: ' test_must_fail git rev-list --all > /dev/null\n' span_id: 98 ) (Token id:Id.Lit_Chars val:' ' span_id:99) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git repack _MUST_ fail' span_id:106))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:112) (Token id:Id.Lit_Chars val:' test_must_fail git repack -a -f -d\n' span_id:113) (Token id:Id.Lit_Chars val:' ' span_id:114) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'first commit is still available' span_id:121))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:127) (Token id:Id.Lit_Chars val:' git log $first_commit\n' span_id:128) (Token id:Id.Lit_Chars val:' ' span_id:129) ) } ) (C {(test_done)}) ] )