diff options
author | nahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-09-04 16:18:59 +0000 |
---|---|---|
committer | nahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-09-04 16:18:59 +0000 |
commit | 79692422922748c920d46dddfb13882a76037280 (patch) | |
tree | 5bc96fa0c702404154d3ba936276873cc7cc242f /test/ruby/test_variable.rb | |
parent | 9a4276ad7db429a100ab3ad4bb7c357d88066638 (diff) | |
download | ruby-79692422922748c920d46dddfb13882a76037280.tar.gz ruby-79692422922748c920d46dddfb13882a76037280.tar.xz ruby-79692422922748c920d46dddfb13882a76037280.zip |
* test/ruby: tests for ruby itself.
* test/ruby/test_*.rb: split sample/test.rb into 28 test/unit testcases. some
tests could not be translates... search '!!' mark to see it.
* test/csv/test_csv.rb: should require 'csv', not '../lib/csv'. test runner
should set load path correctly.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4498 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby/test_variable.rb')
-rw-r--r-- | test/ruby/test_variable.rb | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/test/ruby/test_variable.rb b/test/ruby/test_variable.rb new file mode 100644 index 000000000..c4a17b7ca --- /dev/null +++ b/test/ruby/test_variable.rb @@ -0,0 +1,58 @@ +require 'test/unit' + +$KCODE = 'none' + +class TestVariable < Test::Unit::TestCase + class Gods + @@rule = "Uranus" + def ruler0 + @@rule + end + + def self.ruler1 # <= per method definition style + @@rule + end + class << self # <= multiple method definition style + def ruler2 + @@rule + end + end + end + + module Olympians + @@rule ="Zeus" + def ruler3 + @@rule + end + end + + class Titans < Gods + @@rule = "Cronus" + include Olympians # OK to cause warning (intentional) + end + + def test_variable + assert($$.instance_of?(Fixnum)) + + # read-only variable + begin + $$ = 5 + assert false + rescue NameError + assert true + end + + foobar = "foobar" + $_ = foobar + assert($_ == foobar) + + assert(Gods.new.ruler0 == "Cronus") + assert(Gods.ruler1 == "Cronus") + assert(Gods.ruler2 == "Cronus") + assert(Titans.ruler1 == "Cronus") + assert(Titans.ruler2 == "Cronus") + atlas = Titans.new + assert(atlas.ruler0 == "Cronus") + assert(atlas.ruler3 == "Zeus") + end +end |