(command.CommandList children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:test_description) op: Equal rhs: {(SQ <'Test string list functionality'>)} ) ] ) (C {(.)} {(./test-lib.sh)}) (command.FuncDef name: test_split body: (command.BraceGroup children: [ (command.AndOr ops: [Op_DAmp] children: [ (command.SimpleCommand words: [{(cat)}] redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expected)})] ) (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') ) } ) ] ) ] ) ) (command.SimpleCommand words: [{(test_split)} {(DQ ('foo:bar:baz'))} {(DQ (':'))} {(DQ (-1))}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 109 stdin_parts: [ ('3\n') ('[0]: ') (Right_DoubleQuote '"') (foo) (Right_DoubleQuote '"') ('\n') ('[1]: ') (Right_DoubleQuote '"') (bar) (Right_DoubleQuote '"') ('\n') ('[2]: ') (Right_DoubleQuote '"') (baz) (Right_DoubleQuote '"') ('\n') ] ) ] ) (command.SimpleCommand words: [{(test_split)} {(DQ ('foo:bar:baz'))} {(DQ (':'))} {(DQ (0))}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 135 stdin_parts: [ ('1\n') ('[0]: ') (Right_DoubleQuote '"') ('foo:bar:baz') (Right_DoubleQuote '"') ('\n') ] ) ] ) (command.SimpleCommand words: [{(test_split)} {(DQ ('foo:bar:baz'))} {(DQ (':'))} {(DQ (1))}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 166 stdin_parts: [ ('2\n') ('[0]: ') (Right_DoubleQuote '"') (foo) (Right_DoubleQuote '"') ('\n') ('[1]: ') (Right_DoubleQuote '"') ('bar:baz') (Right_DoubleQuote '"') ('\n') ] ) ] ) (command.SimpleCommand words: [{(test_split)} {(DQ ('foo:bar:baz'))} {(DQ (':'))} {(DQ (2))}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 202 stdin_parts: [ ('3\n') ('[0]: ') (Right_DoubleQuote '"') (foo) (Right_DoubleQuote '"') ('\n') ('[1]: ') (Right_DoubleQuote '"') (bar) (Right_DoubleQuote '"') ('\n') ('[2]: ') (Right_DoubleQuote '"') (baz) (Right_DoubleQuote '"') ('\n') ] ) ] ) (command.SimpleCommand words: [{(test_split)} {(DQ ('foo:bar:'))} {(DQ (':'))} {(DQ (-1))}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 237 stdin_parts: [ ('3\n') ('[0]: ') (Right_DoubleQuote '"') (foo) (Right_DoubleQuote '"') ('\n') ('[1]: ') (Right_DoubleQuote '"') (bar) (Right_DoubleQuote '"') ('\n') ('[2]: ') (Right_DoubleQuote '"') (Right_DoubleQuote '"') ('\n') ] ) ] ) (command.SimpleCommand words: [{(test_split)} {(DQ )} {(DQ (':'))} {(DQ (-1))}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 261 stdin_parts: [('1\n') ('[0]: ') (Right_DoubleQuote '"') (Right_DoubleQuote '"') ('\n')] ) ] ) (command.SimpleCommand words: [{(test_split)} {(DQ (':'))} {(DQ (':'))} {(DQ (-1))}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 290 stdin_parts: [ ('2\n') ('[0]: ') (Right_DoubleQuote '"') (Right_DoubleQuote '"') ('\n') ('[1]: ') (Right_DoubleQuote '"') (Right_DoubleQuote '"') ('\n') ] ) ] ) (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)}) ] )