@@ -14,6 +14,15 @@ create_go_format_script() {
1414 create_test_go_script ' . "$_GO_USE_MODULES" format' " $@ "
1515}
1616
17+ run_array_printf_script () {
18+ create_go_format_script \
19+ ' declare result=()' \
20+ ' @go.array_printf result "%s" "$@"' \
21+ ' IFS="|"' \
22+ ' printf "%s\n" "${result[*]}"'
23+ run " $TEST_GO_SCRIPT " " $@ "
24+ }
25+
1726run_pad_items_script () {
1827 create_go_format_script \
1928 ' declare items=("$@")' \
@@ -42,51 +51,78 @@ run_strip_formatting_codes_script() {
4251 run " $TEST_GO_SCRIPT " " $@ "
4352}
4453
45- @test " $SUITE : pad items validates result variable name" {
54+ @test " $SUITE : array_printf validates result array name" {
55+ create_test_go_script ' . "$_GO_USE_MODULES" format' \
56+ ' @go.array_printf "3foobar"'
57+ run " $TEST_GO_SCRIPT "
58+
59+ local err_msg=' Result array name "3foobar" for @go.array_printf '
60+ err_msg+=' must not start with a number at:'
61+ assert_failure " $err_msg " \
62+ " $TEST_GO_SCRIPT :4 main"
63+ }
64+
65+ @test " $SUITE : array_printf does nothing for empty argv" {
66+ run_array_printf_script
67+ assert_success ' '
68+ }
69+
70+ @test " $SUITE : array_printf prints argv items" {
71+ run_array_printf_script ' foo' ' bar' ' baz' ' xyzzy' ' quux'
72+ assert_success ' foo|bar|baz|xyzzy|quux'
73+ }
74+
75+ @test " $SUITE : array_printf prints argv items with different delimiter" {
76+ _GO_ARRAY_PRINTF_DELIMITER=$' \x1e ' run_array_printf_script \
77+ $' foo\x1f ' $' bar\x1f ' $' baz\x1f ' $' xyzzy\x1f ' $' quux\x1f '
78+ assert_success $' foo\x1f |bar\x1f |baz\x1f |xyzzy\x1f |quux\x1f '
79+ }
80+
81+ @test " $SUITE : pad_items validates result array name" {
4682 create_test_go_script ' . "$_GO_USE_MODULES" format' \
4783 ' @go.pad_items items "3foobar"'
4884 run " $TEST_GO_SCRIPT "
4985
50- local err_msg=' Result variable name "3foobar" for @go.pad_items '
86+ local err_msg=' Result array name "3foobar" for @go.pad_items '
5187 err_msg+=' must not start with a number at:'
5288 assert_failure " $err_msg " \
5389 " $TEST_GO_SCRIPT :4 main"
5490}
5591
56- @test " $SUITE : pad items does nothing for empty argv" {
92+ @test " $SUITE : pad_items does nothing for empty argv" {
5793 run_pad_items_script
5894 assert_success ' '
5995}
6096
61- @test " $SUITE : pad items pads argv items" {
97+ @test " $SUITE : pad_items pads argv items" {
6298 run_pad_items_script ' foo' ' bar' ' baz' ' xyzzy' ' quux'
6399 assert_success ' foo |bar |baz |xyzzy|quux '
64100}
65101
66- @test " $SUITE : zip items validates result variable name" {
102+ @test " $SUITE : zip_items validates result array name" {
67103 create_test_go_script ' . "$_GO_USE_MODULES" format' \
68104 ' @go.zip_items lhs rhs = "3foobar"'
69105 run " $TEST_GO_SCRIPT "
70106
71- local err_msg=' Result variable name "3foobar" for @go.zip_items '
107+ local err_msg=' Result array name "3foobar" for @go.zip_items '
72108 err_msg+=' must not start with a number at:'
73109 assert_failure " $err_msg " \
74110 " $TEST_GO_SCRIPT :4 main"
75111}
76112
77- @test " $SUITE : zip items does nothing for empty argv" {
113+ @test " $SUITE : zip_items does nothing for empty argv" {
78114 run_zip_items_script
79115 assert_success ' '
80116}
81117
82- @test " $SUITE : zip items zips matching items with supplied delimiter" {
118+ @test " $SUITE : zip_items zips matching items with supplied delimiter" {
83119 local lhs=(' foo' ' xyzzy' ' quux' )
84120 local rhs=(' bar' ' baz' ' plugh' )
85121 run_zip_items_script " ${lhs[*]} " " ${rhs[*]} " ' ='
86122 assert_success ' foo=bar' ' xyzzy=baz' ' quux=plugh'
87123}
88124
89- @test " $SUITE : strip formatting codes validates result variable name" {
125+ @test " $SUITE : strip_formatting_codes validates result array name" {
90126 create_test_go_script ' . "$_GO_USE_MODULES" format' \
91127 ' @go.strip_formatting_codes "foobar" "3foobar"'
92128 run " $TEST_GO_SCRIPT "
@@ -97,27 +133,27 @@ run_strip_formatting_codes_script() {
97133 " $TEST_GO_SCRIPT :4 main"
98134}
99135
100- @test " $SUITE : strip formatting codes from empty string" {
136+ @test " $SUITE : strip_formatting_codes from empty string" {
101137 run_strip_formatting_codes_script ' '
102138 assert_success ' '
103139}
104140
105- @test " $SUITE : strip formatting codes from string with no codes" {
141+ @test " $SUITE : strip_formatting_codes from string with no codes" {
106142 run_strip_formatting_codes_script ' foobar'
107143 assert_success ' foobar'
108144}
109145
110- @test " $SUITE : strip formatting codes from string with one code" {
146+ @test " $SUITE : strip_formatting_codes from string with one code" {
111147 run_strip_formatting_codes_script ' foobar\e[0m'
112148 assert_success ' foobar'
113149}
114150
115- @test " $SUITE : strip formatting codes from string with multiple codes" {
151+ @test " $SUITE : strip_formatting_codes from string with multiple codes" {
116152 run_strip_formatting_codes_script ' \e[1mf\e[30;47mo\e[0;111mo\e[32mbar\e[0m'
117153 assert_success ' foobar'
118154}
119155
120- @test " $SUITE : strip formatting codes from string with expanded codes" {
156+ @test " $SUITE : strip_formatting_codes from string with expanded codes" {
121157 local orig_value
122158 printf -v orig_value ' %b' ' \e[1mf\e[30;47mo\e[0;111mo\e[32mbar\e[0m'
123159 run_strip_formatting_codes_script " $orig_value "
0 commit comments