mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Add more kernel tests
This commit is contained in:
+132
-9
@@ -7,13 +7,20 @@ end
|
||||
|
||||
assert('Kernel.block_given?', '15.3.1.2.2') do
|
||||
def bg_try(&b)
|
||||
if block_given?
|
||||
if Kernel.block_given?
|
||||
yield
|
||||
else
|
||||
"no block"
|
||||
end
|
||||
end
|
||||
(Kernel.block_given? == false) && (bg_try == "no block") && ((bg_try { "block" }) == "block") && ((bg_try do "block" end) == "block")
|
||||
|
||||
(Kernel.block_given? == false) and
|
||||
# test without block
|
||||
(bg_try == "no block") and
|
||||
# test with block
|
||||
((bg_try { "block" }) == "block") and
|
||||
# test with block
|
||||
((bg_try do "block" end) == "block")
|
||||
end
|
||||
|
||||
assert('Kernel.global_variables', '15.3.1.2.4') do
|
||||
@@ -32,6 +39,11 @@ assert('Kernel.lambda', '15.3.1.2.6') do
|
||||
l.call and l.class == Proc
|
||||
end
|
||||
|
||||
# Not implemented at the moment
|
||||
#assert('Kernel.local_variables', '15.3.1.2.7') do
|
||||
# Kernel.local_variables.class == Array
|
||||
#end
|
||||
|
||||
assert('Kernel.loop', '15.3.1.2.8') do
|
||||
i = 0
|
||||
|
||||
@@ -58,17 +70,61 @@ assert('Kernel.puts', '15.3.1.2.11') do
|
||||
true
|
||||
end
|
||||
|
||||
# TODO fails at the moment without arguments
|
||||
assert('Kernel.raise', '15.3.1.2.12') do
|
||||
e_list = []
|
||||
|
||||
begin
|
||||
raise RuntimeError.new
|
||||
Kernel.raise
|
||||
rescue => e
|
||||
e_list << e
|
||||
end
|
||||
|
||||
e_list[0].class == RuntimeError
|
||||
begin
|
||||
Kernel.raise RuntimeError.new
|
||||
rescue => e
|
||||
e_list << e
|
||||
end
|
||||
|
||||
# result without argument
|
||||
e_list[0].class == RuntimeError and
|
||||
# result with RuntimeError argument
|
||||
e_list[1].class == RuntimeError
|
||||
end
|
||||
|
||||
assert('Kernel#__id__', '15.3.1.3.3') do
|
||||
__id__.class == Fixnum
|
||||
end
|
||||
|
||||
assert('Kernel#__send__', '15.3.1.3.4') do
|
||||
# test with block
|
||||
l = __send__(:lambda) do
|
||||
true
|
||||
end
|
||||
|
||||
l.call and l.class == Proc and
|
||||
# test with argument
|
||||
__send__(:respond_to?, :nil?) and
|
||||
# test without argument and without block
|
||||
__send__(:public_methods).class == Array
|
||||
end
|
||||
|
||||
assert('Kernel#block_given?', '15.3.1.3.6') do
|
||||
def bg_try(&b)
|
||||
if block_given?
|
||||
yield
|
||||
else
|
||||
"no block"
|
||||
end
|
||||
end
|
||||
|
||||
(block_given? == false) and
|
||||
(bg_try == "no block") and
|
||||
((bg_try { "block" }) == "block") and
|
||||
((bg_try do "block" end) == "block")
|
||||
end
|
||||
|
||||
assert('Kernel#class', '15.3.1.3.7') do
|
||||
Kernel.class == Module
|
||||
end
|
||||
|
||||
assert('Kernel#clone', '15.3.1.3.8') do
|
||||
@@ -95,8 +151,10 @@ assert('Kernel#clone', '15.3.1.3.8') do
|
||||
a.set(2)
|
||||
c = a.clone
|
||||
|
||||
a.get == 2 && b.get == 1 && c.get == 2 &&
|
||||
a.respond_to?(:test) == true && b.respond_to?(:test) == false && c.respond_to?(:test) == true
|
||||
a.get == 2 and b.get == 1 and c.get == 2 &&
|
||||
a.respond_to?(:test) == true and
|
||||
b.respond_to?(:test) == false and
|
||||
c.respond_to?(:test) == true
|
||||
end
|
||||
|
||||
assert('Kernel#dup', '15.3.1.3.9') do
|
||||
@@ -123,14 +181,53 @@ assert('Kernel#dup', '15.3.1.3.9') do
|
||||
a.set(2)
|
||||
c = a.dup
|
||||
|
||||
a.get == 2 && b.get == 1 && c.get == 2 &&
|
||||
a.respond_to?(:test) == true && b.respond_to?(:test) == false && c.respond_to?(:test) == false
|
||||
a.get == 2 and b.get == 1 and c.get == 2 and
|
||||
a.respond_to?(:test) == true and
|
||||
b.respond_to?(:test) == false and
|
||||
c.respond_to?(:test) == false
|
||||
end
|
||||
|
||||
assert('global_variables', '15.3.1.3.14') do
|
||||
global_variables.class == Array
|
||||
end
|
||||
|
||||
assert('Kernel#hash', '15.3.1.3.15') do
|
||||
hash == hash
|
||||
end
|
||||
|
||||
assert('inspect', '15.3.1.3.17') do
|
||||
inspect.class == String
|
||||
end
|
||||
|
||||
assert('Kernel#instance_variables', '15.3.1.3.23') do
|
||||
instance_variables.class == Array
|
||||
end
|
||||
|
||||
assert('Kernel#is_a?', '15.3.1.3.24') do
|
||||
is_a?(Kernel) and not is_a?(Array)
|
||||
end
|
||||
|
||||
assert('Kernel#iterator?', '15.3.1.3.25') do
|
||||
iterator? == false
|
||||
end
|
||||
|
||||
assert('Kernel#kind_of?', '15.3.1.3.26') do
|
||||
kind_of?(Kernel) and not kind_of?(Array)
|
||||
end
|
||||
|
||||
assert('Kernel#lambda', '15.3.1.3.27') do
|
||||
l = lambda do
|
||||
true
|
||||
end
|
||||
|
||||
l.call and l.class == Proc
|
||||
end
|
||||
|
||||
# Not implemented yet
|
||||
#assert('Kernel#local_variables', '15.3.1.3.28') do
|
||||
# local_variables.class == Array
|
||||
#end
|
||||
|
||||
assert('Kernel#loop', '15.3.1.3.29') do
|
||||
i = 0
|
||||
|
||||
@@ -150,6 +247,10 @@ assert('Kernel#nil?', '15.3.1.3.32') do
|
||||
nil.nil? == true
|
||||
end
|
||||
|
||||
assert('Kernel#object_id', '15.3.1.3.33') do
|
||||
object_id.class == Fixnum
|
||||
end
|
||||
|
||||
assert('Kernel#private_methods', '15.3.1.3.36') do
|
||||
private_methods.class == Array
|
||||
end
|
||||
@@ -162,6 +263,27 @@ assert('Kernel#public_methods', '15.3.1.3.38') do
|
||||
public_methods.class == Array
|
||||
end
|
||||
|
||||
assert('Kernel.raise', '15.3.1.3.40') do
|
||||
e_list = []
|
||||
|
||||
begin
|
||||
raise
|
||||
rescue => e
|
||||
e_list << e
|
||||
end
|
||||
|
||||
begin
|
||||
raise RuntimeError.new
|
||||
rescue => e
|
||||
e_list << e
|
||||
end
|
||||
|
||||
# result without argument
|
||||
e_list[0].class == RuntimeError and
|
||||
# result with RuntimeError argument
|
||||
e_list[1].class == RuntimeError
|
||||
end
|
||||
|
||||
assert('Kernel#respond_to?', '15.3.1.3.43') do
|
||||
respond_to? :nil?
|
||||
end
|
||||
@@ -171,6 +293,7 @@ assert('Kernel#send', '15.3.1.3.44') do
|
||||
l = send(:lambda) do
|
||||
true
|
||||
end
|
||||
|
||||
l.call and l.class == Proc and
|
||||
# test with argument
|
||||
send(:respond_to?, :nil?) and
|
||||
|
||||
Reference in New Issue
Block a user