summaryrefslogtreecommitdiff
path: root/devel/bmake/files/unit-tests/dollar.exp
diff options
context:
space:
mode:
Diffstat (limited to 'devel/bmake/files/unit-tests/dollar.exp')
-rw-r--r--devel/bmake/files/unit-tests/dollar.exp51
1 files changed, 51 insertions, 0 deletions
diff --git a/devel/bmake/files/unit-tests/dollar.exp b/devel/bmake/files/unit-tests/dollar.exp
new file mode 100644
index 00000000000..496adc02f15
--- /dev/null
+++ b/devel/bmake/files/unit-tests/dollar.exp
@@ -0,0 +1,51 @@
+
+Printing dollar from literals and variables
+
+To survive the parser, a dollar character must be doubled.
+ 1 dollar literal => <single-quote-var-value>
+ 1 dollar literal eol => <>
+ 2 dollar literal => <$>
+ 4 dollar literal => <$$>
+Some hungry part of make eats all the dollars after a :U modifier.
+ 1 dollar default => <>
+ 2 dollar default => <>
+ 4 dollar default => <>
+This works as expected.
+ 1 dollar variable => <>
+ 2 dollar variable => <$>
+ 4 dollar variable => <$$>
+Some hungry part of make eats all the dollars after a :U modifier.
+ 1 dollar var-default => <>
+ 2 dollar var-default => <$>
+ 4 dollar var-default => <$$>
+
+Dollar in :S pattern
+
+ S,$,word, => <$XYword>
+ S,$X,word, => <$XY>
+ S,$$X,word, => <$XY>
+ S,$$$X,word, => <$XY>
+ S,$X,replaced, => <replaced>
+ S,$$X,replaced, => <replaced>
+ S,$$$X,replaced, => <replaced>
+
+Dollar in :C character class
+
+The A is replaced because the $$ is reduced to a single $,
+which is then resolved to the variable X with the value VAR_X.
+The effective character class becomes [VAR_XY].
+ C,[$$XY],<&>,g => <$<A><X><Y>>
+
+Dollar in :C pattern
+
+For some reason, multiple dollars are folded into one.
+ C,$,dollar,g => <>
+ C,$$,dollar,g => <>
+
+Dollar in :S replacement
+
+For some reason, multiple dollars are folded into one.
+ S,word,a$Xo, => <aVAR_Xo>
+ S,word,a$$Xo, => <aVAR_Xo>
+ S,word,a$$$Xo, => <aVAR_Xo>
+exit status 0