(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"test diff with a bogus tree containing the null sha1">)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ <"create bogus tree">)} 
      {
        (SQ <"\n"> <"\tbogus_tree=$(\n"> <"\t\tprintf \"100644 fooQQQQQQQQQQQQQQQQQQQQQ\" |\n"> 
          <"\t\tq_to_nul |\n"> <"\t\tgit hash-object -w --stdin -t tree\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"create tree with matching file">)} 
      {
        (SQ <"\n"> <"\techo bar >foo &&\n"> <"\tgit add foo &&\n"> 
          <"\tgood_tree=$(git write-tree) &&\n"> <"\tblob=$(git rev-parse :foo)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"raw diff shows null sha1 (addition)">)} 
      {
        (SQ <"\n"> <"\techo \":000000 100644 $_z40 $_z40 A\tfoo\" >expect &&\n"> 
          <"\tgit diff-tree $EMPTY_TREE $bogus_tree >actual &&\n"> <"\ttest_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"raw diff shows null sha1 (removal)">)} 
      {
        (SQ <"\n"> <"\techo \":100644 000000 $_z40 $_z40 D\tfoo\" >expect &&\n"> 
          <"\tgit diff-tree $bogus_tree $EMPTY_TREE >actual &&\n"> <"\ttest_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"raw diff shows null sha1 (modification)">)} 
      {
        (SQ <"\n"> <"\techo \":100644 100644 $blob $_z40 M\tfoo\" >expect &&\n"> 
          <"\tgit diff-tree $good_tree $bogus_tree >actual &&\n"> <"\ttest_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"raw diff shows null sha1 (other direction)">)} 
      {
        (SQ <"\n"> <"\techo \":100644 100644 $_z40 $blob M\tfoo\" >expect &&\n"> 
          <"\tgit diff-tree $bogus_tree $good_tree >actual &&\n"> <"\ttest_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"raw diff shows null sha1 (reverse)">)} 
      {
        (SQ <"\n"> <"\techo \":100644 100644 $_z40 $blob M\tfoo\" >expect &&\n"> 
          <"\tgit diff-tree -R $good_tree $bogus_tree >actual &&\n"> <"\ttest_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"raw diff shows null sha1 (index)">)} 
      {
        (SQ <"\n"> <"\techo \":100644 100644 $_z40 $blob M\tfoo\" >expect &&\n"> 
          <"\tgit diff-index $bogus_tree >actual &&\n"> <"\ttest_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"patch fails due to bogus sha1 (addition)">)} 
      {(SQ <"\n"> <"\ttest_must_fail git diff-tree -p $EMPTY_TREE $bogus_tree\n">)}
    )
    (C {(test_expect_success)} {(SQ <"patch fails due to bogus sha1 (removal)">)} 
      {(SQ <"\n"> <"\ttest_must_fail git diff-tree -p $bogus_tree $EMPTY_TREE\n">)}
    )
    (C {(test_expect_success)} {(SQ <"patch fails due to bogus sha1 (modification)">)} 
      {(SQ <"\n"> <"\ttest_must_fail git diff-tree -p $good_tree $bogus_tree\n">)}
    )
    (C {(test_expect_success)} {(SQ <"patch fails due to bogus sha1 (other direction)">)} 
      {(SQ <"\n"> <"\ttest_must_fail git diff-tree -p $bogus_tree $good_tree\n">)}
    )
    (C {(test_expect_success)} {(SQ <"patch fails due to bogus sha1 (reverse)">)} 
      {(SQ <"\n"> <"\ttest_must_fail git diff-tree -R -p $good_tree $bogus_tree\n">)}
    )
    (C {(test_expect_success)} {(SQ <"patch fails due to bogus sha1 (index)">)} 
      {(SQ <"\n"> <"\ttest_must_fail git diff-index -p $bogus_tree\n">)}
    )
    (C {(test_done)})
  ]
)