glib2 0.90.8 → 0.90.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. data/ChangeLog +44 -0
  2. data/Rakefile +1 -0
  3. data/ext/glib2/rbglib.h +1 -1
  4. data/ext/glib2/rbglib_iochannel.c +15 -6
  5. data/ext/glib2/rbgobj_signal.c +1 -1
  6. data/ext/glib2/rbgobject.h +1 -1
  7. data/lib/gnome2-raketask.rb +4 -2
  8. data/lib/mkmf-gnome2.rb +47 -23
  9. data/test/glib-test-init.rb +1 -3
  10. metadata +20 -121
  11. data/test-unit/COPYING +0 -56
  12. data/test-unit/GPL +0 -340
  13. data/test-unit/History.txt +0 -279
  14. data/test-unit/Manifest.txt +0 -110
  15. data/test-unit/PSFL +0 -271
  16. data/test-unit/README.txt +0 -75
  17. data/test-unit/Rakefile +0 -53
  18. data/test-unit/TODO +0 -5
  19. data/test-unit/bin/testrb +0 -5
  20. data/test-unit/html/bar.png +0 -0
  21. data/test-unit/html/bar.svg +0 -153
  22. data/test-unit/html/developer.png +0 -0
  23. data/test-unit/html/developer.svg +0 -469
  24. data/test-unit/html/famfamfam-logo.png +0 -0
  25. data/test-unit/html/favicon.ico +0 -0
  26. data/test-unit/html/favicon.png +0 -0
  27. data/test-unit/html/favicon.svg +0 -82
  28. data/test-unit/html/heading-mark.png +0 -0
  29. data/test-unit/html/heading-mark.svg +0 -393
  30. data/test-unit/html/index.html +0 -285
  31. data/test-unit/html/index.html.ja +0 -299
  32. data/test-unit/html/install.png +0 -0
  33. data/test-unit/html/install.svg +0 -636
  34. data/test-unit/html/jp.png +0 -0
  35. data/test-unit/html/kinotan-failure.png +0 -0
  36. data/test-unit/html/kinotan-pass.png +0 -0
  37. data/test-unit/html/logo.png +0 -0
  38. data/test-unit/html/logo.svg +0 -483
  39. data/test-unit/html/reference.png +0 -0
  40. data/test-unit/html/rubyforge.png +0 -0
  41. data/test-unit/html/tango-logo.png +0 -0
  42. data/test-unit/html/test-unit.css +0 -339
  43. data/test-unit/html/tutorial.png +0 -0
  44. data/test-unit/html/tutorial.svg +0 -559
  45. data/test-unit/html/us.png +0 -0
  46. data/test-unit/images/color-diff.png +0 -0
  47. data/test-unit/lib/test/unit.rb +0 -328
  48. data/test-unit/lib/test/unit/assertionfailederror.rb +0 -25
  49. data/test-unit/lib/test/unit/assertions.rb +0 -1792
  50. data/test-unit/lib/test/unit/attribute.rb +0 -125
  51. data/test-unit/lib/test/unit/autorunner.rb +0 -415
  52. data/test-unit/lib/test/unit/collector.rb +0 -38
  53. data/test-unit/lib/test/unit/collector/descendant.rb +0 -23
  54. data/test-unit/lib/test/unit/collector/dir.rb +0 -108
  55. data/test-unit/lib/test/unit/collector/load.rb +0 -187
  56. data/test-unit/lib/test/unit/collector/objectspace.rb +0 -34
  57. data/test-unit/lib/test/unit/collector/xml.rb +0 -250
  58. data/test-unit/lib/test/unit/color-scheme.rb +0 -106
  59. data/test-unit/lib/test/unit/color.rb +0 -96
  60. data/test-unit/lib/test/unit/diff.rb +0 -740
  61. data/test-unit/lib/test/unit/error.rb +0 -131
  62. data/test-unit/lib/test/unit/exceptionhandler.rb +0 -39
  63. data/test-unit/lib/test/unit/failure.rb +0 -136
  64. data/test-unit/lib/test/unit/fixture.rb +0 -185
  65. data/test-unit/lib/test/unit/notification.rb +0 -129
  66. data/test-unit/lib/test/unit/omission.rb +0 -191
  67. data/test-unit/lib/test/unit/pending.rb +0 -150
  68. data/test-unit/lib/test/unit/priority.rb +0 -180
  69. data/test-unit/lib/test/unit/runner/console.rb +0 -52
  70. data/test-unit/lib/test/unit/runner/emacs.rb +0 -8
  71. data/test-unit/lib/test/unit/runner/tap.rb +0 -8
  72. data/test-unit/lib/test/unit/runner/xml.rb +0 -15
  73. data/test-unit/lib/test/unit/testcase.rb +0 -515
  74. data/test-unit/lib/test/unit/testresult.rb +0 -125
  75. data/test-unit/lib/test/unit/testsuite.rb +0 -134
  76. data/test-unit/lib/test/unit/ui/console/outputlevel.rb +0 -14
  77. data/test-unit/lib/test/unit/ui/console/testrunner.rb +0 -467
  78. data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +0 -63
  79. data/test-unit/lib/test/unit/ui/tap/testrunner.rb +0 -82
  80. data/test-unit/lib/test/unit/ui/testrunner.rb +0 -53
  81. data/test-unit/lib/test/unit/ui/testrunnermediator.rb +0 -86
  82. data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +0 -41
  83. data/test-unit/lib/test/unit/ui/xml/testrunner.rb +0 -224
  84. data/test-unit/lib/test/unit/util/backtracefilter.rb +0 -42
  85. data/test-unit/lib/test/unit/util/method-owner-finder.rb +0 -28
  86. data/test-unit/lib/test/unit/util/observable.rb +0 -90
  87. data/test-unit/lib/test/unit/util/output.rb +0 -31
  88. data/test-unit/lib/test/unit/util/procwrapper.rb +0 -48
  89. data/test-unit/lib/test/unit/version.rb +0 -7
  90. data/test-unit/sample/adder.rb +0 -13
  91. data/test-unit/sample/subtracter.rb +0 -12
  92. data/test-unit/sample/test_adder.rb +0 -20
  93. data/test-unit/sample/test_subtracter.rb +0 -20
  94. data/test-unit/sample/test_user.rb +0 -23
  95. data/test-unit/test/collector/test-descendant.rb +0 -133
  96. data/test-unit/test/collector/test-load.rb +0 -442
  97. data/test-unit/test/collector/test_dir.rb +0 -406
  98. data/test-unit/test/collector/test_objectspace.rb +0 -100
  99. data/test-unit/test/run-test.rb +0 -22
  100. data/test-unit/test/test-assertions.rb +0 -1849
  101. data/test-unit/test/test-attribute.rb +0 -86
  102. data/test-unit/test/test-color-scheme.rb +0 -69
  103. data/test-unit/test/test-color.rb +0 -47
  104. data/test-unit/test/test-diff.rb +0 -518
  105. data/test-unit/test/test-emacs-runner.rb +0 -60
  106. data/test-unit/test/test-fixture.rb +0 -324
  107. data/test-unit/test/test-notification.rb +0 -33
  108. data/test-unit/test/test-omission.rb +0 -81
  109. data/test-unit/test/test-pending.rb +0 -70
  110. data/test-unit/test/test-priority.rb +0 -119
  111. data/test-unit/test/test-testcase.rb +0 -569
  112. data/test-unit/test/test_error.rb +0 -26
  113. data/test-unit/test/test_failure.rb +0 -33
  114. data/test-unit/test/test_testresult.rb +0 -113
  115. data/test-unit/test/test_testsuite.rb +0 -137
  116. data/test-unit/test/testunit-test-util.rb +0 -14
  117. data/test-unit/test/ui/test_tap.rb +0 -33
  118. data/test-unit/test/ui/test_testrunmediator.rb +0 -20
  119. data/test-unit/test/util/test-method-owner-finder.rb +0 -38
  120. data/test-unit/test/util/test-output.rb +0 -11
  121. data/test-unit/test/util/test_backtracefilter.rb +0 -41
  122. data/test-unit/test/util/test_observable.rb +0 -102
  123. data/test-unit/test/util/test_procwrapper.rb +0 -36
