summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/assert.rb3
-rw-r--r--test/t/kernel.rb3
-rw-r--r--test/t/nomethoderror.rb18
3 files changed, 22 insertions, 2 deletions
diff --git a/test/assert.rb b/test/assert.rb
index 5617e1e38..7efc24e19 100644
--- a/test/assert.rb
+++ b/test/assert.rb
@@ -44,7 +44,8 @@ def assert(str = 'Assertion failed', iso = '')
begin
$mrbtest_assert = []
$mrbtest_assert_idx = 0
- if(!yield || $mrbtest_assert.size > 0)
+ yield
+ if($mrbtest_assert.size > 0)
$asserts.push(assertion_string('Fail: ', str, iso, nil))
$ko_test += 1
t_print('F')
diff --git a/test/t/kernel.rb b/test/t/kernel.rb
index 42abed9df..ca4b73907 100644
--- a/test/t/kernel.rb
+++ b/test/t/kernel.rb
@@ -260,6 +260,8 @@ end
assert('Kernel#freeze') do
obj = Object.new
assert_equal obj, obj.freeze
+ assert_equal 0, 0.freeze
+ assert_equal :a, :a.freeze
end
assert('Kernel#global_variables', '15.3.1.3.14') do
@@ -620,4 +622,3 @@ assert('stack extend') do
assert_equal 6, recurse(0, 5)
end
-
diff --git a/test/t/nomethoderror.rb b/test/t/nomethoderror.rb
index 1c09bc20e..41a3ba14f 100644
--- a/test/t/nomethoderror.rb
+++ b/test/t/nomethoderror.rb
@@ -51,3 +51,21 @@ assert('Can still call super when BasicObject#method_missing is removed') do
end
end
end
+
+assert("NoMethodError#new does not return an exception") do
+ begin
+ class << NoMethodError
+ def new(*)
+ nil
+ end
+ end
+
+ assert_raise(TypeError) do
+ Object.q
+ end
+ ensure
+ class << NoMethodError
+ remove_method :new
+ end
+ end
+end