Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mruby
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Libraries
mruby
Commits
4bd527ce
Commit
4bd527ce
authored
Jun 15, 2013
by
Daniel Bovensiepen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improve Kernel Tests
parent
b1c309cc
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
106 additions
and
102 deletions
+106
-102
test/t/kernel.rb
test/t/kernel.rb
+106
-102
No files found.
test/t/kernel.rb
View file @
4bd527ce
...
...
@@ -2,7 +2,7 @@
# Kernel ISO Test
assert
(
'Kernel'
,
'15.3.1'
)
do
Kernel
.
class
==
Module
assert_equal
Kernel
.
class
,
Module
end
assert
(
'Kernel.block_given?'
,
'15.3.1.2.2'
)
do
...
...
@@ -14,23 +14,29 @@ assert('Kernel.block_given?', '15.3.1.2.2') do
end
end
(
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"
)
assert_false
Kernel
.
block_given?
# test without block
assert_equal
bg_try
,
"no block"
# test with block
assert_equal
"block"
do
bg_try
{
"block"
}
end
# test with block
assert_equal
"block"
do
bg_try
do
"block"
end
end
end
# Kernel.eval is provided by the mruby-gem mrbgem. '15.3.1.2.3'
assert
(
'Kernel.global_variables'
,
'15.3.1.2.4'
)
do
Kernel
.
global_variables
.
class
==
Array
assert_equal
Kernel
.
global_variables
.
class
,
Array
end
assert
(
'Kernel.iterator?'
,
'15.3.1.2.5'
)
do
Kernel
.
iterator?
==
false
assert_false
Kernel
.
iterator?
end
assert
(
'Kernel.lambda'
,
'15.3.1.2.6'
)
do
...
...
@@ -40,7 +46,10 @@ assert('Kernel.lambda', '15.3.1.2.6') do
m
=
Kernel
.
lambda
(
&
l
)
l
.
call
and
l
.
class
==
Proc
and
m
.
call
and
m
.
class
==
Proc
assert_true
l
.
call
assert_equal
l
.
class
,
Proc
assert_true
m
.
call
assert_equal
m
.
class
,
Proc
end
# Not implemented at the moment
...
...
@@ -56,47 +65,36 @@ assert('Kernel.loop', '15.3.1.2.8') do
break
if
i
==
100
end
i
==
100
assert_equal
i
,
100
end
assert
(
'Kernel.p'
,
'15.3.1.2.9'
)
do
# TODO search for a way to test p to stdio
true
assert_true
true
end
assert
(
'Kernel.print'
,
'15.3.1.2.10'
)
do
# TODO search for a way to test print to stdio
true
assert_true
true
end
assert
(
'Kernel.puts'
,
'15.3.1.2.11'
)
do
# TODO search for a way to test puts to stdio
true
assert_true
true
end
assert
(
'Kernel.raise'
,
'15.3.1.2.12'
)
do
e_list
=
[]
begin
assert_raise
RuntimeError
do
Kernel
.
raise
rescue
=>
e
e_list
<<
e
end
begin
assert_raise
RuntimeError
do
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
assert_equal
__id__
.
class
,
Fixnum
end
assert
(
'Kernel#__send__'
,
'15.3.1.3.4'
)
do
...
...
@@ -105,11 +103,12 @@ assert('Kernel#__send__', '15.3.1.3.4') 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
assert_true
l
.
call
assert_equal
l
.
class
,
Proc
# test with argument
assert_true
__send__
(
:respond_to?
,
:nil?
)
# test without argument and without block
assert_equal
__send__
(
:public_methods
).
class
,
Array
end
assert
(
'Kernel#block_given?'
,
'15.3.1.3.6'
)
do
...
...
@@ -121,14 +120,20 @@ assert('Kernel#block_given?', '15.3.1.3.6') do
end
end
(
block_given?
==
false
)
and
(
bg_try
==
"no block"
)
and
((
bg_try
{
"block"
})
==
"block"
)
and
((
bg_try
do
"block"
end
)
==
"block"
)
assert_false
block_given?
assert_equal
bg_try
,
"no block"
assert_equal
"block"
do
bg_try
{
"block"
}
end
assert_equal
"block"
do
bg_try
do
"block"
end
end
end
assert
(
'Kernel#class'
,
'15.3.1.3.7'
)
do
Kernel
.
class
==
Module
assert_equal
Kernel
.
class
,
Module
end
assert
(
'Kernel#clone'
,
'15.3.1.3.8'
)
do
...
...
@@ -165,10 +170,12 @@ assert('Kernel#clone', '15.3.1.3.8') do
end
end
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
assert_equal
a
.
get
,
2
assert_equal
b
.
get
,
1
assert_equal
c
.
get
,
2
assert_true
a
.
respond_to?
(
:test
)
assert_false
b
.
respond_to?
(
:test
)
assert_true
c
.
respond_to?
(
:test
)
end
assert
(
'Kernel#dup'
,
'15.3.1.3.9'
)
do
...
...
@@ -205,11 +212,13 @@ assert('Kernel#dup', '15.3.1.3.9') do
end
end
error_count
==
immutables
.
size
and
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
assert_equal
error_count
,
immutables
.
size
assert_equal
a
.
get
,
2
assert_equal
b
.
get
,
1
assert_equal
c
.
get
,
2
assert_true
a
.
respond_to?
(
:test
)
assert_false
b
.
respond_to?
(
:test
)
assert_false
c
.
respond_to?
(
:test
)
end
# Kernel#eval is provided by mruby-eval mrbgem '15.3.1.3.12'
...
...
@@ -226,7 +235,8 @@ assert('Kernel#extend', '15.3.1.3.13') do
a
.
extend
(
Test4ExtendModule
)
b
=
Test4ExtendClass
.
new
a
.
respond_to?
(
:test_method
)
==
true
&&
b
.
respond_to?
(
:test_method
)
==
false
assert_true
a
.
respond_to?
(
:test_method
)
assert_false
b
.
respond_to?
(
:test_method
)
end
assert
(
'Kernel#extend works on toplevel'
,
'15.3.1.3.13'
)
do
...
...
@@ -236,20 +246,22 @@ assert('Kernel#extend works on toplevel', '15.3.1.3.13') do
# This would crash...
extend
(
Test4ExtendModule
)
respond_to?
(
:test_method
)
==
true
assert_true
respond_to?
(
:test_method
)
end
assert
(
'Kernel#global_variables'
,
'15.3.1.3.14'
)
do
global_variables
.
class
==
Array
assert_equal
global_variables
.
class
,
Array
end
assert
(
'Kernel#hash'
,
'15.3.1.3.15'
)
do
hash
==
hash
assert_equal
hash
,
hash
end
assert
(
'Kernel#inspect'
,
'15.3.1.3.17'
)
do
s
=
inspect
s
.
class
==
String
and
s
==
"main"
assert_equal
s
.
class
,
String
assert_equal
s
,
"main"
end
assert
(
'Kernel#instance_variables'
,
'15.3.1.3.23'
)
do
...
...
@@ -259,19 +271,25 @@ assert('Kernel#instance_variables', '15.3.1.3.23') do
@b
=
12
end
ivars
=
o
.
instance_variables
ivars
.
class
==
Array
and
ivars
.
size
==
2
and
ivars
.
include?
(
:@a
)
and
ivars
.
include?
(
:@b
)
assert_equal
ivars
.
class
,
Array
assert_equal
ivars
.
size
,
2
assert_true
ivars
.
include?
(
:@a
)
assert_true
ivars
.
include?
(
:@b
)
end
assert
(
'Kernel#is_a?'
,
'15.3.1.3.24'
)
do
is_a?
(
Kernel
)
and
not
is_a?
(
Array
)
assert_true
is_a?
(
Kernel
)
assert_false
is_a?
(
Array
)
end
assert
(
'Kernel#iterator?'
,
'15.3.1.3.25'
)
do
iterator?
==
false
assert_false
iterator?
end
assert
(
'Kernel#kind_of?'
,
'15.3.1.3.26'
)
do
kind_of?
(
Kernel
)
and
not
kind_of?
(
Array
)
assert_true
kind_of?
(
Kernel
)
assert_false
kind_of?
(
Array
)
end
assert
(
'Kernel#lambda'
,
'15.3.1.3.27'
)
do
...
...
@@ -281,7 +299,10 @@ assert('Kernel#lambda', '15.3.1.3.27') do
m
=
lambda
(
&
l
)
l
.
call
and
l
.
class
==
Proc
and
m
.
call
and
m
.
class
==
Proc
assert_true
l
.
call
assert_equal
l
.
class
,
Proc
assert_true
m
.
call
assert_equal
m
.
class
,
Proc
end
# Not implemented yet
...
...
@@ -297,19 +318,19 @@ assert('Kernel#loop', '15.3.1.3.29') do
break
if
i
==
100
end
i
==
100
assert_equal
i
,
100
end
assert
(
'Kernel#methods'
,
'15.3.1.3.31'
)
do
methods
.
class
==
Array
assert_equal
methods
.
class
,
Array
end
assert
(
'Kernel#nil?'
,
'15.3.1.3.32'
)
do
nil
?
==
false
assert_false
nil
?
end
assert
(
'Kernel#object_id'
,
'15.3.1.3.33'
)
do
object_id
.
class
==
Fixnum
assert_equal
object_id
.
class
,
Fixnum
end
# Kernel#p is defined in mruby-print mrbgem. '15.3.1.3.34'
...
...
@@ -317,45 +338,32 @@ end
# Kernel#print is defined in mruby-print mrbgem. '15.3.1.3.35'
assert
(
'Kernel#private_methods'
,
'15.3.1.3.36'
)
do
private_methods
.
class
==
Array
assert_equal
private_methods
.
class
,
Array
end
assert
(
'Kernel#protected_methods'
,
'15.3.1.3.37'
)
do
protected_methods
.
class
==
Array
assert_equal
protected_methods
.
class
,
Array
end
assert
(
'Kernel#public_methods'
,
'15.3.1.3.38'
)
do
public_methods
.
class
==
Array
assert_equal
public_methods
.
class
,
Array
end
# Kernel#puts is defined in mruby-print mrbgem. '15.3.1.3.39'
assert
(
'Kernel#raise'
,
'15.3.1.3.40'
)
do
e_list
=
[]
begin
assert_raise
RuntimeError
do
raise
rescue
=>
e
e_list
<<
e
end
begin
assert_raise
RuntimeError
do
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
# Kernel#require is defined in mruby-require. '15.3.1.3.42'
assert
(
'Kernel#respond_to?'
,
'15.3.1.3.43'
)
do
e_list
=
[]
class
Test4RespondTo
def
valid_method
;
end
...
...
@@ -363,17 +371,14 @@ assert('Kernel#respond_to?', '15.3.1.3.43') do
undef
test_method
end
begin
assert_raise
TypeError
do
Test4RespondTo
.
new
.
respond_to?
(
1
)
rescue
=>
e
e_list
<<
e
.
class
end
e_list
[
0
]
==
TypeError
and
respond_to?
(:
nil
?)
and
Test4RespondTo
.
new
.
respond_to?
(
:valid_method
)
==
true
and
Test4RespondTo
.
new
.
respond_to?
(
'valid_method'
)
==
true
and
Test4RespondTo
.
new
.
respond_to?
(
:test_method
)
==
false
assert_true
respond_to?
(:
nil
?)
assert_true
Test4RespondTo
.
new
.
respond_to?
(
:valid_method
)
assert_true
Test4RespondTo
.
new
.
respond_to?
(
'valid_method'
)
assert_false
Test4RespondTo
.
new
.
respond_to?
(
:test_method
)
end
assert
(
'Kernel#send'
,
'15.3.1.3.44'
)
do
...
...
@@ -382,19 +387,20 @@ assert('Kernel#send', '15.3.1.3.44') 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
assert_true
l
.
call
assert_equal
l
.
class
,
Proc
# test with argument
assert_true
send
(
:respond_to?
,
:nil?
)
# test without argument and without block
assert_equal
send
(
:public_methods
).
class
,
Array
end
assert
(
'Kernel#singleton_methods'
,
'15.3.1.3.45'
)
do
singleton_methods
.
class
==
Array
assert_equal
singleton_methods
.
class
,
Array
end
assert
(
'Kernel#to_s'
,
'15.3.1.3.46'
)
do
to_s
.
class
==
String
assert_equal
to_s
.
class
,
String
end
assert
(
'Kernel#!='
)
do
...
...
@@ -402,20 +408,18 @@ assert('Kernel#!=') do
str2
=
str1
str3
=
"world"
(
str1
[
1
]
!=
'e'
)
==
false
and
(
str1
!=
str3
)
==
true
and
(
str2
!=
str1
)
==
false
assert_false
(
str1
[
1
]
!=
'e'
)
assert_true
(
str1
!=
str3
)
assert_false
(
str2
!=
str1
)
end
assert
(
'Kernel#respond_to_missing?'
)
do
class
Test4RespondToMissing
def
respond_to_missing?
(
method_name
,
include_private
=
false
)
method_name
==
:a_method
end
end
Test4RespondToMissing
.
new
.
respond_to?
(
:a_method
)
==
true
and
Test4RespondToMissing
.
new
.
respond_to?
(
:no_method
)
==
false
assert_true
Test4RespondToMissing
.
new
.
respond_to?
(
:a_method
)
assert_false
Test4RespondToMissing
.
new
.
respond_to?
(
:no_method
)
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment