summaryrefslogtreecommitdiff
path: root/test/ruby/test_call.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/ruby/test_call.rb')
-rw-r--r--test/ruby/test_call.rb32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/ruby/test_call.rb b/test/ruby/test_call.rb
new file mode 100644
index 0000000000..f47164b438
--- /dev/null
+++ b/test/ruby/test_call.rb
@@ -0,0 +1,32 @@
+require 'test/unit'
+
+$KCODE = 'none'
+
+class TestCall < Test::Unit::TestCase
+ def aaa(a, b=100, *rest)
+ res = [a, b]
+ res += rest if rest
+ return res
+ end
+
+ def test_call
+ begin
+ aaa() # need at least 1 arg
+ assert(false)
+ rescue
+ assert(true)
+ end
+
+ begin
+ aaa # no arg given (exception raised)
+ assert(false)
+ rescue
+ assert(true)
+ end
+
+ assert(aaa(1) == [1, 100])
+ assert(aaa(1, 2) == [1, 2])
+ assert(aaa(1, 2, 3, 4) == [1, 2, 3, 4])
+ assert(aaa(1, *[2, 3, 4]) == [1, 2, 3, 4])
+ end
+end