(command.CommandList
  children: [
    (C {<atf_test_case>} {<flags>})
    (command.ShFunction
      name: flags_head
      body: 
        (BraceGroup
          children: [(C {<atf_set>} {(DQ <descr>)} {(DQ <'Checks -l, -s and -w flags'>)})]
        )
    )
    (command.ShFunction
      name: flags_body
      body: 
        (BraceGroup
          children: [
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/d_flags_l.out'>
              } {<-s>} {<eq> <Id.Lit_Colon ':'> <1>} {<sdiff>} {<-l>} 
              {
                (DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                  <'/d_input1'>
                )
              } {(DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) <'/d_input2'>)}
            )
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/d_flags_s.out'>
              } {<-s>} {<eq> <Id.Lit_Colon ':'> <1>} {<sdiff>} {<-s>} 
              {
                (DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                  <'/d_input1'>
                )
              } {(DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) <'/d_input2'>)}
            )
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/d_flags_w.out'>
              } {<-s>} {<eq> <Id.Lit_Colon ':'> <1>} {<sdiff>} {<-w>} {<125>} 
              {
                (DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                  <'/d_input1'>
                )
              } {(DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) <'/d_input2'>)}
            )
          ]
        )
    )
    (C {<atf_test_case>} {<iflags>})
    (command.ShFunction
      name: iflags_head
      body: 
        (BraceGroup
          children: [
            (C {<atf_set>} {(DQ <descr>)} {(DQ <'Checks flags -l, -s and -w combined with -I'>)})
          ]
        )
    )
    (command.ShFunction
      name: iflags_body
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:tail1)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'-w 125 -I .*filename.* '> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: (C {<atf_get_srcdir>})
                        ) <'/d_input1 '> (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                        <'/d_input2'>
                      )
                    }
                  spids: [259]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:tail2)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'-w 125 -I .*filename.* '> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: (C {<atf_get_srcdir>})
                        ) <'/d_input2 '> (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                        <'/d_input1'>
                      )
                    }
                  spids: [273]
                )
              ]
            )
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/d_iflags_a1.out'>
              } {<-s>} {<eq> <Id.Lit_Colon ':'> <1>} {<sdiff>} {(${ Id.VSub_Name tail1)}
            )
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/d_iflags_a2.out'>
              } {<-s>} {<eq> <Id.Lit_Colon ':'> <1>} {<sdiff>} {(${ Id.VSub_Name tail2)}
            )
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/d_iflags_b1.out'>
              } {<-s>} {<eq> <Id.Lit_Colon ':'> <1>} {<sdiff>} {<-s>} {(${ Id.VSub_Name tail1)}
            )
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/d_iflags_b2.out'>
              } {<-s>} {<eq> <Id.Lit_Colon ':'> <1>} {<sdiff>} {<-s>} {(${ Id.VSub_Name tail2)}
            )
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/d_iflags_c1.out'>
              } {<-s>} {<eq> <Id.Lit_Colon ':'> <1>} {<sdiff>} {<-l>} {(${ Id.VSub_Name tail1)}
            )
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/d_iflags_c2.out'>
              } {<-s>} {<eq> <Id.Lit_Colon ':'> <1>} {<sdiff>} {<-l>} {(${ Id.VSub_Name tail2)}
            )
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/d_iflags_d1.out'>
              } {<-s>} {<eq> <Id.Lit_Colon ':'> <1>} {<sdiff>} {<-s>} {(${ Id.VSub_Name tail1)}
            )
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/d_iflags_d2.out'>
              } {<-s>} {<eq> <Id.Lit_Colon ':'> <1>} {<sdiff>} {<-s>} {(${ Id.VSub_Name tail2)}
            )
          ]
        )
    )
    (C {<atf_test_case>} {<tabs>})
    (command.ShFunction
      name: tabs_head
      body: 
        (BraceGroup
          children: [(C {<atf_set>} {(DQ <descr>)} {(DQ <'Checks comparing files containing tabs'>)})]
        )
    )
    (command.ShFunction
      name: tabs_body
      body: 
        (BraceGroup
          children: [
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/d_tabs.out'>
              } {<-s>} {<eq> <Id.Lit_Colon ':'> <1>} {<sdiff>} 
              {
                (DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                  <'/d_tabs1.in'>
                )
              } {(DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) <'/d_tabs2.in'>)}
            )
          ]
        )
    )
    (C {<atf_test_case>} {<tabends>})
    (command.ShFunction
      name: tabends_head
      body: 
        (BraceGroup
          children: [
            (C {<atf_set>} {(DQ <descr>)} {(DQ <'Checks correct handling of lines ended with tabs'>)})
          ]
        )
    )
    (command.ShFunction
      name: tabends_body
      body: 
        (BraceGroup
          children: [
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/d_tabends_a.out'>
              } {<-s>} {<eq> <Id.Lit_Colon ':'> <1>} {<sdiff>} {<-w30>} 
              {
                (DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                  <'/d_tabends.in'>
                )
              } {<'/dev/null'>}
            )
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/d_tabends_b.out'>
              } {<-s>} {<eq> <Id.Lit_Colon ':'> <1>} {<sdiff>} {<-w30>} {<'/dev/null'>} 
              {
                (DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                  <'/d_tabends.in'>
                )
              }
            )
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/d_tabends_c.out'>
              } {<-s>} {<eq> <Id.Lit_Colon ':'> <1>} {<sdiff>} {<-w19>} 
              {
                (DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                  <'/d_tabends.in'>
                )
              } {<'/dev/null'>}
            )
          ]
        )
    )
    (C {<atf_test_case>} {<merge>})
    (command.ShFunction
      name: merge_head
      body: 
        (BraceGroup
          children: [(C {<atf_set>} {(DQ <descr>)} {(DQ <'Checks interactive merging'>)})]
        )
    )
    (command.ShFunction
      name: merge_body
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:merge_tail)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'-o merge.out '> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: (C {<atf_get_srcdir>})
                        ) <'/d_input1 '> (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                        <'/d_input2 >/dev/null ; cat merge.out'>
                      )
                    }
                  spids: [725]
                )
              ]
            )
            (C {<cp>} 
              {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                <'/d_input'> <Id.Lit_Star '*'>
              } {<.>}
            )
            (C {<atf_check>} {<-o>} {<file> <Id.Lit_Colon ':'> <d_input1>} {<-x>} 
              {(DQ <'yes l | sdiff '> (${ Id.VSub_Name merge_tail))}
            )
            (C {<atf_check>} {<-o>} {<file> <Id.Lit_Colon ':'> <d_input2>} {<-x>} 
              {(DQ <'yes r | sdiff '> (${ Id.VSub_Name merge_tail))}
            )
            (C {<atf_check>} {<-o>} {<file> <Id.Lit_Colon ':'> <d_input1>} {<-x>} 
              {(DQ <'yes el | EDITOR=cat VISUAL=cat sdiff '> (${ Id.VSub_Name merge_tail))}
            )
            (C {<atf_check>} {<-o>} {<file> <Id.Lit_Colon ':'> <d_input2>} {<-x>} 
              {(DQ <'yes er | EDITOR=cat VISUAL=cat sdiff '> (${ Id.VSub_Name merge_tail))}
            )
            (C {<atf_check>} {<-o>} {<file> <Id.Lit_Colon ':'> <d_input1>} {<-x>} 
              {(DQ <'yes l | sdiff -s '> (${ Id.VSub_Name merge_tail))}
            )
            (C {<atf_check>} {<-o>} {<file> <Id.Lit_Colon ':'> <d_input2>} {<-x>} 
              {(DQ <'yes r | sdiff -s '> (${ Id.VSub_Name merge_tail))}
            )
            (C {<atf_check>} {<-o>} {<file> <Id.Lit_Colon ':'> <d_input1>} {<-x>} 
              {(DQ <'yes l | sdiff -l '> (${ Id.VSub_Name merge_tail))}
            )
            (C {<atf_check>} {<-o>} {<file> <Id.Lit_Colon ':'> <d_input2>} {<-x>} 
              {(DQ <'yes r | sdiff -l '> (${ Id.VSub_Name merge_tail))}
            )
            (C {<atf_check>} {<-o>} {<file> <Id.Lit_Colon ':'> <d_input1>} {<-x>} 
              {(DQ <'yes l | sdiff -ls '> (${ Id.VSub_Name merge_tail))}
            )
            (C {<atf_check>} {<-o>} {<file> <Id.Lit_Colon ':'> <d_input2>} {<-x>} 
              {(DQ <'yes r | sdiff -ls '> (${ Id.VSub_Name merge_tail))}
            )
            (C {<atf_check>} {<-o>} {<file> <Id.Lit_Colon ':'> <d_input1>} {<-x>} 
              {
                (DQ <'{ while :; do echo s; echo l; '> <'echo v; echo l; done; } | sdiff '> 
                  (${ Id.VSub_Name merge_tail)
                )
              }
            )
            (C {<atf_check>} {<-o>} {<file> <Id.Lit_Colon ':'> <d_input2>} {<-x>} 
              {
                (DQ <'{ while :; do echo s; echo r; '> <'echo v; echo r; done; } | sdiff '> 
                  (${ Id.VSub_Name merge_tail)
                )
              }
            )
          ]
        )
    )
    (C {<atf_test_case>} {<same>})
    (command.ShFunction
      name: same_head
      body: 
        (BraceGroup
          children: [(C {<atf_set>} {(DQ <descr>)} {(DQ <'Checks comparing file with itself'>)})]
        )
    )
    (command.ShFunction
      name: same_body
      body: 
        (BraceGroup
          children: [
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/d_same.out'>
              } {<sdiff>} 
              {
                (DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                  <'/d_input1'>
                )
              } {(DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) <'/d_input1'>)}
            )
          ]
        )
    )
    (C {<atf_test_case>} {<oneline>})
    (command.ShFunction
      name: oneline_head
      body: 
        (BraceGroup
          children: [(C {<atf_set>} {(DQ <descr>)} {(DQ <'Checks comparing one-line files'>)})]
        )
    )
    (command.ShFunction
      name: oneline_body
      body: 
        (BraceGroup
          children: [
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/d_oneline_a.out'>
              } {<-s>} {<eq> <Id.Lit_Colon ':'> <1>} {<sdiff>} {<'/dev/null'>} 
              {
                (DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                  <'/d_oneline.in'>
                )
              }
            )
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/d_oneline_b.out'>
              } {<-s>} {<eq> <Id.Lit_Colon ':'> <1>} {<sdiff>} 
              {
                (DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                  <'/d_oneline.in'>
                )
              } {<'/dev/null'>}
            )
          ]
        )
    )
    (C {<atf_test_case>} {<dot>})
    (command.ShFunction
      name: dot_head
      body: 
        (BraceGroup
          children: [
            (C {<atf_set>} {(DQ <descr>)} 
              {(DQ <'Checks comparing with file containing only one character'>)}
            )
          ]
        )
    )
    (command.ShFunction
      name: dot_body
      body: 
        (BraceGroup
          children: [
            (command.Simple
              words: [
                {<echo>}
                {(DQ <'.                                                               <'>)}
              ]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expout>})]
              do_fork: T
            )
            (C {<atf_check>} {<-o>} {<file> <Id.Lit_Colon ':'> <expout>} {<-s>} 
              {<eq> <Id.Lit_Colon ':'> <1>} {<sdiff>} 
              {
                (DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                  <'/d_dot.in'>
                )
              } {<'/dev/null'>}
            )
            (command.Simple
              words: [
                {<echo>}
                {(DQ <'                                                                > .'>)}
              ]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expout>})]
              do_fork: T
            )
            (C {<atf_check>} {<-o>} {<file> <Id.Lit_Colon ':'> <expout>} {<-s>} 
              {<eq> <Id.Lit_Colon ':'> <1>} {<sdiff>} {<'/dev/null'>} 
              {
                (DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                  <'/d_dot.in'>
                )
              }
            )
          ]
        )
    )
    (C {<atf_test_case>} {<stdin>})
    (command.ShFunction
      name: stdin_head
      body: 
        (BraceGroup
          children: [(C {<atf_set>} {(DQ <descr>)} {(DQ <'Checks reading data from stdin'>)})]
        )
    )
    (command.ShFunction
      name: stdin_body
      body: 
        (BraceGroup
          children: [
            (command.Simple
              words: [
                {<echo>}
                {(DQ <'                                                                > stdin'>)}
              ]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expout>})]
              do_fork: T
            )
            (C {<atf_check>} {<-o>} {<file> <Id.Lit_Colon ':'> <expout>} {<-s>} 
              {<eq> <Id.Lit_Colon ':'> <1>} {<-x>} {(DQ <'echo stdin | sdiff /dev/null /dev/stdin'>)}
            )
            (command.Simple
              words: [
                {<echo>}
                {(DQ <'stdin                                                           <'>)}
              ]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expout>})]
              do_fork: T
            )
            (C {<atf_check>} {<-o>} {<file> <Id.Lit_Colon ':'> <expout>} {<-s>} 
              {<eq> <Id.Lit_Colon ':'> <1>} {<-x>} {(DQ <'echo stdin | sdiff /dev/stdin /dev/null'>)}
            )
          ]
        )
    )
    (C {<atf_test_case>} {<short>})
    (command.ShFunction
      name: short_head
      body: 
        (BraceGroup
          children: [(C {<atf_set>} {(DQ <descr>)} {(DQ <'Checks premature stop of merging'>)})]
        )
    )
    (command.ShFunction
      name: short_body
      body: 
        (BraceGroup
          children: [
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/d_short.out'>
              } {<-x>} 
              {
                (DQ <'printf '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <r> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <nl> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <nr> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <nl> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' | sdiff -o merge.out '> 
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    child: (C {<atf_get_srcdir>})
                  ) <'/d_input1 '> (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                  <'/d_input2 >/dev/null ; cat merge.out'>
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: atf_init_test_cases
      body: 
        (BraceGroup
          children: [
            (C {<atf_add_test_case>} {<flags>})
            (C {<atf_add_test_case>} {<iflags>})
            (C {<atf_add_test_case>} {<tabs>})
            (C {<atf_add_test_case>} {<tabends>})
            (C {<atf_add_test_case>} {<merge>})
            (C {<atf_add_test_case>} {<same>})
            (C {<atf_add_test_case>} {<oneline>})
            (C {<atf_add_test_case>} {<dot>})
            (C {<atf_add_test_case>} {<stdin>})
            (C {<atf_add_test_case>} {<short>})
          ]
        )
    )
  ]
)