@@ -1,60 +0,0 @@
1
- require 'test/unit'
2
- require 'test/unit/ui/emacs/testrunner'
3
-
4
- class TestUnitEmacsRunner < Test::Unit::TestCase
5
- def test_format_failure_with_a_location
6
- runner = create_runner
7
- test_name = "test_failure"
8
- file = "/home/user/test_xxx.rb"
9
- line = "3"
10
- info = "in `xxx'"
11
- location = "#{file}:#{line}: #{info}"
12
- message = "FAIL!!!"
13
- failure = Test::Unit::Failure.new(test_name, [location], message)
14
- assert_equal(<<-EOM.chomp, runner.send(:format_fault, failure))
15
- Failure:
16
- #{test_name} [#{file}:#{line}]:
17
- #{message}
18
- EOM
19
- end
20
-
21
- def test_format_failure_with_locations
22
- runner = create_runner
23
- test_name = "test_failure"
24
- locations = ["/home/user/test_xxx.rb:3: in `xxx'",
25
- "/home/user/yyy/test_yyy.rb:999: in `yyy'",
26
- "/home/user/xyz/zzz.rb:29: in `zzz'"]
27
- message = "Many backtrace!!!"
28
- failure = Test::Unit::Failure.new(test_name, locations, message)
29
- assert_equal(<<-EOM.chomp, runner.send(:format_fault, failure))
30
- Failure:
31
- #{test_name}
32
- #{locations.join("\n")}:
33
- #{message}
34
- EOM
35
- end
36
-
37
- def test_format_error
38
- runner = create_runner
39
- test_name = "test_error"
40
- message = "Error Message!!!"
41
- backtrace = ["/home/user/test_xxx.rb:3: in `xxx'",
42
- "/home/user/yyy/test_yyy.rb:999: in `yyy'",
43
- "/home/user/xyz/zzz.rb:29: in `zzz'"]
44
- exception = RuntimeError.new(message)
45
- exception.set_backtrace(backtrace)
46
- error = Test::Unit::Error.new(test_name, exception)
47
- assert_equal(<<-EOM.chomp, runner.send(:format_fault, error))
48
- Error:
49
- #{test_name}:
50
- #{exception.class.name}: #{message}
51
- #{backtrace.join("\n")}
52
- EOM
53
- end
54
-
55
- private
56
- def create_runner(suite=nil)
57
- suite ||= Test::Unit::TestSuite.new
58
- Test::Unit::UI::Emacs::TestRunner.new(suite)
59
- end
60
- end
@@ -1,324 +0,0 @@
1
- class TestUnitFixture < Test::Unit::TestCase
2
- module EmptyModule
3
- end
4
-
5
- def test_setup_without_option
6
- expected_setup_calls = [:setup,
7
- :custom_setup_method0,
8
- :custom_setup_method1,
9
- :custom_setup_method3]
10
- test_case = assert_setup(expected_setup_calls, [])
11
- assert_inherited_setup(expected_setup_calls, test_case)
12
-
13
- assert_inherited_setup([:setup], nil)
14
- assert_called_fixtures(expected_setup_calls, test_case)
15
- end
16
-
17
- def test_setup_with_before_option
18
- expected_setup_calls = [:custom_setup_method3,
19
- :custom_setup_method0,
20
- :custom_setup_method1,
21
- :setup]
22
- test_case = assert_setup(expected_setup_calls,
23
- [[{:before => :append}],
24
- [{:before => :append}],
25
- [{:before => :prepend}],
26
- [{:before => :prepend}]])
27
- assert_inherited_setup(expected_setup_calls, test_case)
28
-
29
- assert_inherited_setup([:setup], nil)
30
- assert_called_fixtures(expected_setup_calls, test_case)
31
- end
32
-
33
- def test_setup_with_after_option
34
- expected_setup_calls = [:setup,
35
- :custom_setup_method3,
36
- :custom_setup_method0,
37
- :custom_setup_method1]
38
- test_case = assert_setup(expected_setup_calls,
39
- [[{:after => :append}],
40
- [{:after => :append}],
41
- [{:after => :prepend}],
42
- [{:after => :prepend}]])
43
- assert_inherited_setup(expected_setup_calls, test_case)
44
-
45
- assert_inherited_setup([:setup], nil)
46
- assert_called_fixtures(expected_setup_calls, test_case)
47
- end
48
-
49
- def test_setup_with_invalid_option
50
- assert_invalid_setup_option(:unknown => true)
51
- assert_invalid_setup_option(:before => :unknown)
52
- assert_invalid_setup_option(:after => :unknown)
53
- end
54
-
55
- def test_setup_with_option_to_inherited
56
- expected_setup_calls = [:setup]
57
- test_case = assert_setup(expected_setup_calls, nil)
58
- assert_inherited_setup([:setup,
59
- :custom_setup_method0,
60
- :custom_setup_method1,
61
- :custom_setup_method3],
62
- test_case,
63
- [])
64
-
65
- assert_inherited_setup([:setup], nil)
66
- assert_called_fixtures(expected_setup_calls, test_case)
67
- end
68
-
69
- def test_teardown_without_option
70
- expected_teardown_calls = [:custom_teardown_method3,
71
- :custom_teardown_method1,
72
- :custom_teardown_method0,
73
- :teardown]
74
- test_case = assert_teardown(expected_teardown_calls, [])
75
- assert_inherited_teardown(expected_teardown_calls, test_case)
76
-
77
- assert_inherited_teardown([:teardown], nil)
78
- assert_called_fixtures(expected_teardown_calls, test_case)
79
- end
80
-
81
- def test_teardown_with_before_option
82
- expected_teardown_calls = [:custom_teardown_method3,
83
- :custom_teardown_method0,
84
- :custom_teardown_method1,
85
- :teardown]
86
- test_case = assert_teardown(expected_teardown_calls,
87
- [[{:before => :append}],
88
- [{:before => :append}],
89
- [{:before => :prepend}],
90
- [{:before => :prepend}]])
91
- assert_inherited_teardown(expected_teardown_calls, test_case)
92
-
93
- assert_inherited_teardown([:teardown], nil)
94
- assert_called_fixtures(expected_teardown_calls, test_case)
95
- end
96
-
97
- def test_teardown_with_after_option
98
- expected_teardown_calls = [:teardown,
99
- :custom_teardown_method3,
100
- :custom_teardown_method0,
101
- :custom_teardown_method1]
102
- test_case = assert_teardown(expected_teardown_calls,
103
- [[{:after => :append}],
104
- [{:after => :append}],
105
- [{:after => :prepend}],
106
- [{:after => :prepend}]])
107
- assert_inherited_teardown(expected_teardown_calls, test_case)
108
-
109
- assert_inherited_teardown([:teardown], nil)
110
- assert_called_fixtures(expected_teardown_calls, test_case)
111
- end
112
-
113
- def test_teardown_with_invalid_option
114
- assert_invalid_teardown_option(:unknown => true)
115
- assert_invalid_teardown_option(:before => :unknown)
116
- assert_invalid_teardown_option(:after => :unknown)
117
- end
118
-
119
- def test_teardown_with_option_to_inherited
120
- expected_teardown_calls = [:teardown]
121
- test_case = assert_teardown(expected_teardown_calls, nil)
122
- assert_inherited_teardown([:custom_teardown_method3,
123
- :custom_teardown_method1,
124
- :custom_teardown_method0,
125
- :teardown],
126
- test_case, [])
127
-
128
- assert_inherited_teardown([:teardown], nil)
129
- assert_called_fixtures(expected_teardown_calls, test_case)
130
- end
131
-
132
- def test_teardown_with_exception
133
- test_case = Class.new(Test::Unit::TestCase) do
134
- def called_ids
135
- @called_ids ||= []
136
- end
137
-
138
- def called(id)
139
- called_ids << id
140
- end
141
-
142
- def teardown
143
- called(:teardown)
144
- raise "teardown"
145
- end
146
-
147
- teardown
148
- def custom_teardown_method0
149
- called(:custom_teardown_method0)
150
- raise "custom_teardown_method0"
151
- end
152
-
153
- teardown
154
- def custom_teardown_method1
155
- called(:custom_teardown_method1)
156
- raise "custom_teardown_method1"
157
- end
158
-
159
- def test_nothing
160
- end
161
- end
162
-
163
- assert_called_fixtures([:custom_teardown_method1,
164
- :custom_teardown_method0,
165
- :teardown],
166
- test_case)
167
- end
168
-
169
- private
170
- def assert_called_fixtures(expected, test_case)
171
- test = test_case.new("test_nothing")
172
- test.run(Test::Unit::TestResult.new) {}
173
- assert_equal(expected, test.called_ids)
174
- end
175
-
176
- def assert_setup_customizable(expected, parent, options)
177
- test_case = Class.new(parent || Test::Unit::TestCase) do
178
- yield(self, :before) if block_given?
179
-
180
- def called_ids
181
- @called_ids ||= []
182
- end
183
-
184
- def called(id)
185
- called_ids << id
186
- end
187
-
188
- def setup
189
- called(:setup)
190
- end
191
-
192
- setup(*(options[0] || [])) if options
193
- def custom_setup_method0
194
- called(:custom_setup_method0)
195
- end
196
-
197
- def custom_setup_method1
198
- called(:custom_setup_method1)
199
- end
200
- setup(*[:custom_setup_method1, *(options[1] || [])]) if options
201
-
202
- setup(*(options[2] || [])) if options
203
- def custom_setup_method2
204
- called(:custom_setup_method2)
205
- end
206
- unregister_setup(:custom_setup_method2) if options
207
-
208
- setup(*(options[3] || [])) if options
209
- def custom_setup_method3
210
- called(:custom_setup_method3)
211
- end
212
-
213
- def test_nothing
214
- end
215
-
216
- yield(self, :after) if block_given?
217
- end
218
-
219
- assert_called_fixtures(expected, test_case)
220
- test_case
221
- end
222
-
223
- def assert_setup(expected, options)
224
- _test_case = assert_setup_customizable(expected, nil, options)
225
- assert_setup_customizable(expected, nil, options) do |test_case, tag|
226
- test_case.send(:include, EmptyModule) if tag == :before
227
- end
228
- _test_case
229
- end
230
-
231
- def assert_inherited_setup(expected, parent, options=nil)
232
- _test_case = assert_setup_customizable(expected, parent, options)
233
- assert_setup_customizable(expected, parent, options) do |test_case, tag|
234
- test_case.send(:include, EmptyModule) if tag == :before
235
- end
236
- _test_case
237
- end
238
-
239
- def assert_teardown_customizable(expected, parent, options)
240
- test_case = Class.new(parent || Test::Unit::TestCase) do
241
- yield(self, :before) if block_given?
242
-
243
- def called_ids
244
- @called_ids ||= []
245
- end
246
-
247
- def called(id)
248
- called_ids << id
249
- end
250
-
251
- def teardown
252
- called(:teardown)
253
- end
254
-
255
- teardown(*(options[0] || [])) if options
256
- def custom_teardown_method0
257
- called(:custom_teardown_method0)
258
- end
259
-
260
- def custom_teardown_method1
261
- called(:custom_teardown_method1)
262
- end
263
- teardown(*[:custom_teardown_method1, *(options[1] || [])]) if options
264
-
265
- teardown(*(options[2] || [])) if options
266
- def custom_teardown_method2
267
- called(:custom_teardown_method2)
268
- end
269
- unregister_teardown(:custom_teardown_method2) if options
270
-
271
- teardown(*(options[3] || [])) if options
272
- def custom_teardown_method3
273
- called(:custom_teardown_method3)
274
- end
275
-
276
- def test_nothing
277
- end
278
-
279
- yield(self, :after) if block_given?
280
- end
281
-
282
- assert_called_fixtures(expected, test_case)
283
- test_case
284
- end
285
-
286
- def assert_teardown(expected, options)
287
- assert_teardown_customizable(expected, nil, options)
288
- assert_teardown_customizable(expected, nil, options) do |test_case, tag|
289
- test_case.send(:include, EmptyModule) if tag == :before
290
- end
291
- end
292
-
293
- def assert_inherited_teardown(expected, parent, options=nil)
294
- assert_teardown_customizable(expected, parent, options)
295
- assert_teardown_customizable(expected, parent, options) do |test_case, tag|
296
- test_case.send(:include, EmptyModule) if tag == :before
297
- end
298
- end
299
-
300
- def assert_invalid_option(fixture_type, option)
301
- exception = assert_raise(ArgumentError) do
302
- Class.new(Test::Unit::TestCase) do
303
- def test_nothing
304
- end
305
-
306
- send(fixture_type, option)
307
- def fixture
308
- end
309
- end
310
- end
311
- assert_equal("must be {:before => :prepend}, {:before => :append}, " +
312
- "{:after => :prepend} or {:after => :append}" +
313
- ": #{option.inspect}",
314
- exception.message)
315
- end
316
-
317
- def assert_invalid_setup_option(option)
318
- assert_invalid_option(:setup, option)
319
- end
320
-
321
- def assert_invalid_teardown_option(option)
322
- assert_invalid_option(:teardown, option)
323
- end
324
- end
@@ -1,33 +0,0 @@
1
- require 'test/unit'
2
- require 'testunit-test-util'
3
-
4
- class TestUnitNotification < Test::Unit::TestCase
5
- include TestUnitTestUtil
6
-
7
- class TestCase < Test::Unit::TestCase
8
- class << self
9
- def suite
10
- Test::Unit::TestSuite.new(name)
11
- end
12
- end
13
-
14
- def test_notify
15
- notify("1st notify")
16
- notify("2nd notify. Reach here.")
17
- end
18
- end
19
-
20
- def test_notify
21
- result = _run_test("test_notify")
22
- assert_equal("1 tests, 0 assertions, 0 failures, 0 errors, 0 pendings, " \
23
- "0 omissions, 2 notifications",
24
- result.to_s)
25
- assert_fault_messages(["1st notify", "2nd notify. Reach here."],
26
- result.notifications)
27
- end
28
-
29
- private
30
- def _run_test(name)
31
- super(TestCase, name)
32
- end
33
- end
@@ -1,81 +0,0 @@
1
- require 'test/unit'
2
- require 'testunit-test-util'
3
-
4
- class TestUnitOmission < Test::Unit::TestCase
5
- include TestUnitTestUtil
6
-
7
- class TestCase < Test::Unit::TestCase
8
- class << self
9
- def suite
10
- Test::Unit::TestSuite.new(name)
11
- end
12
- end
13
-
14
- def test_omit
15
- omit("1st omit")
16
- omit("2nd omit. Should not be reached here.")
17
- assert(true, "Should not be reached here too.")
18
- end
19
-
20
- def test_omit_with_condition
21
- omit_if(false, "Never omit.")
22
- omit_unless(true, "Never omit too.")
23
- omit_if(true, "Should omit.")
24
- omit("The last omit. Should not be reached here.")
25
- end
26
-
27
- def test_omit_with_block
28
- omit("Omit block") do
29
- flunk("Should not be reached here.")
30
- end
31
- assert(true, "Should be reached here.")
32
- end
33
-
34
- def test_omit_with_block_and_condition
35
- omit_if(false, "Never omit.") do
36
- assert(true, "Should be reached here.")
37
- end
38
- omit_if(true, "Should omit.") do
39
- flunk("Never reached here.")
40
- end
41
- assert(true, "Should be reached here too.")
42
- end
43
- end
44
-
45
- def test_omit
46
- result = _run_test("test_omit")
47
- assert_equal("1 tests, 0 assertions, 0 failures, 0 errors, 0 pendings, " \
48
- "1 omissions, 0 notifications",
49
- result.to_s)
50
- assert_fault_messages(["1st omit"], result.omissions)
51
- end
52
-
53
- def test_omit_with_condition
54
- result = _run_test("test_omit_with_condition")
55
- assert_equal("1 tests, 0 assertions, 0 failures, 0 errors, 0 pendings, " \
56
- "1 omissions, 0 notifications",
57
- result.to_s)
58
- assert_fault_messages(["Should omit."], result.omissions)
59
- end
60
-
61
- def test_omit_with_block
62
- result = _run_test("test_omit_with_block")
63
- assert_equal("1 tests, 1 assertions, 0 failures, 0 errors, 0 pendings, " \
64
- "1 omissions, 0 notifications",
65
- result.to_s)
66
- assert_fault_messages(["Omit block"], result.omissions)
67
- end
68
-
69
- def test_omit_with_condition_and_block
70
- result = _run_test("test_omit_with_block_and_condition")
71
- assert_equal("1 tests, 2 assertions, 0 failures, 0 errors, 0 pendings, " \
72
- "1 omissions, 0 notifications",
73
- result.to_s)
74
- assert_fault_messages(["Should omit."], result.omissions)
75
- end
76
-
77
- private
78
- def _run_test(name)
79
- super(TestCase, name)
80
- end
81
- end