(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: [124] ) ] ) (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: [149] ) ] ) (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: [179] ) ] ) (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: [214] ) ] ) (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: [247] ) ] ) (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: [271] ) ] ) (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)}) ] )