(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"diff.context configuration">)}
          spids: [13]
        )
      ]
      spids: [13]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ <setup>)} 
      {
        (SQ <"\n"> <"\tcat >template <<-\\EOF &&\n"> <"\tfirstline\n"> <"\tb\n"> <"\tc\n"> <"\td\n"> 
          <"\te\n"> <"\tf\n"> <"\tpreline\n"> <"\tTARGET\n"> <"\tpostline\n"> <"\ti\n"> <"\tj\n"> <"\tk\n"> <"\tl\n"> <"\tm\n"> 
          <"\tn\n"> <"\tEOF\n"> <"\tsed \"/TARGET/d\" >x <template &&\n"> <"\tgit update-index --add x &&\n"> 
          <"\tgit commit -m initial &&\n"> <"\n"> <"\tsed \"s/TARGET/ADDED/\" >x <template &&\n"> <"\tgit update-index --add x &&\n"> 
          <"\tgit commit -m next &&\n"> <"\n"> <"\tsed \"s/TARGET/MODIFIED/\" >x <template\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"the default number of context lines is 3">)} 
      {
        (SQ <"\n"> <"\tgit diff >output &&\n"> <"\t! grep \"^ d\" output &&\n"> 
          <"\tgrep \"^ e\" output &&\n"> <"\tgrep \"^ j\" output &&\n"> <"\t! grep \"^ k\" output\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"diff.context honored by \"log\"">)} 
      {
        (SQ <"\n"> <"\tgit log -1 -p >output &&\n"> <"\t! grep firstline output &&\n"> 
          <"\tgit config diff.context 8 &&\n"> <"\tgit log -1 -p >output &&\n"> <"\tgrep \"^ firstline\" output\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"The -U option overrides diff.context">)} 
      {
        (SQ <"\n"> <"\tgit config diff.context 8 &&\n"> <"\tgit log -U4 -1 >output &&\n"> 
          <"\t! grep \"^ firstline\" output\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"diff.context honored by \"diff\"">)} 
      {
        (SQ <"\n"> <"\tgit config diff.context 8 &&\n"> <"\tgit diff >output &&\n"> 
          <"\tgrep \"^ firstline\" output\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"plumbing not affected">)} 
      {
        (SQ <"\n"> <"\tgit config diff.context 8 &&\n"> <"\tgit diff-files -p >output &&\n"> 
          <"\t! grep \"^ firstline\" output\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"non-integer config parsing">)} 
      {
        (SQ <"\n"> <"\tgit config diff.context no &&\n"> <"\ttest_must_fail git diff 2>output &&\n"> 
          <"\ttest_i18ngrep \"bad numeric config value\" output\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"negative integer config parsing">)} 
      {
        (SQ <"\n"> <"\tgit config diff.context -1 &&\n"> <"\ttest_must_fail git diff 2>output &&\n"> 
          <"\ttest_i18ngrep \"bad config variable\" output\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"-U0 is valid, so is diff.context=0">)} 
      {
        (SQ <"\n"> <"\tgit config diff.context 0 &&\n"> <"\tgit diff >output &&\n"> 
          <"\tgrep \"^-ADDED\" output &&\n"> <"\tgrep \"^+MODIFIED\" output\n">
        )
      }
    )
    (C {(test_done)})
  ]
)