summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorBrice Figureau <brice-puppet@daysofwonder.com>2009-07-28 19:56:34 +0200
committerJames Turnbull <james@lovedthanlost.net>2009-08-01 11:15:29 +1000
commit3ebf148bf3d82d25e690aec6ec49975e0837e604 (patch)
treeb94504992e575d8b4181440b90bdf510cf67ef8c /test
parentef68967f2b72e609a9d69e53771a61fd9f522149 (diff)
downloadpuppet-3ebf148bf3d82d25e690aec6ec49975e0837e604.tar.gz
puppet-3ebf148bf3d82d25e690aec6ec49975e0837e604.tar.xz
puppet-3ebf148bf3d82d25e690aec6ec49975e0837e604.zip
Enhance selector and case statements to match with regexp
The case and selector statements define ephemeral vars, like 'if'. Usage: case statement: $var = "foobar" case $var { "foo": { notify { "got a foo": } } /(.*)bar$/: { notify{ "hey we got a $1": } } } and for selector: $val = $test ? { /^match.*$/ => "matched", default => "default" } Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
Diffstat (limited to 'test')
-rw-r--r--test/data/snippets/casestatement.pp7
-rw-r--r--test/data/snippets/selectorvalues.pp7
-rwxr-xr-xtest/language/snippets.rb3
-rw-r--r--test/lib/puppettest/parsertesting.rb5
4 files changed, 21 insertions, 1 deletions
diff --git a/test/data/snippets/casestatement.pp b/test/data/snippets/casestatement.pp
index 955982819..66ecd72b9 100644
--- a/test/data/snippets/casestatement.pp
+++ b/test/data/snippets/casestatement.pp
@@ -56,3 +56,10 @@ case $yay {
default: { file { "/tmp/existsfile5": mode => 711, ensure => file } }
}
+
+$regexvar = "exists regex"
+case $regexvar {
+ "no match": { file { "/tmp/existsfile6": mode => 644, ensure => file } }
+ /(.*) regex$/: { file { "/tmp/${1}file6": mode => 755, ensure => file } }
+ default: { file { "/tmp/existsfile6": mode => 711, ensure => file } }
+}
diff --git a/test/data/snippets/selectorvalues.pp b/test/data/snippets/selectorvalues.pp
index cd8cf77a7..d80d26c36 100644
--- a/test/data/snippets/selectorvalues.pp
+++ b/test/data/snippets/selectorvalues.pp
@@ -34,9 +34,16 @@ $mode6 = $mode5 ? {
755 => 755
}
+$mode7 = "test regex" ? {
+ /regex$/ => 755,
+ default => 644
+}
+
+
file { "/tmp/selectorvalues1": ensure => file, mode => $mode1 }
file { "/tmp/selectorvalues2": ensure => file, mode => $mode2 }
file { "/tmp/selectorvalues3": ensure => file, mode => $mode3 }
file { "/tmp/selectorvalues4": ensure => file, mode => $mode4 }
file { "/tmp/selectorvalues5": ensure => file, mode => $mode5 }
file { "/tmp/selectorvalues6": ensure => file, mode => $mode6 }
+file { "/tmp/selectorvalues7": ensure => file, mode => $mode7 }
diff --git a/test/language/snippets.rb b/test/language/snippets.rb
index cfca10e13..5c7805c0a 100755
--- a/test/language/snippets.rb
+++ b/test/language/snippets.rb
@@ -237,6 +237,7 @@ class TestSnippets < Test::Unit::TestCase
/tmp/existsfile3
/tmp/existsfile4
/tmp/existsfile5
+ /tmp/existsfile6
}
paths.each { |path|
@@ -281,7 +282,7 @@ class TestSnippets < Test::Unit::TestCase
end
def snippet_selectorvalues
- nums = %w{1 2 3 4 5}
+ nums = %w{1 2 3 4 5 6 7}
files = nums.collect { |n|
"/tmp/selectorvalues%s" % n
}
diff --git a/test/lib/puppettest/parsertesting.rb b/test/lib/puppettest/parsertesting.rb
index 8186bf304..dee38eb3a 100644
--- a/test/lib/puppettest/parsertesting.rb
+++ b/test/lib/puppettest/parsertesting.rb
@@ -33,6 +33,11 @@ module PuppetTest::ParserTesting
def safeevaluate(*args)
evaluate()
end
+
+ def evaluate_match(othervalue, scope, options={})
+ value = evaluate()
+ othervalue == value
+ end
end
def astarray(*args)