(command.CommandList
  children: [
    (C {<atf_test_case>} {<stdin>})
    (command.ShFunction
      name: stdin_head
      body: (BraceGroup children:[(C {<atf_set>} {(DQ <descr>)} {(DQ <'stdin functionality'>)})])
    )
    (command.ShFunction
      name: stdin_body
      body: 
        (BraceGroup
          children: [
            (command.Simple
              words: [
                {<atf_check>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (DQ <.so> <Id.Lit_BadBackslash '\\'> <n>)}
                {<-e>}
                {<empty>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<soelim>}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 76
                      stdin_parts: [<'.so\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [
                {<atf_check>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (DQ <'.so  \t'> <Id.Lit_BadBackslash '\\'> <n>)}
                {<-e>}
                {<empty>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<soelim>}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 120
                      stdin_parts: [<'.so  \t\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [
                {<atf_check>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (DQ <.so> <Id.Lit_BadBackslash '\\'> <n>)}
                {<-e>}
                {<empty>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<soelim>}
                {<->}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 166
                      stdin_parts: [<'.so\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [
                {<atf_check>}
                {<-o>}
                {<empty>}
                {<-e>}
                {<inline> <Id.Lit_Colon ':'> 
                  (DQ <'soelim: can\'t open \'afile\': No such file or directory'> 
                    <Id.Lit_BadBackslash '\\'> <n>
                  )
                }
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <1>}
                {<soelim>}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 206
                      stdin_parts: [<'.so afile\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [
                {<atf_check>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (DQ <.soafile> <Id.Lit_BadBackslash '\\'> <n>)}
                {<-e>}
                {<empty>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<soelim>}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 246
                      stdin_parts: [<'.soafile\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [
                {<atf_check>}
                {<-o>}
                {<empty>}
                {<-e>}
                {<inline> <Id.Lit_Colon ':'> 
                  (DQ <'soelim: can\'t open \'afile\': No such file or directory'> 
                    <Id.Lit_BadBackslash '\\'> <n>
                  )
                }
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <1>}
                {<soelim>}
                {<-C>}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 288
                      stdin_parts: [<'.soafile\n'>]
                    )
                )
              ]
              do_fork: T
            )
          ]
        )
    )
    (C {<atf_test_case>} {<files>})
    (command.ShFunction
      name: files_head
      body: (BraceGroup children:[(C {<atf_set>} {(DQ <descr>)} {(DQ <'testing files'>)})])
    )
    (command.ShFunction
      name: files_body
      body: 
        (BraceGroup
          children: [
            (C {<atf_check>} {<-o>} 
              {<inline> <Id.Lit_Colon ':'> (DQ <'This is a test'> <Id.Lit_BadBackslash '\\'> <n>)} {<-e>} 
              {<inline> <Id.Lit_Colon ':'> 
                (DQ <'soelim: can\'t open \'nonexistingfile\': No such file or directory'> 
                  <Id.Lit_BadBackslash '\\'> <n>
                )
              } {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <1>} {<soelim>} 
              {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                <'/nonexisting.in'>
              }
            )
            (C {<cp>} 
              {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                <'/basic'>
              } {<.>}
            )
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/basic.out'>
              } {<-e>} {<empty>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<soelim>} 
              {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                <'/basic.in'>
              }
            )
            (C {<rm>} {<-f>} {<basic>})
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/basic.out'>
              } {<-e>} {<empty>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<soelim>} 
              {<-I> (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>}))} {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) <'/basic.in'>}
            )
            (C {<atf_check>} {<-o>} 
              {<file> <Id.Lit_Colon ':'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<atf_get_srcdir>})
                ) <'/basic-with-space.out'>
              } {<-e>} {<empty>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<soelim>} 
              {<-I> (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>}))} 
              {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) 
                <'/basic-with-space.in'>
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: atf_init_test_cases
      body: 
        (BraceGroup
          children: [(C {<atf_add_test_case>} {<stdin>}) (C {<atf_add_test_case>} {<files>})]
        )
    )
  ]
)