(List
  (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('test_description', {[SQ <LIT_CHARS "Basic subproject functionality">]})])
  (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]}  )
  (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "setup: create superproject">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS "\t: >Makefile &&\n"> <LIT_CHARS "\tgit add Makefile &&\n"> <LIT_CHARS "\tgit commit -m \"Superproject created\"\n">]}  )
  (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "setup: create subprojects">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS "\tmkdir sub1 &&\n"> <LIT_CHARS "\t( cd sub1 && git init && : >Makefile && git add * &&\n"> <LIT_CHARS "\tgit commit -q -m \"subproject 1\" ) &&\n"> <LIT_CHARS "\tmkdir sub2 &&\n"> <LIT_CHARS "\t( cd sub2 && git init && : >Makefile && git add * &&\n"> <LIT_CHARS "\tgit commit -q -m \"subproject 2\" ) &&\n"> <LIT_CHARS "\tgit update-index --add sub1 &&\n"> <LIT_CHARS "\tgit add sub2 &&\n"> <LIT_CHARS "\tgit commit -q -m \"subprojects added\" &&\n"> <LIT_CHARS "\tgit diff-tree --abbrev=5 HEAD^ HEAD |cut -d\" \" -f-3,5- >current &&\n"> <LIT_CHARS "\tgit branch save HEAD &&\n"> <LIT_CHARS "\tcat >expected <<-\\EOF &&\n"> <LIT_CHARS "\t:000000 160000 00000... A\tsub1\n"> <LIT_CHARS "\t:000000 160000 00000... A\tsub2\n"> <LIT_CHARS "\tEOF\n"> <LIT_CHARS "\ttest_cmp expected current\n">]}  )
  (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "check if fsck ignores the subprojects">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS "\tgit fsck --full\n">]}  )
  (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "check if commit in a subproject detected">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS "\t( cd sub1 &&\n"> <LIT_CHARS "\techo \"all:\" >>Makefile &&\n"> <LIT_CHARS "\techo \"\ttrue\" >>Makefile &&\n"> <LIT_CHARS "\tgit commit -q -a -m \"make all\" ) &&\n"> <LIT_CHARS "\ttest_expect_code 1 git diff-files --exit-code\n">]}  )
  (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "check if a changed subproject HEAD can be committed">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS "\tgit commit -q -a -m \"sub1 changed\" &&\n"> <LIT_CHARS "\ttest_expect_code 1 git diff-tree --exit-code HEAD^ HEAD\n">]}  )
  (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "check if diff-index works for subproject elements">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS "\ttest_expect_code 1 git diff-index --exit-code --cached save -- sub1\n">]}  )
  (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "check if diff-tree works for subproject elements">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS "\ttest_expect_code 1 git diff-tree --exit-code HEAD^ HEAD -- sub1\n">]}  )
  (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "check if git diff works for subproject elements">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS "\ttest_expect_code 1 git diff --exit-code HEAD^ HEAD\n">]}  )
  (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "check if clone works">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS "\tgit ls-files -s >expected &&\n"> <LIT_CHARS "\tgit clone -l -s . cloned &&\n"> <LIT_CHARS "\t( cd cloned && git ls-files -s ) >current &&\n"> <LIT_CHARS "\ttest_cmp expected current\n">]}  )
  (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "removing and adding subproject">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS "\tgit update-index --force-remove -- sub2 &&\n"> <LIT_CHARS "\tmv sub2 sub3 &&\n"> <LIT_CHARS "\tgit add sub3 &&\n"> <LIT_CHARS "\tgit commit -q -m \"renaming a subproject\" &&\n"> <LIT_CHARS "\ttest_expect_code 1 git diff -M --name-status --exit-code HEAD^ HEAD\n">]}  )
  (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "checkout in superproject">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS "\tgit checkout save &&\n"> <LIT_CHARS "\tgit diff-index --exit-code --raw --cached save -- sub1\n">]}  )
  (Com {[LIT_CHARS test_done]}  )
)