summaryrefslogtreecommitdiffstats
path: root/web/server/h2o/libh2o/deps/mruby-require/test/require.rb
blob: 95e1ef022ed2a4b23a56f755fb24cd7ab2dde6f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
assert("Kernel.require") do
  # see d/required.rb
  $gvar1 = 0
  lvar1 = 0
  class MrubyRequireClass; end

  assert_true require(File.join(File.dirname(__FILE__), "d", "required.rb"))

  # Kernel.require can create a global variable
  assert_equal 1, $gvar0

  # Kernel.require can change value of a global variable
  assert_equal 1, $gvar1

  # Kernel.require cannot create a local variable
  assert_raise(NoMethodError) do
    lvar0
  end

  # Kernel.require cannot change value of a local variable
  assert_equal 0, lvar1

  # Kernel.require can define a toplevel procedure
  assert_equal :proc0, proc0

  # Kernel.require can add a method to an existing class
  assert_equal :foo, MrubyRequireClass.new.foo
end