summaryrefslogtreecommitdiff
path: root/yarvtest
diff options
context:
space:
mode:
authoraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-02-23 06:41:25 +0000
committeraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-02-23 06:41:25 +0000
commitf35a641adb2d08e264a70afad27f706d2d05972e (patch)
tree4dea1a34659b6b1dc18d2cd2aa77caa641300fcd /yarvtest
parent583417190488ccbb668a3c149f9dd2ee2f0b837c (diff)
* test/ruby/test_primitive.rb: new test.
* yarvtest/test_bin.rb: removed (altered by test/ruby/test_{literal,primitive}.rb). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11828 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'yarvtest')
-rw-r--r--yarvtest/test_bin.rb585
1 files changed, 0 insertions, 585 deletions
diff --git a/yarvtest/test_bin.rb b/yarvtest/test_bin.rb
deleted file mode 100644
index 5f587b5a8c..0000000000
--- a/yarvtest/test_bin.rb
+++ /dev/null
@@ -1,585 +0,0 @@
-require 'yarvtest/yarvtest'
-
-# test of basic instruction
-class TestBIN < YarvTestBase
-
- def test_literal
- ae %q(true)
- ae %q(false)
- ae %q(nil)
- ae %q(1234)
- ae %q(:sym)
- ae %q(123456789012345678901234567890)
- ae %q(1.234)
- ae %q(0x12)
- ae %q(0b0101001)
- ae %q(1_2_3) # 123
- end
-
- def test_self
- ae %q(self)
- end
-
- def test_string
- ae %q('str')
- end
-
- def test_dstring
- ae %q(
- "1+1 = #{1+1}"
- )
- ae %q{
- i = 10
- "#{i} ** #{i} = #{i ** i}"
- }
- ae %q{
- s = "str"
- s.__id__ == "#{s}".__id__
- }
- end
-
- def test_dsym
- ae %q{
- :"a#{1+2}c"
- }
- end
-
- def test_xstr
- ae %q(`echo hoge`)
- ae %q(hoge = 'huga'; `echo #{hoge}`)
- end
-
- def test_regexp
- ae %q{
- /test/ =~ 'test'
- }
- ae %q{
- /test/ =~ 'tes'
- }
- ae %q{
- r = /test/; l = 'test'
- r =~ l
- }
- ae %q{
- r = /testx/; l = 'test'
- r =~ l
- }
- ae %q{
- i = 10
- /test#{i}/ =~ 'test10'
- }
- ae %q{
- i = 10
- /test#{i}/ =~ 'test20'
- }
- ae %q{
- :sym =~ /sym/
- }
- ae %q{
- sym = :sym
- sym =~ /sym/
- }
- ae %q{
- reg = /sym/
- :sym =~ reg
- }
- end
-
- def test_array
- ae %q([])
- ae %q([1,2,3])
- ae %q([1+1,2+2,3+3])
- ae %q([0][0]+=3)
- ae %q([0][0]-=3)
- end
-
- def test_array_access
- ae %q(ary = [1,2,3]; ary[1])
- ae %q(ary = [1,2,3]; ary[1] = 10)
- ae %q(ary = Array.new(10, 100); ary[3])
- end
-
- def test_hash
- ae %q({})
- ae %q({1 => 2})
- ae %q({"str" => "val", "str2" => "valval"})
- ae %q({1 => 2, 1=>3})
- end
-
- def test_range
- ae %q((1..2))
- ae %q((1...2))
- ae %q(((1+1)..(2+2)))
- ae %q(((1+1)...(2+2)))
- end
-
- def test_not
- ae %q(!true)
- ae %q(!nil)
- ae %q(!false)
- ae %q(!(1+1))
- ae %q(!!nil)
- ae %q(!!1)
- end
-
- # var
- def test_local
- ae %q(a = 1)
- ae %q(a = 1; b = 2; a)
- ae %q(a = b = 3)
- ae %q(a = b = 3; a)
- ae %q(a = b = c = 4)
- ae %q(a = b = c = 4; c)
- end
-
- def test_constant
- ae %q(C = 1; C)
- ae %q(C = 1; $a = []; 2.times{$a << ::C}; $a)
- ae %q(
- class A
- class B
- class C
- Const = 1
- end
- end
- end
- (1..2).map{
- A::B::C::Const
- }
- ) do
- remove_const :A
- end
-
- ae %q(
- class A
- class B
- Const = 1
- class C
- (1..2).map{
- Const
- }
- end
- end
- end
- ) do
- remove_const :A
- end
-
- ae %q(
- class A
- Const = 1
- class B
- class C
- (1..2).map{
- Const
- }
- end
- end
- end
- ) do
- remove_const :A
- end
-
- ae %q(
- Const = 1
- class A
- class B
- class C
- (1..2).map{
- Const
- }
- end
- end
- end
- ) do
- remove_const :A
- remove_const :Const
- end
-
- ae %q{
- C = 1
- begin
- C::D
- rescue TypeError
- :ok
- else
- :ng
- end
- }
- end
-
- def test_constant2
- ae %q{
- class A
- class B
- C = 10
- end
- end
- i = 0
- while i<3
- i+=1
- r = A::B::C
- end
- r
- } do
- remove_const :A
- end
-
- ae %q{
- class A
- class B
- C = 10
- end
- end
- i = 0
- while i<3
- i+=1
- r = A::B::C
- class A::B
- remove_const :C
- end
- A::B::C = i**i
- end
- r
- } do
- remove_const :A
- end
-
- ae %q{
- class C
- Const = 1
- (1..3).map{
- self::Const
- }
- end
- }
- ae %q{
- class C
- Const = 1
- (1..3).map{
- eval('self')::Const
- }
- end
- }
- ae %q{
- class C
- Const = 0
- def self.foo()
- self::Const
- end
- end
-
- class D < C
- Const = 1
- end
-
- class E < C
- Const = 2
- end
-
- [C.foo, D.foo, E.foo]
- }
- end
-
- def test_gvar
- ae %q(
- $g1 = 1
- )
-
- ae %q(
- $g2 = 2
- $g2
- )
- end
-
- def test_cvar
- ae %q{
- class C
- @@c = 1
- def m
- @@c += 1
- end
- end
-
- C.new.m
- } do
- remove_const :C
- end
- end
-
- def test_cvar_from_singleton
- ae %q{
- class C
- @@c=1
- class << self
- def m
- @@c += 1
- end
- end
- end
- C.m
- } do
- remove_const :C
- end
- end
-
- def test_cvar_from_singleton2
- ae %q{
- class C
- @@c = 1
- def self.m
- @@c += 1
- end
- end
- C.m
- } do
- remove_const :C
- end
- end
-
- def test_op_asgin2
- ae %q{
- class C
- attr_accessor :a
- end
- r = []
- o = C.new
- o.a &&= 1
- r << o.a
- o.a ||= 2
- r << o.a
- o.a &&= 3
- r << o.a
- r
- } do
- remove_const :C
- end
- ae %q{
- @@x ||= 1
- }
- ae %q{
- @@x = 0
- @@x ||= 1
- }
- end
-
- def test_op_assgin_and_or
- ae %q{
- r = []
- a = 1 ; a ||= 2; r << a
- a = nil; a ||= 2; r << a
- a = 1 ; a &&= 2; r << a
- a = nil; a &&= 2; r << a
- r
- }
- ae %q{
- a = {}
- a[0] ||= 1
- }
- ae %q{
- a = {}
- a[0] &&= 1
- }
- ae %q{
- a = {0 => 10}
- a[0] ||= 1
- }
- ae %q{
- a = {0 => 10}
- a[0] &&= 1
- }
- end
-
- def test_backref
- ae %q{
- /a(b)(c)d/ =~ 'xyzabcdefgabcdefg'
- [$1, $2, $3, $~.class, $&, $`, $', $+]
- }
-
- ae %q{
- def m
- /a(b)(c)d/ =~ 'xyzabcdefgabcdefg'
- [$1, $2, $3, $~.class, $&, $`, $', $+]
- end
- m
- }
- end
-
- def test_fact
- ae %q{
- def fact(n)
- if(n > 1)
- n * fact(n-1)
- else
- 1
- end
- end
- fact(300)
- }
- end
-
- def test_mul
- ae %q{
- 2*0
- }
- ae %q{
- 0*2
- }
- ae %q{
- 2*2
- }
- end
-
- def test_div
- ae %q{
- 3/2
- }
- ae %q{
- 3.0/2.0
- }
- ae %q{
- class C
- def /(a)
- a * 100
- end
- end
- C.new/3
- } do
- remove_const :C
- end
- end
-
- def test_length
- ae %q{
- [].length
- }
- ae %q{
- [1, 2].length
- }
- ae %q{
- {}.length
- }
- ae %q{
- {:a => 1, :b => 2}.length
- }
- ae %q{
- class C
- def length
- 'hoge'
- end
- end
- C.new.length
- } do
- remove_const :C
- end
- end
-
- def test_mod
- ae %q{
- 3%2
- }
- ae %q{
- 3.0%2.0
- }
- ae %q{
- class C
- def % (a)
- a * 100
- end
- end
- C.new%3
- } do
- remove_const :C
- end
- end
-
- def test_attr_set
- ae %q{
- o = Object.new
- def o.[]=(*args)
- args
- end
- [o[]=:x, o[0]=:x, o[0, 1]=:x, o[0, 1, 2]=:x]
- }
- ae %q{
- o = Object.new
- def o.foo=(*args)
- args
- end
- o.foo = :x
- }
- ae %q{
- $r = []
- class C
- def [](*args)
- $r << [:ref, args]
- args.size
- end
-
- def []=(*args)
- $r << [:set, args]
- args.size
- end
- end
-
- o = C.new
- ary = [:x, :y]
- o[1] = 2
- o[1, 2] = 3
- o[1, 2, *ary] = 3
- o[1, 2, *ary, 3] = 4
- $r
- }
- end
-
- def test_aref_aset
- ae %q{
- a = []
- a << 0
- a[1] = 1
- a[2] = 2
- a[3] = a[1] + a[2]
- }
- ae %q{
- a = {}
- a[1] = 1
- a[2] = 2
- a[3] = a[1] + a[2]
- a.sort
- }
- ae %q{
- class C
- attr_reader :a, :b
- def [](a)
- @a = a
- end
-
- def []=(a, b)
- @b = [a, b]
- end
- end
- c = C.new
- c[3]
- c[4] = 5
- [c.a, c.b]
- } do
- remove_const :C
- end
- end
-
- def test_array_concat
- ae %q{
- ary = []
- [:x, *ary]
- }
- #ae %q{
- # ary = 1
- # [:x, *ary]
- #}
- ae %q{
- ary = [1, 2]
- [:x, *ary]
- }
- end
-end
-