summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorSteve Kemp <steve@steve.org.uk>2012-11-15 08:17:13 +0000
committerSteve Kemp <steve@steve.org.uk>2012-11-15 08:17:13 +0000
commitd896e42306c5c7761a14a2d88b6d2ed04401b03c (patch)
tree6689009b26dc65f6a0f8604d1ae84613cc22cb3a /t
parent6c78bd44932582c29ca04f826c21e3ede81dd898 (diff)
Throw an exception if we attempt to redefine a macro.
Diffstat (limited to 't')
-rwxr-xr-xt/test-parser.rb36
1 files changed, 35 insertions, 1 deletions
diff --git a/t/test-parser.rb b/t/test-parser.rb
index c3e782f..f405433 100755
--- a/t/test-parser.rb
+++ b/t/test-parser.rb
@@ -57,7 +57,6 @@ class TestParser < Test::Unit::TestCase
assert_nothing_raised do
MonitorConfig.new("/dev/null" )
end
-
end
@@ -171,6 +170,41 @@ class TestParser < Test::Unit::TestCase
+ #
+ # Redefinining a macro should cause an error
+ #
+ def test_duplicate_macro
+
+
+ #
+ # Create the parser.
+ #
+ parser = MonitorConfig.new("/dev/null" )
+
+
+ #
+ # With nothing loaded we should have zero macros - so the
+ # count of our macros hash should be zero
+ #
+ macros = parser.macros
+ assert( macros.empty? )
+ assert( macros.size() == 0 )
+
+
+ #
+ # Define a macro twice. The first will work, the second will fail
+ #
+ assert_nothing_raised do
+ parser.define_macro( "FOO is kvm1.vm.bytemark.co.uk and kvm2.vm.bytemark.co.uk." )
+ end
+
+ assert_raise ArgumentError do
+ parser.define_macro( "FOO is kvm1.vm.bytemark.co.uk and kvm2.vm.bytemark.co.uk." )
+ end
+ end
+
+
+
#
# Test that we can define macros with only a single host.