(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"Test string list functionality">)} spids: [13] ) ] spids: [13] ) (C {(.)} {(./test-lib.sh)}) (FuncDef name: test_split body: (BraceGroup children: [ (AndOr children: [ (SimpleCommand words: [{(cat)}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(expected)} spids:[34])] ) (C {(test_expect_success)} { (DQ ("split ") ($ VSub_Number "$1") (" at ") ($ VSub_Number "$2") (", max ") ($ VSub_Number "$3") ) } { (DQ ("\n") ("\t\ttest-string-list split '") ($ VSub_Number "$1") ("' '") ($ VSub_Number "$2") ("' '") ($ VSub_Number "$3") ("' >actual &&\n") ("\t\ttest_cmp expected actual &&\n") ("\t\ttest-string-list split_in_place '") ($ VSub_Number "$1") ("' '") ($ VSub_Number "$2") ("' '") ($ VSub_Number "$3") ("' >actual &&\n") ("\t\ttest_cmp expected actual\n") ("\t") ) } ) ] op_id: Op_DAmp ) ] spids: [29] ) spids: [24 28] ) (SimpleCommand words: [{(test_split)} {(DQ ("foo:bar:baz"))} {(DQ (":"))} {(DQ (-1))}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("3\n") ("[0]: ") (Right_DoubleQuote "\"") (foo) (Right_DoubleQuote "\"") ("\n") ("[1]: ") (Right_DoubleQuote "\"") (bar) (Right_DoubleQuote "\"") ("\n") ("[2]: ") (Right_DoubleQuote "\"") (baz) (Right_DoubleQuote "\"") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [89] ) ] ) (SimpleCommand words: [{(test_split)} {(DQ ("foo:bar:baz"))} {(DQ (":"))} {(DQ (0))}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("1\n") ("[0]: ") (Right_DoubleQuote "\"") ("foo:bar:baz") (Right_DoubleQuote "\"") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [123] ) ] ) (SimpleCommand words: [{(test_split)} {(DQ ("foo:bar:baz"))} {(DQ (":"))} {(DQ (1))}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("2\n") ("[0]: ") (Right_DoubleQuote "\"") (foo) (Right_DoubleQuote "\"") ("\n") ("[1]: ") (Right_DoubleQuote "\"") ("bar:baz") (Right_DoubleQuote "\"") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [147] ) ] ) (SimpleCommand words: [{(test_split)} {(DQ ("foo:bar:baz"))} {(DQ (":"))} {(DQ (2))}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("3\n") ("[0]: ") (Right_DoubleQuote "\"") (foo) (Right_DoubleQuote "\"") ("\n") ("[1]: ") (Right_DoubleQuote "\"") (bar) (Right_DoubleQuote "\"") ("\n") ("[2]: ") (Right_DoubleQuote "\"") (baz) (Right_DoubleQuote "\"") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [176] ) ] ) (SimpleCommand words: [{(test_split)} {(DQ ("foo:bar:"))} {(DQ (":"))} {(DQ (-1))}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("3\n") ("[0]: ") (Right_DoubleQuote "\"") (foo) (Right_DoubleQuote "\"") ("\n") ("[1]: ") (Right_DoubleQuote "\"") (bar) (Right_DoubleQuote "\"") ("\n") ("[2]: ") (Right_DoubleQuote "\"") (Right_DoubleQuote "\"") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [210] ) ] ) (SimpleCommand words: [{(test_split)} {(DQ )} {(DQ (":"))} {(DQ (-1))}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: {(DQ ("1\n") ("[0]: ") (Right_DoubleQuote "\"") (Right_DoubleQuote "\"") ("\n"))} do_expansion: True here_end: EOF was_filled: True spids: [242] ) ] ) (SimpleCommand words: [{(test_split)} {(DQ (":"))} {(DQ (":"))} {(DQ (-1))}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("2\n") ("[0]: ") (Right_DoubleQuote "\"") (Right_DoubleQuote "\"") ("\n") ("[1]: ") (Right_DoubleQuote "\"") (Right_DoubleQuote "\"") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [265] ) ] ) (C {(test_expect_success)} {(DQ ("test filter_string_list"))} { (SQ <"\n"> <"\ttest \"x-\" = \"x$(test-string-list filter - y)\" &&\n"> <"\ttest \"x-\" = \"x$(test-string-list filter no y)\" &&\n"> <"\ttest yes = \"$(test-string-list filter yes y)\" &&\n"> <"\ttest yes = \"$(test-string-list filter no:yes y)\" &&\n"> <"\ttest yes = \"$(test-string-list filter yes:no y)\" &&\n"> <"\ttest y1:y2 = \"$(test-string-list filter y1:y2 y)\" &&\n"> <"\ttest y2:y1 = \"$(test-string-list filter y2:y1 y)\" &&\n"> <"\ttest \"x-\" = \"x$(test-string-list filter x1:x2 y)\"\n"> ) } ) (C {(test_expect_success)} {(DQ ("test remove_duplicates"))} { (SQ <"\n"> <"\ttest \"x-\" = \"x$(test-string-list remove_duplicates -)\" &&\n"> <"\ttest \"x\" = \"x$(test-string-list remove_duplicates \"\")\" &&\n"> <"\ttest a = \"$(test-string-list remove_duplicates a)\" &&\n"> <"\ttest a = \"$(test-string-list remove_duplicates a:a)\" &&\n"> <"\ttest a = \"$(test-string-list remove_duplicates a:a:a:a:a)\" &&\n"> <"\ttest a:b = \"$(test-string-list remove_duplicates a:b)\" &&\n"> <"\ttest a:b = \"$(test-string-list remove_duplicates a:a:b)\" &&\n"> <"\ttest a:b = \"$(test-string-list remove_duplicates a:b:b)\" &&\n"> <"\ttest a:b:c = \"$(test-string-list remove_duplicates a:b:c)\" &&\n"> <"\ttest a:b:c = \"$(test-string-list remove_duplicates a:a:b:c)\" &&\n"> <"\ttest a:b:c = \"$(test-string-list remove_duplicates a:b:b:c)\" &&\n"> <"\ttest a:b:c = \"$(test-string-list remove_duplicates a:b:c:c)\" &&\n"> <"\ttest a:b:c = \"$(test-string-list remove_duplicates a:a:b:b:c:c)\" &&\n"> <"\ttest a:b:c = \"$(test-string-list remove_duplicates a:a:a:b:b:b:c:c:c)\"\n"> ) } ) (C {(test_done)}) ] )