diff options
| author | Antonin Godard <antoningodard@pm.me> | 2024-05-14 01:53:21 +0000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2024-05-21 14:14:41 +0100 |
| commit | 1aa8276c64f63ebc4bb0c5a1f152a585ebc873af (patch) | |
| tree | 96ac7241423dc8dd563493618e558b82228624f9 | |
| parent | dd98d156ca543b378ba842817ad1c47461012893 (diff) | |
| download | poky-1aa8276c64f63ebc4bb0c5a1f152a585ebc873af.tar.gz | |
bitbake: tests.codeparser: add tests for shell expansions
Tests quotes around `` and $() expansions, nested and multiple
expansions, and that escaped quotes are treated as characters by the
parser.
(Bitbake rev: d98130cb4d500c495bc692c56dde3e019f36320a)
Signed-off-by: Antonin Godard <antoningodard@pm.me>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | bitbake/lib/bb/tests/codeparser.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/bitbake/lib/bb/tests/codeparser.py b/bitbake/lib/bb/tests/codeparser.py index f6585fb3aa..c0d1362a0c 100644 --- a/bitbake/lib/bb/tests/codeparser.py +++ b/bitbake/lib/bb/tests/codeparser.py | |||
| @@ -106,6 +106,46 @@ ${D}${libdir}/pkgconfig/*.pc | |||
| 106 | self.parseExpression("foo=$(echo bar)") | 106 | self.parseExpression("foo=$(echo bar)") |
| 107 | self.assertExecs(set(["echo"])) | 107 | self.assertExecs(set(["echo"])) |
| 108 | 108 | ||
| 109 | def test_assign_subshell_expansion_quotes(self): | ||
| 110 | self.parseExpression('foo="$(echo bar)"') | ||
| 111 | self.assertExecs(set(["echo"])) | ||
| 112 | |||
| 113 | def test_assign_subshell_expansion_nested(self): | ||
| 114 | self.parseExpression('foo="$(func1 "$(func2 bar$(func3))")"') | ||
| 115 | self.assertExecs(set(["func1", "func2", "func3"])) | ||
| 116 | |||
| 117 | def test_assign_subshell_expansion_multiple(self): | ||
| 118 | self.parseExpression('foo="$(func1 "$(func2)") $(func3)"') | ||
| 119 | self.assertExecs(set(["func1", "func2", "func3"])) | ||
| 120 | |||
| 121 | def test_assign_subshell_expansion_escaped_quotes(self): | ||
| 122 | self.parseExpression('foo="\\"fo\\"o$(func1)"') | ||
| 123 | self.assertExecs(set(["func1"])) | ||
| 124 | |||
| 125 | def test_assign_subshell_expansion_empty(self): | ||
| 126 | self.parseExpression('foo="bar$()foo"') | ||
| 127 | self.assertExecs(set()) | ||
| 128 | |||
| 129 | def test_assign_subshell_backticks(self): | ||
| 130 | self.parseExpression("foo=`echo bar`") | ||
| 131 | self.assertExecs(set(["echo"])) | ||
| 132 | |||
| 133 | def test_assign_subshell_backticks_quotes(self): | ||
| 134 | self.parseExpression('foo="`echo bar`"') | ||
| 135 | self.assertExecs(set(["echo"])) | ||
| 136 | |||
| 137 | def test_assign_subshell_backticks_multiple(self): | ||
| 138 | self.parseExpression('foo="`func1 bar` `func2`"') | ||
| 139 | self.assertExecs(set(["func1", "func2"])) | ||
| 140 | |||
| 141 | def test_assign_subshell_backticks_escaped_quotes(self): | ||
| 142 | self.parseExpression('foo="\\"fo\\"o`func1`"') | ||
| 143 | self.assertExecs(set(["func1"])) | ||
| 144 | |||
| 145 | def test_assign_subshell_backticks_empty(self): | ||
| 146 | self.parseExpression('foo="bar``foo"') | ||
| 147 | self.assertExecs(set()) | ||
| 148 | |||
| 109 | def test_shell_unexpanded(self): | 149 | def test_shell_unexpanded(self): |
| 110 | self.setEmptyVars(["QT_BASE_NAME"]) | 150 | self.setEmptyVars(["QT_BASE_NAME"]) |
| 111 | self.parseExpression('echo "${QT_BASE_NAME}"') | 151 | self.parseExpression('echo "${QT_BASE_NAME}"') |
