summaryrefslogtreecommitdiffstats
path: root/spec/fixtures/unit/parser/lexer
diff options
context:
space:
mode:
authorDaniel Pittman <daniel@rimspace.net>2011-03-02 19:06:57 -0800
committerDaniel Pittman <daniel@rimspace.net>2011-03-03 16:29:37 -0800
commit0f6faf5e138e6d11e79b2430b4e6fa6139442509 (patch)
treeeba4624e042fbd367daa0a36c6d2e61c1d2ac03f /spec/fixtures/unit/parser/lexer
parentf490526726a5f35437cda11652ae9977d89279e5 (diff)
downloadpuppet-0f6faf5e138e6d11e79b2430b4e6fa6139442509.tar.gz
puppet-0f6faf5e138e6d11e79b2430b4e6fa6139442509.tar.xz
puppet-0f6faf5e138e6d11e79b2430b4e6fa6139442509.zip
(#6582) Eliminate the old fakedata helper method.
This is replaced with the new my_fixture{,s} methods; old fixture data is ported into the spec tests at the same time, but left where it was against unit tests that require it. Reviewed-By: Nick Lewis <nick@puppetlabs.com>
Diffstat (limited to 'spec/fixtures/unit/parser/lexer')
-rw-r--r--spec/fixtures/unit/parser/lexer/aliastest.pp16
-rw-r--r--spec/fixtures/unit/parser/lexer/append.pp11
-rw-r--r--spec/fixtures/unit/parser/lexer/argumentdefaults.pp14
-rw-r--r--spec/fixtures/unit/parser/lexer/arithmetic_expression.pp8
-rw-r--r--spec/fixtures/unit/parser/lexer/arraytrailingcomma.pp3
-rw-r--r--spec/fixtures/unit/parser/lexer/casestatement.pp65
-rw-r--r--spec/fixtures/unit/parser/lexer/classheirarchy.pp15
-rw-r--r--spec/fixtures/unit/parser/lexer/classincludes.pp17
-rw-r--r--spec/fixtures/unit/parser/lexer/classpathtest.pp11
-rw-r--r--spec/fixtures/unit/parser/lexer/collection.pp10
-rw-r--r--spec/fixtures/unit/parser/lexer/collection_override.pp8
-rw-r--r--spec/fixtures/unit/parser/lexer/collection_within_virtual_definitions.pp20
-rw-r--r--spec/fixtures/unit/parser/lexer/componentmetaparams.pp11
-rw-r--r--spec/fixtures/unit/parser/lexer/componentrequire.pp8
-rw-r--r--spec/fixtures/unit/parser/lexer/deepclassheirarchy.pp23
-rw-r--r--spec/fixtures/unit/parser/lexer/defineoverrides.pp17
-rw-r--r--spec/fixtures/unit/parser/lexer/emptyclass.pp9
-rw-r--r--spec/fixtures/unit/parser/lexer/emptyexec.pp3
-rw-r--r--spec/fixtures/unit/parser/lexer/emptyifelse.pp9
-rw-r--r--spec/fixtures/unit/parser/lexer/falsevalues.pp3
-rw-r--r--spec/fixtures/unit/parser/lexer/filecreate.pp11
-rw-r--r--spec/fixtures/unit/parser/lexer/fqdefinition.pp5
-rw-r--r--spec/fixtures/unit/parser/lexer/fqparents.pp11
-rw-r--r--spec/fixtures/unit/parser/lexer/funccomma.pp5
-rw-r--r--spec/fixtures/unit/parser/lexer/hash.pp33
-rw-r--r--spec/fixtures/unit/parser/lexer/ifexpression.pp12
-rw-r--r--spec/fixtures/unit/parser/lexer/implicititeration.pp15
-rw-r--r--spec/fixtures/unit/parser/lexer/multilinecomments.pp10
-rw-r--r--spec/fixtures/unit/parser/lexer/multipleclass.pp9
-rw-r--r--spec/fixtures/unit/parser/lexer/multipleinstances.pp7
-rw-r--r--spec/fixtures/unit/parser/lexer/multisubs.pp13
-rw-r--r--spec/fixtures/unit/parser/lexer/namevartest.pp9
-rw-r--r--spec/fixtures/unit/parser/lexer/scopetest.pp13
-rw-r--r--spec/fixtures/unit/parser/lexer/selectorvalues.pp49
-rw-r--r--spec/fixtures/unit/parser/lexer/simpledefaults.pp5
-rw-r--r--spec/fixtures/unit/parser/lexer/simpleselector.pp38
-rw-r--r--spec/fixtures/unit/parser/lexer/singleary.pp19
-rw-r--r--spec/fixtures/unit/parser/lexer/singlequote.pp11
-rw-r--r--spec/fixtures/unit/parser/lexer/singleselector.pp22
-rwxr-xr-xspec/fixtures/unit/parser/lexer/subclass_name_duplication.pp11
-rw-r--r--spec/fixtures/unit/parser/lexer/tag.pp9
-rw-r--r--spec/fixtures/unit/parser/lexer/tagged.pp35
-rw-r--r--spec/fixtures/unit/parser/lexer/virtualresources.pp14
43 files changed, 647 insertions, 0 deletions
diff --git a/spec/fixtures/unit/parser/lexer/aliastest.pp b/spec/fixtures/unit/parser/lexer/aliastest.pp
new file mode 100644
index 000000000..f2b61592e
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/aliastest.pp
@@ -0,0 +1,16 @@
+file { "a file":
+ path => "/tmp/aliastest",
+ ensure => file
+}
+
+file { "another":
+ path => "/tmp/aliastest2",
+ ensure => file,
+ require => File["a file"]
+}
+
+file { "a third":
+ path => "/tmp/aliastest3",
+ ensure => file,
+ require => File["/tmp/aliastest"]
+}
diff --git a/spec/fixtures/unit/parser/lexer/append.pp b/spec/fixtures/unit/parser/lexer/append.pp
new file mode 100644
index 000000000..20cbda662
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/append.pp
@@ -0,0 +1,11 @@
+$var=['/tmp/file1','/tmp/file2']
+
+class arraytest {
+ $var += ['/tmp/file3', '/tmp/file4']
+ file {
+ $var:
+ content => "test"
+ }
+}
+
+include arraytest
diff --git a/spec/fixtures/unit/parser/lexer/argumentdefaults.pp b/spec/fixtures/unit/parser/lexer/argumentdefaults.pp
new file mode 100644
index 000000000..eac9dd757
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/argumentdefaults.pp
@@ -0,0 +1,14 @@
+# $Id$
+
+define testargs($file, $mode = 755) {
+ file { $file: ensure => file, mode => $mode }
+}
+
+testargs { "testingname":
+ file => "/tmp/argumenttest1"
+}
+
+testargs { "testingother":
+ file => "/tmp/argumenttest2",
+ mode => 644
+}
diff --git a/spec/fixtures/unit/parser/lexer/arithmetic_expression.pp b/spec/fixtures/unit/parser/lexer/arithmetic_expression.pp
new file mode 100644
index 000000000..aae98a4db
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/arithmetic_expression.pp
@@ -0,0 +1,8 @@
+
+$one = 1.30
+$two = 2.034e-2
+
+$result = ((( $two + 2) / $one) + 4 * 5.45) - (6 << 7) + (0x800 + -9)
+
+
+notice("result is $result == 1295.87692307692") \ No newline at end of file
diff --git a/spec/fixtures/unit/parser/lexer/arraytrailingcomma.pp b/spec/fixtures/unit/parser/lexer/arraytrailingcomma.pp
new file mode 100644
index 000000000..a410f9553
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/arraytrailingcomma.pp
@@ -0,0 +1,3 @@
+file {
+ ["/tmp/arraytrailingcomma1","/tmp/arraytrailingcomma2", ]: content => "tmp"
+}
diff --git a/spec/fixtures/unit/parser/lexer/casestatement.pp b/spec/fixtures/unit/parser/lexer/casestatement.pp
new file mode 100644
index 000000000..66ecd72b9
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/casestatement.pp
@@ -0,0 +1,65 @@
+# $Id$
+
+$var = "value"
+
+case $var {
+ "nope": {
+ file { "/tmp/fakefile": mode => 644, ensure => file }
+ }
+ "value": {
+ file { "/tmp/existsfile": mode => 755, ensure => file }
+ }
+}
+
+$ovar = "yayness"
+
+case $ovar {
+ "fooness": {
+ file { "/tmp/nostillexistsfile": mode => 644, ensure => file }
+ }
+ "booness", "yayness": {
+ case $var {
+ "nep": {
+ file { "/tmp/noexistsfile": mode => 644, ensure => file }
+ }
+ "value": {
+ file { "/tmp/existsfile2": mode => 755, ensure => file }
+ }
+ }
+ }
+}
+
+case $ovar {
+ "fooness": {
+ file { "/tmp/nostillexistsfile": mode => 644, ensure => file }
+ }
+ default: {
+ file { "/tmp/existsfile3": mode => 755, ensure => file }
+ }
+}
+
+$bool = true
+
+case $bool {
+ true: {
+ file { "/tmp/existsfile4": mode => 755, ensure => file }
+ }
+}
+
+$yay = yay
+$a = yay
+$b = boo
+
+case $yay {
+ $a: { file { "/tmp/existsfile5": mode => 755, ensure => file } }
+ $b: { file { "/tmp/existsfile5": mode => 644, ensure => file } }
+ 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/spec/fixtures/unit/parser/lexer/classheirarchy.pp b/spec/fixtures/unit/parser/lexer/classheirarchy.pp
new file mode 100644
index 000000000..36619d8b9
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/classheirarchy.pp
@@ -0,0 +1,15 @@
+# $Id$
+
+class base {
+ file { "/tmp/classheir1": ensure => file, mode => 755 }
+}
+
+class sub1 inherits base {
+ file { "/tmp/classheir2": ensure => file, mode => 755 }
+}
+
+class sub2 inherits base {
+ file { "/tmp/classheir3": ensure => file, mode => 755 }
+}
+
+include sub1, sub2
diff --git a/spec/fixtures/unit/parser/lexer/classincludes.pp b/spec/fixtures/unit/parser/lexer/classincludes.pp
new file mode 100644
index 000000000..bd5b44ed7
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/classincludes.pp
@@ -0,0 +1,17 @@
+# $Id$
+
+class base {
+ file { "/tmp/classincludes1": ensure => file, mode => 755 }
+}
+
+class sub1 inherits base {
+ file { "/tmp/classincludes2": ensure => file, mode => 755 }
+}
+
+class sub2 inherits base {
+ file { "/tmp/classincludes3": ensure => file, mode => 755 }
+}
+
+$sub = "sub2"
+
+include sub1, $sub
diff --git a/spec/fixtures/unit/parser/lexer/classpathtest.pp b/spec/fixtures/unit/parser/lexer/classpathtest.pp
new file mode 100644
index 000000000..580333369
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/classpathtest.pp
@@ -0,0 +1,11 @@
+# $Id$
+
+define mytype {
+ file { "/tmp/classtest": ensure => file, mode => 755 }
+}
+
+class testing {
+ mytype { "componentname": }
+}
+
+include testing
diff --git a/spec/fixtures/unit/parser/lexer/collection.pp b/spec/fixtures/unit/parser/lexer/collection.pp
new file mode 100644
index 000000000..bc29510a9
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/collection.pp
@@ -0,0 +1,10 @@
+class one {
+ @file { "/tmp/colltest1": content => "one" }
+ @file { "/tmp/colltest2": content => "two" }
+}
+
+class two {
+ File <| content == "one" |>
+}
+
+include one, two
diff --git a/spec/fixtures/unit/parser/lexer/collection_override.pp b/spec/fixtures/unit/parser/lexer/collection_override.pp
new file mode 100644
index 000000000..b1b39ab16
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/collection_override.pp
@@ -0,0 +1,8 @@
+@file {
+ "/tmp/collection":
+ content => "whatever"
+}
+
+File<| |> {
+ mode => 0600
+}
diff --git a/spec/fixtures/unit/parser/lexer/collection_within_virtual_definitions.pp b/spec/fixtures/unit/parser/lexer/collection_within_virtual_definitions.pp
new file mode 100644
index 000000000..3c21468b0
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/collection_within_virtual_definitions.pp
@@ -0,0 +1,20 @@
+define test($name) {
+ file {"/tmp/collection_within_virtual_definitions1_$name.txt":
+ content => "File name $name\n"
+ }
+ Test2 <||>
+}
+
+define test2() {
+ file {"/tmp/collection_within_virtual_definitions2_$name.txt":
+ content => "This is a test\n"
+ }
+}
+
+node default {
+ @test {"foo":
+ name => "foo"
+ }
+ @test2 {"foo2": }
+ Test <||>
+}
diff --git a/spec/fixtures/unit/parser/lexer/componentmetaparams.pp b/spec/fixtures/unit/parser/lexer/componentmetaparams.pp
new file mode 100644
index 000000000..7d9f0c2c1
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/componentmetaparams.pp
@@ -0,0 +1,11 @@
+file { "/tmp/component1":
+ ensure => file
+}
+
+define thing {
+ file { $name: ensure => file }
+}
+
+thing { "/tmp/component2":
+ require => File["/tmp/component1"]
+}
diff --git a/spec/fixtures/unit/parser/lexer/componentrequire.pp b/spec/fixtures/unit/parser/lexer/componentrequire.pp
new file mode 100644
index 000000000..a61d2050c
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/componentrequire.pp
@@ -0,0 +1,8 @@
+define testfile($mode) {
+ file { $name: mode => $mode, ensure => present }
+}
+
+testfile { "/tmp/testing_component_requires2": mode => 755 }
+
+file { "/tmp/testing_component_requires1": mode => 755, ensure => present,
+ require => Testfile["/tmp/testing_component_requires2"] }
diff --git a/spec/fixtures/unit/parser/lexer/deepclassheirarchy.pp b/spec/fixtures/unit/parser/lexer/deepclassheirarchy.pp
new file mode 100644
index 000000000..249e6334d
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/deepclassheirarchy.pp
@@ -0,0 +1,23 @@
+# $Id$
+
+class base {
+ file { "/tmp/deepclassheir1": ensure => file, mode => 755 }
+}
+
+class sub1 inherits base {
+ file { "/tmp/deepclassheir2": ensure => file, mode => 755 }
+}
+
+class sub2 inherits sub1 {
+ file { "/tmp/deepclassheir3": ensure => file, mode => 755 }
+}
+
+class sub3 inherits sub2 {
+ file { "/tmp/deepclassheir4": ensure => file, mode => 755 }
+}
+
+class sub4 inherits sub3 {
+ file { "/tmp/deepclassheir5": ensure => file, mode => 755 }
+}
+
+include sub4
diff --git a/spec/fixtures/unit/parser/lexer/defineoverrides.pp b/spec/fixtures/unit/parser/lexer/defineoverrides.pp
new file mode 100644
index 000000000..c68b139e3
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/defineoverrides.pp
@@ -0,0 +1,17 @@
+# $Id$
+
+$file = "/tmp/defineoverrides1"
+
+define myfile($mode) {
+ file { $name: ensure => file, mode => $mode }
+}
+
+class base {
+ myfile { $file: mode => 644 }
+}
+
+class sub inherits base {
+ Myfile[$file] { mode => 755, } # test the end-comma
+}
+
+include sub
diff --git a/spec/fixtures/unit/parser/lexer/emptyclass.pp b/spec/fixtures/unit/parser/lexer/emptyclass.pp
new file mode 100644
index 000000000..48047e748
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/emptyclass.pp
@@ -0,0 +1,9 @@
+# $Id$
+
+define component {
+}
+
+class testing {
+}
+
+include testing
diff --git a/spec/fixtures/unit/parser/lexer/emptyexec.pp b/spec/fixtures/unit/parser/lexer/emptyexec.pp
new file mode 100644
index 000000000..847a30d18
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/emptyexec.pp
@@ -0,0 +1,3 @@
+exec { "touch /tmp/emptyexectest":
+ path => "/usr/bin:/bin"
+}
diff --git a/spec/fixtures/unit/parser/lexer/emptyifelse.pp b/spec/fixtures/unit/parser/lexer/emptyifelse.pp
new file mode 100644
index 000000000..598b486ac
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/emptyifelse.pp
@@ -0,0 +1,9 @@
+
+if false {
+} else {
+ # nothing here
+}
+
+if true {
+ # still nothing
+}
diff --git a/spec/fixtures/unit/parser/lexer/falsevalues.pp b/spec/fixtures/unit/parser/lexer/falsevalues.pp
new file mode 100644
index 000000000..2143b79a7
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/falsevalues.pp
@@ -0,0 +1,3 @@
+$value = false
+
+file { "/tmp/falsevalues$value": ensure => file }
diff --git a/spec/fixtures/unit/parser/lexer/filecreate.pp b/spec/fixtures/unit/parser/lexer/filecreate.pp
new file mode 100644
index 000000000..d7972c234
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/filecreate.pp
@@ -0,0 +1,11 @@
+# $Id$
+
+file {
+ "/tmp/createatest": ensure => file, mode => 755;
+ "/tmp/createbtest": ensure => file, mode => 755
+}
+
+file {
+ "/tmp/createctest": ensure => file;
+ "/tmp/createdtest": ensure => file;
+}
diff --git a/spec/fixtures/unit/parser/lexer/fqdefinition.pp b/spec/fixtures/unit/parser/lexer/fqdefinition.pp
new file mode 100644
index 000000000..ddb0675a9
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/fqdefinition.pp
@@ -0,0 +1,5 @@
+define one::two($ensure) {
+ file { "/tmp/fqdefinition": ensure => $ensure }
+}
+
+one::two { "/tmp/fqdefinition": ensure => file }
diff --git a/spec/fixtures/unit/parser/lexer/fqparents.pp b/spec/fixtures/unit/parser/lexer/fqparents.pp
new file mode 100644
index 000000000..ee2f65423
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/fqparents.pp
@@ -0,0 +1,11 @@
+class base {
+ class one {
+ file { "/tmp/fqparent1": ensure => file }
+ }
+}
+
+class two::three inherits base::one {
+ file { "/tmp/fqparent2": ensure => file }
+}
+
+include two::three
diff --git a/spec/fixtures/unit/parser/lexer/funccomma.pp b/spec/fixtures/unit/parser/lexer/funccomma.pp
new file mode 100644
index 000000000..32e34f92e
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/funccomma.pp
@@ -0,0 +1,5 @@
+@file {
+ ["/tmp/funccomma1","/tmp/funccomma2"]: content => "1"
+}
+
+realize( File["/tmp/funccomma1"], File["/tmp/funccomma2"] , )
diff --git a/spec/fixtures/unit/parser/lexer/hash.pp b/spec/fixtures/unit/parser/lexer/hash.pp
new file mode 100644
index 000000000..d33249872
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/hash.pp
@@ -0,0 +1,33 @@
+
+$hash = { "file" => "/tmp/myhashfile1" }
+
+file {
+ $hash["file"]:
+ ensure => file, content => "content";
+}
+
+$hash2 = { "a" => { key => "/tmp/myhashfile2" }}
+
+file {
+ $hash2["a"][key]:
+ ensure => file, content => "content";
+}
+
+define test($a = { "b" => "c" }) {
+ file {
+ $a["b"]:
+ ensure => file, content => "content"
+ }
+}
+
+test {
+ "test":
+ a => { "b" => "/tmp/myhashfile3" }
+}
+
+$hash3 = { mykey => "/tmp/myhashfile4" }
+$key = "mykey"
+
+file {
+ $hash3[$key]: ensure => file, content => "content"
+}
diff --git a/spec/fixtures/unit/parser/lexer/ifexpression.pp b/spec/fixtures/unit/parser/lexer/ifexpression.pp
new file mode 100644
index 000000000..29a637291
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/ifexpression.pp
@@ -0,0 +1,12 @@
+$one = 1
+$two = 2
+
+if ($one < $two) and (($two < 3) or ($two == 2)) {
+ notice("True!")
+}
+
+if "test regex" =~ /(.*) regex/ {
+ file {
+ "/tmp/${1}iftest": ensure => file, mode => 0755
+ }
+}
diff --git a/spec/fixtures/unit/parser/lexer/implicititeration.pp b/spec/fixtures/unit/parser/lexer/implicititeration.pp
new file mode 100644
index 000000000..6f34cb29c
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/implicititeration.pp
@@ -0,0 +1,15 @@
+# $Id$
+
+$files = ["/tmp/iterationatest", "/tmp/iterationbtest"]
+
+file { $files: ensure => file, mode => 755 }
+
+file { ["/tmp/iterationctest", "/tmp/iterationdtest"]:
+ ensure => file,
+ mode => 755
+}
+
+file {
+ ["/tmp/iterationetest", "/tmp/iterationftest"]: ensure => file, mode => 755;
+ ["/tmp/iterationgtest", "/tmp/iterationhtest"]: ensure => file, mode => 755;
+}
diff --git a/spec/fixtures/unit/parser/lexer/multilinecomments.pp b/spec/fixtures/unit/parser/lexer/multilinecomments.pp
new file mode 100644
index 000000000..f9819c020
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/multilinecomments.pp
@@ -0,0 +1,10 @@
+
+/*
+file {
+ "/tmp/multilinecomments": content => "pouet"
+}
+*/
+
+/* and another one for #2333, the whitespace after the
+end comment is here on purpose */
+
diff --git a/spec/fixtures/unit/parser/lexer/multipleclass.pp b/spec/fixtures/unit/parser/lexer/multipleclass.pp
new file mode 100644
index 000000000..ae02edc38
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/multipleclass.pp
@@ -0,0 +1,9 @@
+class one {
+ file { "/tmp/multipleclassone": content => "one" }
+}
+
+class one {
+ file { "/tmp/multipleclasstwo": content => "two" }
+}
+
+include one
diff --git a/spec/fixtures/unit/parser/lexer/multipleinstances.pp b/spec/fixtures/unit/parser/lexer/multipleinstances.pp
new file mode 100644
index 000000000..2f9b3c2e8
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/multipleinstances.pp
@@ -0,0 +1,7 @@
+# $Id$
+
+file {
+ "/tmp/multipleinstancesa": ensure => file, mode => 755;
+ "/tmp/multipleinstancesb": ensure => file, mode => 755;
+ "/tmp/multipleinstancesc": ensure => file, mode => 755;
+}
diff --git a/spec/fixtures/unit/parser/lexer/multisubs.pp b/spec/fixtures/unit/parser/lexer/multisubs.pp
new file mode 100644
index 000000000..bcec69e2a
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/multisubs.pp
@@ -0,0 +1,13 @@
+class base {
+ file { "/tmp/multisubtest": content => "base", mode => 644 }
+}
+
+class sub1 inherits base {
+ File["/tmp/multisubtest"] { mode => 755 }
+}
+
+class sub2 inherits base {
+ File["/tmp/multisubtest"] { content => sub2 }
+}
+
+include sub1, sub2
diff --git a/spec/fixtures/unit/parser/lexer/namevartest.pp b/spec/fixtures/unit/parser/lexer/namevartest.pp
new file mode 100644
index 000000000..dbee1c356
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/namevartest.pp
@@ -0,0 +1,9 @@
+define filetest($mode, $ensure = file) {
+ file { $name:
+ mode => $mode,
+ ensure => $ensure
+ }
+}
+
+filetest { "/tmp/testfiletest": mode => 644}
+filetest { "/tmp/testdirtest": mode => 755, ensure => directory}
diff --git a/spec/fixtures/unit/parser/lexer/scopetest.pp b/spec/fixtures/unit/parser/lexer/scopetest.pp
new file mode 100644
index 000000000..331491766
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/scopetest.pp
@@ -0,0 +1,13 @@
+
+$mode = 640
+
+define thing {
+ file { "/tmp/$name": ensure => file, mode => $mode }
+}
+
+class testing {
+ $mode = 755
+ thing {scopetest: }
+}
+
+include testing
diff --git a/spec/fixtures/unit/parser/lexer/selectorvalues.pp b/spec/fixtures/unit/parser/lexer/selectorvalues.pp
new file mode 100644
index 000000000..d80d26c36
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/selectorvalues.pp
@@ -0,0 +1,49 @@
+$value1 = ""
+$value2 = true
+$value3 = false
+$value4 = yay
+
+$test = "yay"
+
+$mode1 = $value1 ? {
+ "" => 755,
+ default => 644
+}
+
+$mode2 = $value2 ? {
+ true => 755,
+ default => 644
+}
+
+$mode3 = $value3 ? {
+ false => 755,
+ default => 644
+}
+
+$mode4 = $value4 ? {
+ $test => 755,
+ default => 644
+}
+
+$mode5 = yay ? {
+ $test => 755,
+ default => 644
+}
+
+$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/spec/fixtures/unit/parser/lexer/simpledefaults.pp b/spec/fixtures/unit/parser/lexer/simpledefaults.pp
new file mode 100644
index 000000000..63d199a68
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/simpledefaults.pp
@@ -0,0 +1,5 @@
+# $Id$
+
+File { mode => 755 }
+
+file { "/tmp/defaulttest": ensure => file }
diff --git a/spec/fixtures/unit/parser/lexer/simpleselector.pp b/spec/fixtures/unit/parser/lexer/simpleselector.pp
new file mode 100644
index 000000000..8b9bc7292
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/simpleselector.pp
@@ -0,0 +1,38 @@
+# $Id$
+
+$var = "value"
+
+file { "/tmp/snippetselectatest":
+ ensure => file,
+ mode => $var ? {
+ nottrue => 641,
+ value => 755
+ }
+}
+
+file { "/tmp/snippetselectbtest":
+ ensure => file,
+ mode => $var ? {
+ nottrue => 644,
+ default => 755
+ }
+}
+
+$othervar = "complex value"
+
+file { "/tmp/snippetselectctest":
+ ensure => file,
+ mode => $othervar ? {
+ "complex value" => 755,
+ default => 644
+ }
+}
+$anothervar = Yayness
+
+file { "/tmp/snippetselectdtest":
+ ensure => file,
+ mode => $anothervar ? {
+ Yayness => 755,
+ default => 644
+ }
+}
diff --git a/spec/fixtures/unit/parser/lexer/singleary.pp b/spec/fixtures/unit/parser/lexer/singleary.pp
new file mode 100644
index 000000000..9ce56dd89
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/singleary.pp
@@ -0,0 +1,19 @@
+# $Id$
+
+file { "/tmp/singleary1":
+ ensure => file
+}
+
+file { "/tmp/singleary2":
+ ensure => file
+}
+
+file { "/tmp/singleary3":
+ ensure => file,
+ require => [File["/tmp/singleary1"], File["/tmp/singleary2"]]
+}
+
+file { "/tmp/singleary4":
+ ensure => file,
+ require => [File["/tmp/singleary1"]]
+}
diff --git a/spec/fixtures/unit/parser/lexer/singlequote.pp b/spec/fixtures/unit/parser/lexer/singlequote.pp
new file mode 100644
index 000000000..dc876a2f8
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/singlequote.pp
@@ -0,0 +1,11 @@
+# $Id$
+
+file { "/tmp/singlequote1":
+ ensure => file,
+ content => 'a $quote'
+}
+
+file { "/tmp/singlequote2":
+ ensure => file,
+ content => 'some "\yayness\"'
+}
diff --git a/spec/fixtures/unit/parser/lexer/singleselector.pp b/spec/fixtures/unit/parser/lexer/singleselector.pp
new file mode 100644
index 000000000..520a14017
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/singleselector.pp
@@ -0,0 +1,22 @@
+$value1 = ""
+$value2 = true
+$value3 = false
+$value4 = yay
+
+$test = "yay"
+
+$mode1 = $value1 ? {
+ "" => 755
+}
+
+$mode2 = $value2 ? {
+ true => 755
+}
+
+$mode3 = $value3 ? {
+ default => 755
+}
+
+file { "/tmp/singleselector1": ensure => file, mode => $mode1 }
+file { "/tmp/singleselector2": ensure => file, mode => $mode2 }
+file { "/tmp/singleselector3": ensure => file, mode => $mode3 }
diff --git a/spec/fixtures/unit/parser/lexer/subclass_name_duplication.pp b/spec/fixtures/unit/parser/lexer/subclass_name_duplication.pp
new file mode 100755
index 000000000..10f1d75ed
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/subclass_name_duplication.pp
@@ -0,0 +1,11 @@
+#!/usr/bin/env puppet
+
+class one::fake {
+ file { "/tmp/subclass_name_duplication1": ensure => present }
+}
+
+class two::fake {
+ file { "/tmp/subclass_name_duplication2": ensure => present }
+}
+
+include one::fake, two::fake
diff --git a/spec/fixtures/unit/parser/lexer/tag.pp b/spec/fixtures/unit/parser/lexer/tag.pp
new file mode 100644
index 000000000..e6e770dd9
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/tag.pp
@@ -0,0 +1,9 @@
+# $Id$
+
+$variable = value
+
+tag yayness, rahness
+
+tag booness, $variable
+
+file { "/tmp/settestingness": ensure => file }
diff --git a/spec/fixtures/unit/parser/lexer/tagged.pp b/spec/fixtures/unit/parser/lexer/tagged.pp
new file mode 100644
index 000000000..7bf90a645
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/tagged.pp
@@ -0,0 +1,35 @@
+# $Id$
+
+tag testing
+tag(funtest)
+
+class tagdefine {
+ $path = tagged(tagdefine) ? {
+ true => "true", false => "false"
+ }
+
+ file { "/tmp/taggeddefine$path": ensure => file }
+}
+
+include tagdefine
+
+$yayness = tagged(yayness) ? {
+ true => "true", false => "false"
+}
+
+$funtest = tagged(testing) ? {
+ true => "true", false => "false"
+}
+
+$both = tagged(testing, yayness) ? {
+ true => "true", false => "false"
+}
+
+$bothtrue = tagged(testing, testing) ? {
+ true => "true", false => "false"
+}
+
+file { "/tmp/taggedyayness$yayness": ensure => file }
+file { "/tmp/taggedtesting$funtest": ensure => file }
+file { "/tmp/taggedboth$both": ensure => file }
+file { "/tmp/taggedbothtrue$bothtrue": ensure => file }
diff --git a/spec/fixtures/unit/parser/lexer/virtualresources.pp b/spec/fixtures/unit/parser/lexer/virtualresources.pp
new file mode 100644
index 000000000..a29406b84
--- /dev/null
+++ b/spec/fixtures/unit/parser/lexer/virtualresources.pp
@@ -0,0 +1,14 @@
+class one {
+ @file { "/tmp/virtualtest1": content => "one" }
+ @file { "/tmp/virtualtest2": content => "two" }
+ @file { "/tmp/virtualtest3": content => "three" }
+ @file { "/tmp/virtualtest4": content => "four" }
+}
+
+class two {
+ File <| content == "one" |>
+ realize File["/tmp/virtualtest2"]
+ realize(File["/tmp/virtualtest3"], File["/tmp/virtualtest4"])
+}
+
+include one, two