~ubuntu-branches/ubuntu/intrepid/ruby1.9/intrepid-updates

« back to all changes in this revision

Viewing changes to bootstraptest/test_eval.rb

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2007-09-04 16:01:17 UTC
  • mfrom: (1.1.8 upstream)
  • Revision ID: james.westby@ubuntu.com-20070904160117-i15zckg2nhxe9fyw
Tags: 1.9.0+20070830-2ubuntu1
* Sync from Debian; remaining changes:
  - Add -g to CFLAGS.
* Fixes build failure on ia64.
* Fixes build failure with gcc-4.2 on lpia.
* Robustify check for target_os, fixing build failure on lpia.
* Set Ubuntu maintainer address.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
assert_equal %q{ok}, %q{
 
2
  def m
 
3
    a = :ok
 
4
    $b = binding
 
5
  end
 
6
  m
 
7
  eval('a', $b)
 
8
}
 
9
assert_equal %q{[:ok, :ok2]}, %q{
 
10
  def m
 
11
    a = :ok
 
12
    $b = binding
 
13
  end
 
14
  m
 
15
  eval('b = :ok2', $b)
 
16
  eval('[a, b]', $b)
 
17
}
 
18
assert_equal %q{[nil, 1]}, %q{
 
19
  $ans = []
 
20
  def m
 
21
    $b = binding
 
22
  end
 
23
  m
 
24
  $ans << eval(%q{
 
25
    $ans << eval(%q{
 
26
      a
 
27
    }, $b)
 
28
    a = 1
 
29
  }, $b)
 
30
  $ans
 
31
}
 
32
assert_equal %q{C}, %q{
 
33
  Const = :top
 
34
  class C
 
35
    Const = :C
 
36
    def m
 
37
      binding
 
38
    end
 
39
  end
 
40
  eval('Const', C.new.m)
 
41
}
 
42
assert_equal %q{top}, %q{
 
43
  Const = :top
 
44
  a = 1
 
45
  class C
 
46
    Const = :C
 
47
    def m
 
48
      eval('Const', TOPLEVEL_BINDING)
 
49
    end
 
50
  end
 
51
  C.new.m
 
52
}
 
53
assert_equal %q{:ok
 
54
ok}, %q{
 
55
  class C
 
56
    $b = binding
 
57
  end
 
58
  eval %q{
 
59
    def m
 
60
      :ok
 
61
    end
 
62
  }, $b
 
63
  p C.new.m
 
64
}
 
65
assert_equal %q{ok}, %q{
 
66
  b = proc{
 
67
    a = :ok
 
68
    binding
 
69
  }.call
 
70
  a = :ng
 
71
  eval("a", b)
 
72
}
 
73
assert_equal %q{C}, %q{
 
74
  class C
 
75
    def foo
 
76
      binding
 
77
    end
 
78
  end
 
79
  C.new.foo.eval("self.class.to_s")
 
80
}
 
81
assert_equal %q{1}, %q{
 
82
  eval('1')
 
83
}
 
84
assert_equal %q{1}, %q{
 
85
  eval('a=1; a')
 
86
}
 
87
assert_equal %q{1}, %q{
 
88
  a = 1
 
89
  eval('a')
 
90
}
 
91
assert_equal %q{ok}, %q{
 
92
  __send! :eval, %{
 
93
    :ok
 
94
  }
 
95
}
 
96
assert_equal %q{ok}, %q{
 
97
  1.__send! :instance_eval, %{
 
98
    :ok
 
99
  }
 
100
}
 
101
assert_equal %q{1}, %q{
 
102
  1.instance_eval{
 
103
    self
 
104
  }
 
105
}
 
106
assert_equal %q{foo}, %q{
 
107
  'foo'.instance_eval{
 
108
    self
 
109
  }
 
110
}
 
111
assert_equal %q{1}, %q{
 
112
  class Fixnum
 
113
    Const = 1
 
114
  end
 
115
  1.instance_eval %{
 
116
    Const
 
117
  }
 
118
}
 
119
assert_equal %q{C}, %q{
 
120
  Const = :top
 
121
  class C
 
122
    Const = :C
 
123
  end
 
124
  C.module_eval{
 
125
    Const
 
126
  }
 
127
}
 
128
assert_equal %q{C}, %q{
 
129
  Const = :top
 
130
  class C
 
131
    Const = :C
 
132
  end
 
133
  C.class_eval %{
 
134
    def m
 
135
      Const
 
136
    end
 
137
  }
 
138
  C.new.m
 
139
}
 
140
assert_equal %q{C}, %q{
 
141
  Const = :top
 
142
  class C
 
143
    Const = :C
 
144
  end
 
145
  C.class_eval{
 
146
    def m
 
147
      Const
 
148
    end
 
149
  }
 
150
  C.new.m
 
151
}
 
152
assert_equal %q{[:top, :C, :top, :C]}, %q{
 
153
  Const = :top
 
154
  class C
 
155
    Const = :C
 
156
  end
 
157
  $nest = false
 
158
  $ans = []
 
159
  def m
 
160
    $ans << Const
 
161
    C.module_eval %{
 
162
      $ans << Const
 
163
      Boo = false unless defined? Boo
 
164
      unless $nest
 
165
        $nest = true
 
166
        m
 
167
      end
 
168
    }
 
169
  end
 
170
  m
 
171
  $ans
 
172
}
 
173
assert_equal %q{[10, main]}, %q{
 
174
  $nested = false
 
175
  $ans = []
 
176
  $pr = proc{
 
177
    $ans << self
 
178
    unless $nested
 
179
      $nested = true
 
180
      $pr.call
 
181
    end
 
182
  }
 
183
  class C
 
184
    def initialize &b
 
185
      10.instance_eval(&b)
 
186
    end
 
187
  end
 
188
  C.new(&$pr)
 
189
  $ans
 
190
}