From f7328804d00d8a82d7ab3a955ff579ff956ef3d0 Mon Sep 17 00:00:00 2001 From: luke Date: Sat, 22 Oct 2005 22:27:20 +0000 Subject: Getting rid of the tc_ prefix to test cases git-svn-id: https://reductivelabs.com/svn/puppet/trunk@724 980ebf18-57e1-0310-9a29-db15c13687c0 --- test/parser/lexer.rb | 120 +++++++++++++++++++++++++++++++ test/parser/parser.rb | 180 +++++++++++++++++++++++++++++++++++++++++++++++ test/parser/tc_lexer.rb | 120 ------------------------------- test/parser/tc_parser.rb | 180 ----------------------------------------------- 4 files changed, 300 insertions(+), 300 deletions(-) create mode 100644 test/parser/lexer.rb create mode 100644 test/parser/parser.rb delete mode 100644 test/parser/tc_lexer.rb delete mode 100644 test/parser/tc_parser.rb (limited to 'test/parser') diff --git a/test/parser/lexer.rb b/test/parser/lexer.rb new file mode 100644 index 000000000..d37004ef3 --- /dev/null +++ b/test/parser/lexer.rb @@ -0,0 +1,120 @@ +if __FILE__ == $0 + $:.unshift '../../lib' + $:.unshift '..' + $puppetbase = "../.." +end + +require 'puppet' +require 'puppet/parser/lexer' +require 'test/unit' +require 'puppettest.rb' + +#%q{service("telnet") = \{ +# port => "23", +# protocol => "tcp", +# name => "telnet", +#\} +#} => [[:NAME, "service"], [:LPAREN, "("], [:DQUOTE, "\""], [:NAME, "telnet"], [:DQUOTE, "\""], [:RPAREN, ")"], [:EQUALS, "="], [:lbrace, "{"], [:NAME, "port"], [:FARROW, "=>"], [:DQUOTE, "\""], [:NAME, "23"], [:DQUOTE, "\""], [:COMMA, ","], [:NAME, "protocol"], [:FARROW, "=>"], [:DQUOTE, "\""], [:NAME, "tcp"], [:DQUOTE, "\""], [:COMMA, ","], [:NAME, "name"], [:FARROW, "=>"], [:DQUOTE, "\""], [:NAME, "telnet"], [:DQUOTE, "\""], [:COMMA, ","], [:RBRACE, "}"]] + +class TestLexer < Test::Unit::TestCase + include TestPuppet + def setup + super + @lexer = Puppet::Parser::Lexer.new() + end + + def test_simple_lex + strings = { +%q{\\} => [[:BACKSLASH,"\\"],[false,false]], +%q{simplest scanner test} => [[:NAME,"simplest"],[:NAME,"scanner"],[:NAME,"test"],[false,false]], +%q{returned scanner test +} => [[:NAME,"returned"],[:NAME,"scanner"],[:NAME,"test"],[false,false]] + } + strings.each { |str,ary| + @lexer.string = str + assert_equal( + ary, + @lexer.fullscan() + ) + } + end + + def test_quoted_strings + strings = { +%q{a simple "scanner" test +} => [[:NAME,"a"],[:NAME,"simple"],[:QTEXT,"scanner"],[:NAME,"test"],[false,false]], +%q{a harder "scanner test" +} => [[:NAME,"a"],[:NAME,"harder"],[:QTEXT,"scanner test"],[false,false]], +%q{a hardest "scanner \"test\"" +} => [[:NAME,"a"],[:NAME,"hardest"],[:QTEXT,'scanner "test"'],[false,false]], +%q{function("call")} => [[:NAME,"function"],[:LPAREN,"("],[:QTEXT,'call'],[:RPAREN,")"],[false,false]] +} + strings.each { |str,array| + @lexer.string = str + assert_equal( + array, + @lexer.fullscan() + ) + } + end + + def test_errors + strings = %w{ + ^ + @ + } + strings.each { |str| + @lexer.string = str + assert_raise(RuntimeError) { + @lexer.fullscan() + } + } + end + + def test_more_error + assert_raise(TypeError) { + @lexer.fullscan() + } + end + + def test_files + textfiles() { |file| + @lexer.file = file + assert_nothing_raised() { + @lexer.fullscan() + } + Puppet::Type.allclear + } + end + + def test_strings + names = %w{this is a bunch of names} + types = %w{Many Different Words A Word} + words = %w{differently Cased words A a} + + names.each { |t| + @lexer.string = t + assert_equal( + [[:NAME,t],[false,false]], + @lexer.fullscan + ) + } + types.each { |t| + @lexer.string = t + assert_equal( + [[:TYPE,t],[false,false]], + @lexer.fullscan + ) + } + end + + def test_emptystring + bit = '$var = ""' + + assert_nothing_raised { + @lexer.string = bit + } + end +end + +# $Id$ diff --git a/test/parser/parser.rb b/test/parser/parser.rb new file mode 100644 index 000000000..16ac0048b --- /dev/null +++ b/test/parser/parser.rb @@ -0,0 +1,180 @@ +if __FILE__ == $0 + $:.unshift '../../lib' + $:.unshift '..' + $puppetbase = "../.." +end + +require 'puppet' +require 'puppet/parser/parser' +require 'test/unit' +require 'puppettest' + +class TestParser < Test::Unit::TestCase + include TestPuppet + def setup + super + Puppet[:parseonly] = true + #@lexer = Puppet::Parser::Lexer.new() + @parser = Puppet::Parser::Parser.new() + end + + def test_each_file + textfiles { |file| + Puppet.debug("parsing %s" % file) if __FILE__ == $0 + assert_nothing_raised() { + @parser.file = file + @parser.parse + } + + Puppet::Type.eachtype { |type| + type.each { |obj| + assert(obj.file) + assert(obj.name) + assert(obj.line) + } + } + Puppet::Type.allclear + } + end + + def test_failers + failers { |file| + Puppet.debug("parsing failer %s" % file) if __FILE__ == $0 + assert_raise(Puppet::ParseError) { + @parser.file = file + @parser.parse + } + Puppet::Type.allclear + } + end + + def test_arrayrvalues + parser = Puppet::Parser::Parser.new() + ret = nil + assert_nothing_raised { + parser.string = 'file { "/tmp/testing": mode => [755, 640] }' + } + + assert_nothing_raised { + ret = parser.parse + } + end + + def mkmanifest(file) + name = File.join(tmpdir, "file%s" % rand(100)) + @@tmpfiles << name + + File.open(file, "w") { |f| + f.puts "file { \"%s\": create => true, mode => 755 }\n" % + name + } + end + + def test_importglobbing + basedir = File.join(tmpdir(), "importesting") + @@tmpfiles << basedir + Dir.mkdir(basedir) + + subdir = "subdir" + Dir.mkdir(File.join(basedir, subdir)) + manifest = File.join(basedir, "manifest") + File.open(manifest, "w") { |f| + f.puts "import \"%s/*\"" % subdir + } + + 4.times { |i| + path = File.join(basedir, subdir, "subfile%s" % i) + mkmanifest(path) + } + + assert_nothing_raised("Could not parse multiple files") { + parser = Puppet::Parser::Parser.new() + parser.file = manifest + parser.parse + } + end + + def test_zdefaults + basedir = File.join(tmpdir(), "defaulttesting") + @@tmpfiles << basedir + Dir.mkdir(basedir) + + defs1 = { + "testing" => "value" + } + + defs2 = { + "one" => "two", + "three" => "four", + "five" => false, + "seven" => "eight", + "nine" => true, + "eleven" => "twelve" + } + + mkdef = proc { |hash| + hash.collect { |arg, value| + "%s = %s" % [arg, value] + }.join(", ") + } + manifest = File.join(basedir, "manifest") + File.open(manifest, "w") { |f| + f.puts " + define method(#{mkdef.call(defs1)}, other) { + $variable = $testing + } + + define othermethod(#{mkdef.call(defs2)}, goodness) { + $more = less + } + + method { + other => yayness + } + + othermethod { + goodness => rahness + } +" + } + + ast = nil + assert_nothing_raised("Could not parse multiple files") { + parser = Puppet::Parser::Parser.new() + parser.file = manifest + ast = parser.parse + } + + assert(ast, "Did not receive AST while parsing defaults") + + scope = nil + assert_nothing_raised("Could not evaluate defaults parse tree") { + scope = Puppet::Parser::Scope.new() + objects = scope.evaluate(ast) + } + + method = nil + othermethod = nil + assert_nothing_raised { + method = scope.find { |child| + child.is_a?(Puppet::Parser::Scope) and child.type == "method" + } + defs1.each { |var, value| + curval = method.lookupvar(var) + assert_equal(value, curval, "Did not get default") + } + } + + assert_nothing_raised { + method = scope.find { |child| + child.is_a?(Puppet::Parser::Scope) and child.type == "othermethod" + } + defs2.each { |var, value| + curval = method.lookupvar(var) + assert_equal(value, curval, "Did not get default") + } + } + end +end + +# $Id$ diff --git a/test/parser/tc_lexer.rb b/test/parser/tc_lexer.rb deleted file mode 100644 index d37004ef3..000000000 --- a/test/parser/tc_lexer.rb +++ /dev/null @@ -1,120 +0,0 @@ -if __FILE__ == $0 - $:.unshift '../../lib' - $:.unshift '..' - $puppetbase = "../.." -end - -require 'puppet' -require 'puppet/parser/lexer' -require 'test/unit' -require 'puppettest.rb' - -#%q{service("telnet") = \{ -# port => "23", -# protocol => "tcp", -# name => "telnet", -#\} -#} => [[:NAME, "service"], [:LPAREN, "("], [:DQUOTE, "\""], [:NAME, "telnet"], [:DQUOTE, "\""], [:RPAREN, ")"], [:EQUALS, "="], [:lbrace, "{"], [:NAME, "port"], [:FARROW, "=>"], [:DQUOTE, "\""], [:NAME, "23"], [:DQUOTE, "\""], [:COMMA, ","], [:NAME, "protocol"], [:FARROW, "=>"], [:DQUOTE, "\""], [:NAME, "tcp"], [:DQUOTE, "\""], [:COMMA, ","], [:NAME, "name"], [:FARROW, "=>"], [:DQUOTE, "\""], [:NAME, "telnet"], [:DQUOTE, "\""], [:COMMA, ","], [:RBRACE, "}"]] - -class TestLexer < Test::Unit::TestCase - include TestPuppet - def setup - super - @lexer = Puppet::Parser::Lexer.new() - end - - def test_simple_lex - strings = { -%q{\\} => [[:BACKSLASH,"\\"],[false,false]], -%q{simplest scanner test} => [[:NAME,"simplest"],[:NAME,"scanner"],[:NAME,"test"],[false,false]], -%q{returned scanner test -} => [[:NAME,"returned"],[:NAME,"scanner"],[:NAME,"test"],[false,false]] - } - strings.each { |str,ary| - @lexer.string = str - assert_equal( - ary, - @lexer.fullscan() - ) - } - end - - def test_quoted_strings - strings = { -%q{a simple "scanner" test -} => [[:NAME,"a"],[:NAME,"simple"],[:QTEXT,"scanner"],[:NAME,"test"],[false,false]], -%q{a harder "scanner test" -} => [[:NAME,"a"],[:NAME,"harder"],[:QTEXT,"scanner test"],[false,false]], -%q{a hardest "scanner \"test\"" -} => [[:NAME,"a"],[:NAME,"hardest"],[:QTEXT,'scanner "test"'],[false,false]], -%q{function("call")} => [[:NAME,"function"],[:LPAREN,"("],[:QTEXT,'call'],[:RPAREN,")"],[false,false]] -} - strings.each { |str,array| - @lexer.string = str - assert_equal( - array, - @lexer.fullscan() - ) - } - end - - def test_errors - strings = %w{ - ^ - @ - } - strings.each { |str| - @lexer.string = str - assert_raise(RuntimeError) { - @lexer.fullscan() - } - } - end - - def test_more_error - assert_raise(TypeError) { - @lexer.fullscan() - } - end - - def test_files - textfiles() { |file| - @lexer.file = file - assert_nothing_raised() { - @lexer.fullscan() - } - Puppet::Type.allclear - } - end - - def test_strings - names = %w{this is a bunch of names} - types = %w{Many Different Words A Word} - words = %w{differently Cased words A a} - - names.each { |t| - @lexer.string = t - assert_equal( - [[:NAME,t],[false,false]], - @lexer.fullscan - ) - } - types.each { |t| - @lexer.string = t - assert_equal( - [[:TYPE,t],[false,false]], - @lexer.fullscan - ) - } - end - - def test_emptystring - bit = '$var = ""' - - assert_nothing_raised { - @lexer.string = bit - } - end -end - -# $Id$ diff --git a/test/parser/tc_parser.rb b/test/parser/tc_parser.rb deleted file mode 100644 index 16ac0048b..000000000 --- a/test/parser/tc_parser.rb +++ /dev/null @@ -1,180 +0,0 @@ -if __FILE__ == $0 - $:.unshift '../../lib' - $:.unshift '..' - $puppetbase = "../.." -end - -require 'puppet' -require 'puppet/parser/parser' -require 'test/unit' -require 'puppettest' - -class TestParser < Test::Unit::TestCase - include TestPuppet - def setup - super - Puppet[:parseonly] = true - #@lexer = Puppet::Parser::Lexer.new() - @parser = Puppet::Parser::Parser.new() - end - - def test_each_file - textfiles { |file| - Puppet.debug("parsing %s" % file) if __FILE__ == $0 - assert_nothing_raised() { - @parser.file = file - @parser.parse - } - - Puppet::Type.eachtype { |type| - type.each { |obj| - assert(obj.file) - assert(obj.name) - assert(obj.line) - } - } - Puppet::Type.allclear - } - end - - def test_failers - failers { |file| - Puppet.debug("parsing failer %s" % file) if __FILE__ == $0 - assert_raise(Puppet::ParseError) { - @parser.file = file - @parser.parse - } - Puppet::Type.allclear - } - end - - def test_arrayrvalues - parser = Puppet::Parser::Parser.new() - ret = nil - assert_nothing_raised { - parser.string = 'file { "/tmp/testing": mode => [755, 640] }' - } - - assert_nothing_raised { - ret = parser.parse - } - end - - def mkmanifest(file) - name = File.join(tmpdir, "file%s" % rand(100)) - @@tmpfiles << name - - File.open(file, "w") { |f| - f.puts "file { \"%s\": create => true, mode => 755 }\n" % - name - } - end - - def test_importglobbing - basedir = File.join(tmpdir(), "importesting") - @@tmpfiles << basedir - Dir.mkdir(basedir) - - subdir = "subdir" - Dir.mkdir(File.join(basedir, subdir)) - manifest = File.join(basedir, "manifest") - File.open(manifest, "w") { |f| - f.puts "import \"%s/*\"" % subdir - } - - 4.times { |i| - path = File.join(basedir, subdir, "subfile%s" % i) - mkmanifest(path) - } - - assert_nothing_raised("Could not parse multiple files") { - parser = Puppet::Parser::Parser.new() - parser.file = manifest - parser.parse - } - end - - def test_zdefaults - basedir = File.join(tmpdir(), "defaulttesting") - @@tmpfiles << basedir - Dir.mkdir(basedir) - - defs1 = { - "testing" => "value" - } - - defs2 = { - "one" => "two", - "three" => "four", - "five" => false, - "seven" => "eight", - "nine" => true, - "eleven" => "twelve" - } - - mkdef = proc { |hash| - hash.collect { |arg, value| - "%s = %s" % [arg, value] - }.join(", ") - } - manifest = File.join(basedir, "manifest") - File.open(manifest, "w") { |f| - f.puts " - define method(#{mkdef.call(defs1)}, other) { - $variable = $testing - } - - define othermethod(#{mkdef.call(defs2)}, goodness) { - $more = less - } - - method { - other => yayness - } - - othermethod { - goodness => rahness - } -" - } - - ast = nil - assert_nothing_raised("Could not parse multiple files") { - parser = Puppet::Parser::Parser.new() - parser.file = manifest - ast = parser.parse - } - - assert(ast, "Did not receive AST while parsing defaults") - - scope = nil - assert_nothing_raised("Could not evaluate defaults parse tree") { - scope = Puppet::Parser::Scope.new() - objects = scope.evaluate(ast) - } - - method = nil - othermethod = nil - assert_nothing_raised { - method = scope.find { |child| - child.is_a?(Puppet::Parser::Scope) and child.type == "method" - } - defs1.each { |var, value| - curval = method.lookupvar(var) - assert_equal(value, curval, "Did not get default") - } - } - - assert_nothing_raised { - method = scope.find { |child| - child.is_a?(Puppet::Parser::Scope) and child.type == "othermethod" - } - defs2.each { |var, value| - curval = method.lookupvar(var) - assert_equal(value, curval, "Did not get default") - } - } - end -end - -# $Id$ -- cgit