(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"giving ignored paths to git add">)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ <"\n"> <"\tmkdir sub dir dir/sub &&\n"> <"\techo sub >.gitignore &&\n"> 
          <"\techo ign >>.gitignore &&\n"> <"\tfor p in . sub dir dir/sub\n"> <"\tdo\n"> <"\t\t>\"$p/ign\" &&\n"> <"\t\t>\"$p/file\" || exit 1\n"> 
          <"\tdone\n">
        )
      }
    )
    (ForEach
      iter_name: i
      iter_words: [{(file)} {(dir/file)} {(dir)} {(SQ <"d*">)}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(test_expect_success)} {(DQ ("no complaints for unignored ") ($ VSub_Name "$i"))} 
              {
                (SQ <"\n"> <"\t\trm -f .git/index &&\n"> <"\t\tgit add \"$i\" &&\n"> 
                  <"\t\tgit ls-files \"$i\" >out &&\n"> <"\t\ttest -s out\n"> <"\t">
                )
              }
            )
          ]
          spids: [48 67]
        )
      spids: [37 -1]
    )
    (ForEach
      iter_name: i
      iter_words: [
        {(ign)}
        {(dir/ign)}
        {(dir/sub)}
        {(dir/sub/) (Lit_Other "*") (ign)}
        {(sub/file)}
        {(sub)}
        {(sub/) (Lit_Other "*")}
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(test_expect_success)} {(DQ ("complaints for ignored ") ($ VSub_Name "$i"))} 
              {
                (SQ <"\n"> <"\t\trm -f .git/index &&\n"> 
                  <"\t\ttest_must_fail git add \"$i\" 2>err &&\n"> <"\t\tgit ls-files \"$i\" >out &&\n"> <"\t\t! test -s out\n"> <"\t">
                )
              }
            )
            (C {(test_expect_success)} {(DQ ("complaints for ignored ") ($ VSub_Name "$i") (" output"))} 
              {(SQ <"\n"> <"\t\ttest_i18ngrep -e \"Use -f if\" err\n"> <"\t">)}
            )
            (C {(test_expect_success)} 
              {(DQ ("complaints for ignored ") ($ VSub_Name "$i") (" with unignored file"))} 
              {
                (SQ <"\n"> <"\t\trm -f .git/index &&\n"> 
                  <"\t\ttest_must_fail git add \"$i\" file 2>err &&\n"> <"\t\tgit ls-files \"$i\" >out &&\n"> <"\t\t! test -s out\n"> <"\t">
                )
              }
            )
            (C {(test_expect_success)} 
              {(DQ ("complaints for ignored ") ($ VSub_Name "$i") (" with unignored file output"))} {(SQ <"\n"> <"\t\ttest_i18ngrep -e \"Use -f if\" err\n"> <"\t">)}
            )
          ]
          spids: [93 162]
        )
      spids: [75 -1]
    )
    (ForEach
      iter_name: i
      iter_words: [{(sub)} {(sub/) (Lit_Other "*")}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(test_expect_success)} {(DQ ("complaints for ignored ") ($ VSub_Name "$i") (" in dir"))} 
              {
                (SQ <"\n"> <"\t\trm -f .git/index &&\n"> <"\t\t(\n"> <"\t\t\tcd dir &&\n"> 
                  <"\t\t\ttest_must_fail git add \"$i\" 2>err &&\n"> <"\t\t\tgit ls-files \"$i\" >out &&\n"> <"\t\t\t! test -s out\n"> <"\t\t)\n"> <"\t">
                )
              }
            )
            (C {(test_expect_success)} 
              {(DQ ("complaints for ignored ") ($ VSub_Name "$i") (" in dir output"))} 
              {
                (SQ <"\n"> <"\t\t(\n"> <"\t\t\tcd dir &&\n"> 
                  <"\t\t\ttest_i18ngrep -e \"Use -f if\" err\n"> <"\t\t)\n"> <"\t">
                )
              }
            )
          ]
          spids: [176 218]
        )
      spids: [170 -1]
    )
    (ForEach
      iter_name: i
      iter_words: [{(ign)} {(file)}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(test_expect_success)} {(DQ ("complaints for ignored ") ($ VSub_Name "$i") (" in sub"))} 
              {
                (SQ <"\n"> <"\t\trm -f .git/index &&\n"> <"\t\t(\n"> <"\t\t\tcd sub &&\n"> 
                  <"\t\t\ttest_must_fail git add \"$i\" 2>err &&\n"> <"\t\t\tgit ls-files \"$i\" >out &&\n"> <"\t\t\t! test -s out\n"> <"\t\t)\n"> <"\t">
                )
              }
            )
            (C {(test_expect_success)} 
              {(DQ ("complaints for ignored ") ($ VSub_Name "$i") (" in sub output"))} 
              {
                (SQ <"\n"> <"\t\t(\n"> <"\t\t\tcd sub &&\n"> 
                  <"\t\t\ttest_i18ngrep -e \"Use -f if\" err\n"> <"\t\t)\n"> <"\t">
                )
              }
            )
          ]
          spids: [231 273]
        )
      spids: [226 -1]
    )
    (C {(test_done)})
  ]
)