summaryrefslogtreecommitdiff
path: root/test cases/common/62 string arithmetic/meson.build
diff options
context:
space:
mode:
authorPeter Lesslie <pclesslie@gmail.com>2022-04-15 15:02:14 -0500
committerEli Schwartz <eschwartz93@gmail.com>2022-05-01 12:47:37 -0400
commitd771fc7d0b45f8fa66f6570720fba73941de67cd (patch)
treec75bc9db23d033ed8caaf9a2a979ad3f0e77fbd1 /test cases/common/62 string arithmetic/meson.build
parent78a6f3bd5c292afb68be7f4fbcd0e8c8ba0e3236 (diff)
downloadmeson-d771fc7d0b45f8fa66f6570720fba73941de67cd.tar.gz
Add support for multiline f-strings
+ Extend the parser to recognize the multiline f-strings, which the documentation already implies will work. The syntax is like: ``` x = 'hello' y = 'world' msg = f'''This is a multiline string. Sending a message: '@x@ @y@' ''' ``` which produces: ``` This is a multiline string. Sending a message: 'hello world' ``` + Added some f-string tests cases to "62 string arithmetic" to exercise the new behavior.
Diffstat (limited to 'test cases/common/62 string arithmetic/meson.build')
-rw-r--r--test cases/common/62 string arithmetic/meson.build43
1 files changed, 42 insertions, 1 deletions
diff --git a/test cases/common/62 string arithmetic/meson.build b/test cases/common/62 string arithmetic/meson.build
index 8ef350ede..194df0d9a 100644
--- a/test cases/common/62 string arithmetic/meson.build
+++ b/test cases/common/62 string arithmetic/meson.build
@@ -1,4 +1,4 @@
-project('string arithmetic', 'c')
+project('string arithmetic', 'c', meson_version: '>=0.62.0')
assert('foo' + 'bar' == 'foobar')
assert('foo' + 'bar' + 'baz' == 'foobarbaz')
@@ -6,3 +6,44 @@ assert('foo' + 'bar' + 'baz' == 'foobarbaz')
a = 'a'
b = 'b'
assert(a + b + 'c' == 'abc')
+
+# ------------------------------------------------------------------------------
+# format strings:
+# ------------------------------------------------------------------------------
+sub1 = 'the'
+sub2 = ' quick\n'
+sub3 = ' brown'
+sub4 = '\nfox'
+x = f'@sub1@@sub2@@sub3@@sub4@'
+
+assert(x == sub1 + sub2 + sub3 + sub4)
+assert(x == 'the quick\n brown\nfox')
+
+# ------------------------------------------------------------------------------
+# multi-line format strings
+# ------------------------------------------------------------------------------
+y_actual = f'''This is a multi-line comment with string substition:
+ "@sub1@@sub2@@sub3@@sub4@"
+
+And I can even substitute the entry multiple times!
+
+@sub1@
+@sub2@
+@sub3@
+'''
+
+y_expect = '''This is a multi-line comment with string substition:
+ "the quick
+ brown
+fox"
+
+And I can even substitute the entry multiple times!
+
+the
+ quick
+
+ brown
+'''
+message('actual=' + y_actual)
+message('expect=' + y_expect)
+assert(y_actual == y_expect)