(CommandList children: [ (C {(cd)} { (BracedVarSub token: <VSub_Number 0> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ("*")}) spids: [6 11] ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INPUT) op: Equal rhs: {(./solidus/string_with_solidus.json)} spids: [14] ) ] spids: [14] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OUTPUT_ESCAPED) op: Equal rhs: {(./solidus/string_with_solidus.with-escaping.parsed)} spids: [17] ) ] spids: [17] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OUTPUT_WITHOUT_ESCAPING) op: Equal rhs: {(./solidus/string_with_solidus.no-escaping.parsed)} spids: [20] ) ] spids: [20] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:FAILS) op:Equal rhs:{(0)} spids:[24])] spids: [24] ) (C {(echo)} {(DQ (1..2))}) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (SimpleCommand words: [{(../JSON.sh)}] redirects: [ (Redir op_id: Redir_Less fd: -1 arg_word: {($ VSub_Name "$INPUT")} spids: [41] ) ] ) (C {(diff)} {(-u)} {(-)} {(${ VSub_Name OUTPUT_ESCAPED)}) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("not ok - JSON.sh run without -s option should leave solidus escaping intact"))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FAILS) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:FAILS) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [68 75] ) } spids: [67] ) ] spids: [67] ) ] spids: [-1 57] ) ] else_action: [ (C {(echo)} {(DQ ("ok ") ($ VSub_Name "$i") (" - solidus escaping was left intact"))}) ] spids: [77 88] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (SimpleCommand words: [{(../JSON.sh)} {(-s)}] redirects: [ (Redir op_id: Redir_Less fd: -1 arg_word: {($ VSub_Name "$INPUT")} spids: [99] ) ] ) (C {(diff)} {(-u)} {(-)} {(${ VSub_Name OUTPUT_WITHOUT_ESCAPING)}) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("not ok - JSON.sh run with -s option should remove solidus escaping"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FAILS) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:FAILS) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [126 131] ) } spids: [125] ) ] spids: [125] ) ] spids: [-1 115] ) ] else_action: [ (C {(echo)} {(DQ ("ok ") ($ VSub_Name "$i") (" - solidus escaping has been removed"))}) ] spids: [133 144] ) (C {(echo)} {(DQ ($ VSub_Name "$FAILS") (" test(s) failed"))}) (C {(exit)} {($ VSub_Name "$FAILS")}) ] )