11#! /usr/bin/env bash
2+ # shellcheck disable=SC2030
3+ # shellcheck disable=SC2031
4+ # shellcheck disable=SC2034
25
36set -eo pipefail
47CURRENT_DIR=$( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd)
@@ -27,31 +30,39 @@ test_parse_commands() {
2730 done
2831}
2932
30- begin_test " delimited_by_semis"
31- test_parse_commands \
32- ' set status off ; set exit-empty off' \
33- ' set' ' status' ' off' ' ;' \
34- ' set' ' exit-empty' ' off'
35-
36- begin_test " delimited_by_line_breaks"
37- test_parse_commands \
38- ' set status off
33+ (
34+ begin_test " delimited_by_semis" || exit 0
35+ test_parse_commands \
36+ ' set status off ; set exit-empty off' \
37+ ' set' ' status' ' off' ' ;' \
38+ ' set' ' exit-empty' ' off'
39+ ) || exit 1 || exit 1
40+
41+ (
42+ begin_test " delimited_by_line_breaks" || exit 0
43+ test_parse_commands \
44+ ' set status off
3945 set exit-empty off' \
40- ' set' ' status' ' off' \
41- ' set' ' exit-empty' ' off'
42-
43- begin_test " escaped_multiple_commands"
44- test_parse_commands \
45- ' bind -n M-1 display random\ text \\; display and\ more' \
46- ' bind' ' -n' ' M-1' \
47- ' display' ' random text' ' \;' \
48- ' display' ' and more'
49-
50- begin_test " quoted_multiple_commands"
51- test_parse_commands \
52- " bind -n M-2 \" display 'random text' ; display 'and more'\" " \
53- ' bind' ' -n' ' M-2' \
54- " display 'random text' ; display 'and more'"
46+ ' set' ' status' ' off' \
47+ ' set' ' exit-empty' ' off'
48+ ) || exit 1 || exit 1
49+
50+ (
51+ begin_test " escaped_multiple_commands" || exit 0
52+ test_parse_commands \
53+ ' bind -n M-1 display random\ text \\; display and\ more' \
54+ ' bind' ' -n' ' M-1' \
55+ ' display' ' random text' ' \;' \
56+ ' display' ' and more'
57+ ) || exit 1
58+
59+ (
60+ begin_test " quoted_multiple_commands" || exit 0
61+ test_parse_commands \
62+ " bind -n M-2 \" display 'random text' ; display 'and more'\" " \
63+ ' bind' ' -n' ' M-2' \
64+ " display 'random text' ; display 'and more'"
65+ ) || exit 1
5566
5667# === test:interpolate ===#
5768
@@ -61,20 +72,26 @@ test_interpolate() {
6172 assert_eq " $expected " " $input "
6273}
6374
64- begin_test " no_interpolate_of_unknown"
65- format=" {session}/{project}/{popup_name}"
66- expected=" working/{project}/default"
67- test_interpolate session=" working" popup_name=" default"
68-
69- begin_test " interpolate_multi"
70- format=" {var1}/{var2}/{var2}/{var1}"
71- expected=" value1/value2/value2/value1"
72- test_interpolate var1=" value1" var2=" value2"
73-
74- begin_test " interpolate_with_equals"
75- format=" {var1}/{var2}/{var2}/{var1}"
76- expected=" var1=value1/var2=value2/var2=value2/var1=value1"
77- test_interpolate var1=" var1=value1" var2=" var2=value2"
75+ (
76+ begin_test " no_interpolate_of_unknown" || exit 0
77+ format=" {session}/{project}/{popup_name}"
78+ expected=" working/{project}/default"
79+ test_interpolate session=" working" popup_name=" default"
80+ ) || exit 1
81+
82+ (
83+ begin_test " interpolate_multi" || exit 0
84+ format=" {var1}/{var2}/{var2}/{var1}"
85+ expected=" value1/value2/value2/value1"
86+ test_interpolate var1=" value1" var2=" value2"
87+ ) || exit 1
88+
89+ (
90+ begin_test " interpolate_with_equals" || exit 0
91+ format=" {var1}/{var2}/{var2}/{var1}"
92+ expected=" var1=value1/var2=value2/var2=value2/var1=value1"
93+ test_interpolate var1=" var1=value1" var2=" var2=value2"
94+ ) || exit 1
7895
7996# === test:batch_get_options ===#
8097
@@ -85,22 +102,26 @@ tmux() {
85102 printf " %s\n$delimiter \n" " ${input[@]} "
86103}
87104
88- begin_test " batch_get_options"
89- input=(" value1" " value2" " value3" )
90- batch_get_options var1= var2= var3=
91- assert_eq " $var1 " " value1"
92- assert_eq " $var2 " " value2"
93- assert_eq " $var3 " " value3"
94-
95- begin_test " batch_get_multiline_options"
96- input=(
97- $' \n line1\n '
98- $' line1\n line2'
99- $' line1\n\n line2'
100- $' \n line1\n\n line2\n line3\n\n '
101- )
102- batch_get_options var1= var2= var3= var4=
103- assert_eq " $var1 " " line1"
104- assert_eq " $var2 " " line1 line2"
105- assert_eq " $var3 " " line1 line2"
106- assert_eq " $var4 " " line1 line2 line3"
105+ (
106+ begin_test " batch_get_options" || exit 0
107+ input=(" value1" " value2" " value3" )
108+ batch_get_options var1= var2= var3=
109+ assert_eq " $var1 " " value1"
110+ assert_eq " $var2 " " value2"
111+ assert_eq " $var3 " " value3"
112+ ) || exit 1
113+
114+ (
115+ begin_test " batch_get_multiline_options" || exit 0
116+ input=(
117+ $' \n line1\n '
118+ $' line1\n line2'
119+ $' line1\n\n line2'
120+ $' \n line1\n\n line2\n line3\n\n '
121+ )
122+ batch_get_options var1= var2= var3= var4=
123+ assert_eq " $var1 " " line1"
124+ assert_eq " $var2 " " line1 line2"
125+ assert_eq " $var3 " " line1 line2"
126+ assert_eq " $var4 " " line1 line2 line3"
127+ ) || exit 1
0 commit comments