(CommandList
  children: [
    (C {(echo)} {(SQ <'--- setlock requires arguments'>)})
    (Sentence child:(C {(setlock)} {(whatever)}) terminator:<Op_Semi ';'>)
    (C {(echo)} {($ VSub_QMark '$?')})
    (C {(echo)} {(SQ <'--- setlock complains if it cannot create lock file'>)})
    (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'>)})
    (Sentence
      child: (C {(setlock)} {(-x)} {(nonexistent/lock)} {(echo)} {(wrong)})
      terminator: <Op_Semi ';'>
    )
    (C {(echo)} {($ VSub_QMark '$?')})
    (C {(echo)} {(SQ <'--- setlock creates lock file'>)})
    (Sentence child:(C {(setlock)} {(lock)} {(echo)} {(ok)}) terminator:<Op_Semi ';'>)
    (C {(echo)} {($ VSub_QMark '$?')})
    (C {(echo)} {(SQ <'--- setlock does not truncate lock file'>)})
    (SimpleCommand
      words: [{(echo)} {(ok)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(lock)} spids:[88])]
    )
    (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'>)})
    (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'>)})
    (Sentence
      child: (C {(setlock)} {(lock)} {(sh)} {(-c)} {(SQ <'setlock -nx lock echo one && echo two'>)})
      terminator: <Op_Semi ';'>
    )
    (C {(echo)} {($ VSub_QMark '$?')})
  ]
)