summaryrefslogtreecommitdiffstats
path: root/test/language/scope.rb
Commit message (Collapse)AuthorAgeFilesLines
* Switching to LoadedCode from ASTSetLuke Kanies2009-07-051-3/+3
| | | | | | | | I also took the opportunity to clean up and simplify the interface to the parts of the parser that interact with this. Mostly it was method renames. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixing #2336 - qualified variables only throw warningsLuke Kanies2009-06-111-50/+0
| | | | | | | | | We were previously throwing exceptions. This also ports all of the tests for variable lookup over to rspec. Signed-off-by: Luke Kanies <luke@madstop.com>
* Removed extra whitespace from end of linesIan Taylor2009-06-061-2/+2
|
* Fix snippets tests failing because of activated storeconfigsBrice Figureau2009-05-151-0/+7
| | | | | | | | | All the snippets tests were failing because some parser and scope tests activated storeconfigs without reseting the state. Activating storeconfigs is not undoable at the moment by just setting storeconfig=false as some terminus are changed. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Fix some master failing testsBrice Figureau2009-05-151-1/+1
| | | | Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Fixing tests that apparently only worked sometimesLuke Kanies2009-04-221-0/+2
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Add testing for the changes to resolve redmine #1427, where Kernel methods ↵Daniel Pittman2008-08-011-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | shadow variables that the puppet template should otherwise see. Specific changes: * Added testing of the Scope#to_hash method, which returns a hash of name and value pairs in a scope or, optionally, in the scope and enclosing scopes. * Use member variables rather than methods in the function tests. * Fix up tests that fail once we move over to instance variables rather than methods: Puppet can no longer detect an undefined variable reference, so we end up failing any test that expected to get a parser error. * Several tests have manual checks introduced to simulate an end user manually writing the checks that used to be automatic, and others drop the validation that parsing fails when a variable is not in scope. * Added tests for legacy variable lookup and that the shadowing of local variables by Kernel methods is still in effect. Signed-off-by: Daniel Pittman <daniel@rimspace.net> (cherry picked from commit 5c5f315cceadc52203e53883b77bc01c1d7a2e7f)
* Fixed #997 -- virtual defined types are no longer evaluated.Luke Kanies2008-02-121-25/+9
| | | | | | | NOTE: This introduces a behaviour change, in that you previously could realize a resource within a virtual defined resource, and now you must realize the entire defined resource, rather than just the contained resource.
* Changing the name of the Compile class to Compiler,Luke Kanies2008-02-111-9/+9
| | | | | since it's stupid to have a class named after a verb.
* Converting the Compile class to use a Node::Catalog instanceLuke Kanies2008-02-111-1/+1
| | | | | as its resource container, instead of having its own behaviour around resource uniqueness.
* Refactoring the AST classes just a bit. I realized thatLuke Kanies2008-02-081-2/+2
| | | | | | all of the evaluate() methods only ever accepted a scope, and sometimes one other option, so I switched them all to use named arguments instead of a hash.
* Theoretically, this patch is to fix #917 (which it does), butLuke Kanies2007-11-281-1/+1
| | | | | | | | | | | | | | | | | | | there were enough problems fixing it that I decided something more drastic needed to be done. This uses the new Puppet::ResourceReference class to canonize what a resource reference looks like and how to retrieve resources via their references. Specifically, it guarantees that resource types are always capitalized, even when they include '::' in them. While many files are modified in this commit, the majority of changes are quite small, and most of the changes are fixing the tests to use capitalized types. As we look at consolidating some of our resource types, we could consolidate the ResourceReference stuff at the same time, but at least the Puppet::Parser::ResourceReference class subclasses the main Puppet::ResourceReference class.
* Changing the test/ classes so that they work from the mainLuke Kanies2007-10-261-1/+1
| | | | | | test/ dir or from their own working dir, like the specs do. This was just a question of changing how their libraries are loaded.
* Adding a :code setting for specifying code to runLuke Kanies2007-10-051-9/+2
| | | | | | | | instead of a manifest, and removing all of the ambiguity around whether an interpreter gets its own file specified or uses the central setting. Most of the changes are around fixing existing tests to use this new system.
* Removing the Id tags from all of the filesLuke Kanies2007-10-031-1/+0
|
* *Finally* fixing the tests that were failing around users and groups. The ↵Luke Kanies2007-09-071-5/+5
| | | | problem was that the autoload tests were somehow clearing all loaded classes, including the providers. This is fixed now.
* Flipped the switch so that compiles now return a Configuration instance ↵Luke Kanies2007-09-041-4/+4
| | | | instead of pre-extracting the configuration.
* Successfully modified all tests and code so that all language tests pass ↵Luke Kanies2007-09-041-79/+13
| | | | again. This is the majority of the work necessary to make the separate "configuration" object work.
* We now have a real configuration object, as a subclass of GRATR::Digraph, ↵Luke Kanies2007-09-041-14/+0
| | | | that has a resource graph including resources for the container objects like classes and nodes. It is apparently functional, but I have not gone through all of the other tests to fix them yet. That is next.
* More refactoring. I have removed a few more extraneous methods from Scope, ↵Luke Kanies2007-09-031-43/+4
| | | | mostly just pointing directly to the compile, and I have begun (but commented out) the move to having resources to model each of the classes and nodes, in addition to the definitions. This will, again, enable a real Configuration object, and it will enable class versioning and similar features.
* All language tests now pass. I expect there are other failures elsewhere, ↵Luke Kanies2007-08-201-178/+68
| | | | but I want to commit this before delving into them. My method for fixing the tests was to do as little as possible, keeping the tests as bad or as good as they were before I started. Mostly this was about changing references to the interpreter into references to the parser (since that is where the new* methods are now for ast containers) and then dealing with the new config object and its relationship to scopes.
* The first pass where at least all of the snippet tests pass. I have ↵Luke Kanies2007-08-201-144/+106
| | | | unfortunately had to stop being so assiduous in my rewriting of tests, but I am in too much of a time crunch to do this "right". The basic structure is definitely in place, though, and from here it is a question of making the rest of the tests work and hopefully writing some sufficient new tests, rather than making the code itself work.
* Fixing #620 - class names and node names now throw an error when they conflictluke2007-07-041-4/+24
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2646 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing #566 -- definitions, tags, and classes can now be single charactersluke2007-05-171-1/+1
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2523 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding #629 -- an undef keyword now existsluke2007-05-171-0/+15
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2522 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing #615 (subclasses with similar names) by getting rid of the class ↵luke2007-05-031-1/+1
| | | | | | "type" and "fqname", and instead using "classname" everywhere. You should no longer see unqualified class/definition names anywhere. Also, rewriting how snippet tests work, to avoid creating all of the files, since the point was the parsing tests, not functional tests. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2458 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing #603 -- I had to add a special case for escaped carriage returns. I ↵luke2007-04-261-0/+1
| | | | | | am not entirely sure this is the right solution, but so be it. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2418 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding the functionality requested in ↵luke2007-04-191-6/+84
| | | | | | | | | | http://mail.madstop.com/pipermail/puppet-users/2007-April/002398.html . You can now retrieve qualified variables by specifying the full class path. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2393 980ebf18-57e1-0310-9a29-db15c13687c0
* Applying a modified form of the patch by cstorey from #523. The ↵luke2007-02-281-20/+33
| | | | | | modifications were mostly around the fact that Strscan does not set $1 and its ilk. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2239 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing #517 and more. Classes now support more than one namespace in their ↵luke2007-02-271-0/+61
| | | | | | search path, parent classes automatically have their namespaces added to subclass namespaces, and (huzzah) there is a "search" function that can be used to add new namespaces into their search path. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2226 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing #472. Apparently this has been broken since I did the parser ↵luke2007-02-221-0/+5
| | | | | | redesign. I had to fix the scope trees so that subclass scopes are subscopes of the parent scopes, which used to be the case but was far more complicated. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2220 980ebf18-57e1-0310-9a29-db15c13687c0
* Moving all of the client and server code into a single network/ directory. ↵luke2007-02-081-1/+1
| | | | | | In other words, more code structure cleanup. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2179 980ebf18-57e1-0310-9a29-db15c13687c0
* A couple of small fixes to pass existing tests.luke2007-01-011-1/+0
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2012 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing the test scripts so that the library pathluke2006-10-161-1/+3
| | | | | | is modified in ruby instead of in the env line git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1793 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding a ruby header to all of the tests so that they can now be executed as ↵luke2006-10-161-1/+1
| | | | | | normal ruby scripts. Using multiple commits because I am having some svn problems. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1791 980ebf18-57e1-0310-9a29-db15c13687c0
* Merging the changes from the override-refactor branch. This is a ↵luke2006-10-041-542/+218
| | | | | | significant rewrite of the parser, but it has little affect on the rest of the code tree. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1726 980ebf18-57e1-0310-9a29-db15c13687c0
* Converting to using the Rakefile for testing. The old 'test' script isluke2006-09-191-8/+1
| | | | | | | | | | | | | now deprecated, and I'll send an email to the dev list and update the docs to reflect that. This still isn't the final solution, because the module structure is a bit weird, but at least it's a starting point, and everything from here on out is small changes, as opposed to large architectural changes. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1632 980ebf18-57e1-0310-9a29-db15c13687c0
* Committing definition inheritance. I have not yet written tests yet, but my ↵luke2006-08-221-0/+50
| | | | | | last commit pretty seriously broke some things without me realizing it, so I wanted to get this in. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1484 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding "if/else" constructs. No operators, no elsif, but it is a good ↵luke2006-08-221-0/+12
| | | | | | start, anyway. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1483 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing #163. Strings can now correctly escape dollar signs.luke2006-06-051-0/+10
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1234 980ebf18-57e1-0310-9a29-db15c13687c0
* adding a test to make sure that defaults get taken up by componentsluke2006-05-151-0/+32
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1199 980ebf18-57e1-0310-9a29-db15c13687c0
* only performing collection tests if activerecord is availableluke2006-05-151-0/+4
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1197 980ebf18-57e1-0310-9a29-db15c13687c0
* I believe I have finalized export/collection support. I still want to go ↵luke2006-05-151-5/+15
| | | | | | through all of the code and s/collectable/exported/g (thanks to womble for that term). git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1193 980ebf18-57e1-0310-9a29-db15c13687c0
* I had to redo how the scopes handled collectable objects (which I will soon ↵luke2006-05-141-3/+85
| | | | | | change to being called "exported objects"). All seems to work now, though. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1192 980ebf18-57e1-0310-9a29-db15c13687c0
* The "collectable" syntax now works end-to-end -- the parser correctly ↵luke2006-05-131-0/+55
| | | | | | recognizes it, the AST objects retain the settings, the scopes do the right conversion, the interpreter stores them all in the database, and then it strips the collectable objects out before sending the object list to the client git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1189 980ebf18-57e1-0310-9a29-db15c13687c0
* Preliminary commit of the first phase of the parser redesign. The biggest ↵luke2006-05-091-13/+15
| | | | | | difference is that overrides should now work for definitions (although i do not yet have a test case -- i will add one on the next commit). The way this is implemented is by having scopes translate themselves at eval time, but in two phases -- the first phase does the overrides, and the second phase does the evaluation of definitions and classes. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1180 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing a stupid bug i managed to introduce in 0.16.2 (probably) involving ↵luke2006-05-031-0/+3
| | | | | | importing files with classes in them. This is a better solution than what I had before the bug, anyway. Also, some documentation fixes. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1167 980ebf18-57e1-0310-9a29-db15c13687c0
* Allowing dashes in class names, although grammar rules restrict it from ↵luke2006-05-021-2/+2
| | | | | | working anywhere except node names or in tag(). They are valid in host names, and many companies have them in the host names; in fact, this fix is for a company with this exact problem -- they cannot use puppet with their nodes because all their hosts have dashes in the host names. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1165 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding "defined" functino to puppet, so you can now test whether a given ↵luke2006-04-261-0/+37
| | | | | | class or definition is defined. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1135 980ebf18-57e1-0310-9a29-db15c13687c0
* Creating a simplistic, generic function framework in the parser, so it is ↵luke2006-04-261-0/+59
| | | | | | now very easy to add new functions. There is a pretty crappy, hardwired distinction between functions that return values and those that do not, but I do not see a good way around it right now. Functions are also currently responsible for handling their own arity, although I have plans for fixing that. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1134 980ebf18-57e1-0310-9a29-db15c13687c0