(command.CommandList
  children: [
    (C {(echo)} {(SQ <'--- setlock requires arguments'>)})
    (command.CommandList
      children: [
        (command.Sentence child:(C {(setlock)} {(whatever)}) terminator:<Op_Semi ';'>)
        (C {(echo)} {($ VSub_QMark '$?')})
      ]
    )
    (C {(echo)} {(SQ <'--- setlock complains if it cannot create lock file'>)})
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {(setlock)} {(nonexistent/lock)} {(echo)} {(wrong)})
          terminator: <Op_Semi ';'>
        )
        (C {(echo)} {($ VSub_QMark '$?')})
      ]
    )
    (C {(echo)} {(SQ <'--- setlock -x exits quietly if it cannot create lock file'>)})
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {(setlock)} {(-x)} {(nonexistent/lock)} {(echo)} {(wrong)})
          terminator: <Op_Semi ';'>
        )
        (C {(echo)} {($ VSub_QMark '$?')})
      ]
    )
    (C {(echo)} {(SQ <'--- setlock creates lock file'>)})
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {(setlock)} {(lock)} {(echo)} {(ok)})
          terminator: <Op_Semi ';'>
        )
        (C {(echo)} {($ VSub_QMark '$?')})
      ]
    )
    (C {(echo)} {(SQ <'--- setlock does not truncate lock file'>)})
    (command.Simple
      words: [{(echo)} {(ok)}]
      redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(lock)})]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {(setlock)} {(lock)} {(cat)} {(lock)})
          terminator: <Op_Semi ';'>
        )
        (C {(echo)} {($ VSub_QMark '$?')})
      ]
    )
    (C {(rm)} {(-f)} {(lock)})
    (C {(echo)} {(SQ <'--- setlock -n complains if file is already locked'>)})
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {(setlock)} {(lock)} {(sh)} {(-c)} {(SQ <'setlock -n lock echo one && echo two'>)})
          terminator: <Op_Semi ';'>
        )
        (C {(echo)} {($ VSub_QMark '$?')})
      ]
    )
    (C {(echo)} {(SQ <'--- setlock -nx exits quietly if file is already locked'>)})
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {(setlock)} {(lock)} {(sh)} {(-c)} {(SQ <'setlock -nx lock echo one && echo two'>)})
          terminator: <Op_Semi ';'>
        )
        (C {(echo)} {($ VSub_QMark '$?')})
      ]
    )
  ]
)