rroonga 0.9.4-x86-mingw32 → 0.9.5-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/NEWS.ja.rdoc +29 -0
- data/NEWS.rdoc +29 -0
- data/Rakefile +6 -6
- data/ext/groonga/rb-grn-array.c +1 -1
- data/ext/groonga/rb-grn-context.c +15 -28
- data/ext/groonga/rb-grn-exception.c +46 -1
- data/ext/groonga/rb-grn-expression.c +22 -13
- data/ext/groonga/rb-grn-fix-size-column.c +2 -8
- data/ext/groonga/rb-grn-hash.c +8 -1
- data/ext/groonga/rb-grn-object.c +1 -1
- data/ext/groonga/rb-grn-patricia-trie.c +23 -1
- data/ext/groonga/rb-grn-table-key-support.c +22 -0
- data/ext/groonga/rb-grn-table.c +37 -5
- data/ext/groonga/rb-grn-utils.c +20 -2
- data/ext/groonga/rb-grn.h +1 -1
- data/ext/groonga/rb-groonga.c +76 -38
- data/extconf.rb +17 -1
- data/html/developer.html +32 -7
- data/html/footer.html.erb +5 -0
- data/html/heading-mark.svg +393 -0
- data/html/index.html +33 -3
- data/lib/1.8/groonga.so +0 -0
- data/lib/1.9/groonga.so +0 -0
- data/lib/groonga.rb +3 -7
- data/lib/groonga/context.rb +2 -13
- data/lib/groonga/expression-builder.rb +273 -67
- data/lib/groonga/pagination.rb +143 -0
- data/lib/groonga/record.rb +2 -0
- data/lib/groonga/schema.rb +140 -29
- data/pkg/rroonga-0.9.5/NEWS.ja.rdoc +156 -0
- data/pkg/rroonga-0.9.5/NEWS.rdoc +158 -0
- data/pkg/rroonga-0.9.5/README.ja.rdoc +65 -0
- data/pkg/rroonga-0.9.5/README.rdoc +66 -0
- data/pkg/rroonga-0.9.5/text/TUTORIAL.ja.rdoc +394 -0
- data/pkg/rroonga-0.9.5/text/expression.rdoc +285 -0
- data/rroonga-build.rb +2 -2
- data/test-unit/Rakefile +40 -0
- data/test-unit/TODO +5 -0
- data/test-unit/bin/testrb +5 -0
- data/test-unit/html/classic.html +15 -0
- data/test-unit/html/index.html +25 -0
- data/test-unit/html/index.html.ja +27 -0
- data/test-unit/lib/test/unit.rb +323 -0
- data/test-unit/lib/test/unit/assertionfailederror.rb +25 -0
- data/test-unit/lib/test/unit/assertions.rb +1230 -0
- data/test-unit/lib/test/unit/attribute.rb +125 -0
- data/test-unit/lib/test/unit/autorunner.rb +360 -0
- data/test-unit/lib/test/unit/collector.rb +36 -0
- data/test-unit/lib/test/unit/collector/descendant.rb +23 -0
- data/test-unit/lib/test/unit/collector/dir.rb +108 -0
- data/test-unit/lib/test/unit/collector/load.rb +144 -0
- data/test-unit/lib/test/unit/collector/objectspace.rb +34 -0
- data/test-unit/lib/test/unit/color-scheme.rb +102 -0
- data/test-unit/lib/test/unit/color.rb +96 -0
- data/test-unit/lib/test/unit/diff.rb +724 -0
- data/test-unit/lib/test/unit/error.rb +130 -0
- data/test-unit/lib/test/unit/exceptionhandler.rb +39 -0
- data/test-unit/lib/test/unit/failure.rb +136 -0
- data/test-unit/lib/test/unit/fixture.rb +176 -0
- data/test-unit/lib/test/unit/notification.rb +129 -0
- data/test-unit/lib/test/unit/omission.rb +191 -0
- data/test-unit/lib/test/unit/pending.rb +150 -0
- data/test-unit/lib/test/unit/priority.rb +180 -0
- data/test-unit/lib/test/unit/runner/console.rb +52 -0
- data/test-unit/lib/test/unit/runner/emacs.rb +8 -0
- data/test-unit/lib/test/unit/runner/tap.rb +8 -0
- data/test-unit/lib/test/unit/testcase.rb +476 -0
- data/test-unit/lib/test/unit/testresult.rb +89 -0
- data/test-unit/lib/test/unit/testsuite.rb +110 -0
- data/test-unit/lib/test/unit/ui/console/outputlevel.rb +14 -0
- data/test-unit/lib/test/unit/ui/console/testrunner.rb +466 -0
- data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +63 -0
- data/test-unit/lib/test/unit/ui/tap/testrunner.rb +92 -0
- data/test-unit/lib/test/unit/ui/testrunner.rb +28 -0
- data/test-unit/lib/test/unit/ui/testrunnermediator.rb +77 -0
- data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +41 -0
- data/test-unit/lib/test/unit/util/backtracefilter.rb +41 -0
- data/test-unit/lib/test/unit/util/method-owner-finder.rb +28 -0
- data/test-unit/lib/test/unit/util/observable.rb +90 -0
- data/test-unit/lib/test/unit/util/procwrapper.rb +48 -0
- data/test-unit/lib/test/unit/version.rb +7 -0
- data/test-unit/sample/adder.rb +13 -0
- data/test-unit/sample/subtracter.rb +12 -0
- data/test-unit/sample/test_adder.rb +20 -0
- data/test-unit/sample/test_subtracter.rb +20 -0
- data/test-unit/sample/test_user.rb +23 -0
- data/test-unit/test/collector/test-descendant.rb +133 -0
- data/test-unit/test/collector/test-load.rb +442 -0
- data/test-unit/test/collector/test_dir.rb +406 -0
- data/test-unit/test/collector/test_objectspace.rb +100 -0
- data/test-unit/test/run-test.rb +15 -0
- data/test-unit/test/test-attribute.rb +86 -0
- data/test-unit/test/test-color-scheme.rb +67 -0
- data/test-unit/test/test-color.rb +47 -0
- data/test-unit/test/test-diff.rb +518 -0
- data/test-unit/test/test-emacs-runner.rb +60 -0
- data/test-unit/test/test-fixture.rb +287 -0
- data/test-unit/test/test-notification.rb +33 -0
- data/test-unit/test/test-omission.rb +81 -0
- data/test-unit/test/test-pending.rb +70 -0
- data/test-unit/test/test-priority.rb +119 -0
- data/test-unit/test/test-testcase.rb +544 -0
- data/test-unit/test/test_assertions.rb +1151 -0
- data/test-unit/test/test_error.rb +26 -0
- data/test-unit/test/test_failure.rb +33 -0
- data/test-unit/test/test_testresult.rb +113 -0
- data/test-unit/test/test_testsuite.rb +129 -0
- data/test-unit/test/testunit-test-util.rb +14 -0
- data/test-unit/test/ui/test_testrunmediator.rb +20 -0
- data/test-unit/test/util/test-method-owner-finder.rb +38 -0
- data/test-unit/test/util/test_backtracefilter.rb +41 -0
- data/test-unit/test/util/test_observable.rb +102 -0
- data/test-unit/test/util/test_procwrapper.rb +36 -0
- data/test/groonga-test-utils.rb +3 -2
- data/test/run-test.rb +14 -2
- data/test/test-column.rb +7 -7
- data/test/test-context-select.rb +34 -11
- data/test/test-exception.rb +3 -0
- data/test/test-expression-builder.rb +11 -0
- data/test/test-expression.rb +3 -6
- data/test/test-gqtp.rb +3 -5
- data/test/test-pagination.rb +249 -0
- data/test/test-record.rb +36 -8
- data/test/test-remote.rb +11 -4
- data/test/test-schema-create-table.rb +251 -0
- data/test/test-schema.rb +4 -24
- data/test/test-table-offset-and-limit.rb +3 -5
- data/test/test-table-select-mecab.rb +80 -0
- data/test/test-table-select-weight.rb +104 -0
- data/test/test-table.rb +22 -4
- data/test/test-version.rb +1 -1
- data/text/TUTORIAL.ja.rdoc +2 -0
- data/text/expression.rdoc +1 -0
- data/vendor/local/bin/grntest.exe +0 -0
- data/vendor/local/bin/groonga.exe +0 -0
- data/vendor/local/bin/libgroonga-0.dll +0 -0
- data/vendor/local/include/{groonga.h → groonga/groonga.h} +93 -32
- data/vendor/local/lib/groonga/modules/functions/cast.dll +0 -0
- data/vendor/local/lib/groonga/modules/functions/cast.la +41 -0
- data/vendor/local/lib/pkgconfig/groonga.pc +12 -0
- data/vendor/local/share/groonga/admin_html/css/admin.css +104 -0
- data/vendor/local/share/groonga/admin_html/css/ui-lightness/jquery-ui-1.8.1.custom.css +486 -0
- data/vendor/local/share/groonga/admin_html/index.html +1355 -0
- data/vendor/local/share/groonga/admin_html/js/jquery-1.4.2.min.js +154 -0
- data/vendor/local/share/groonga/admin_html/js/jquery-ui-1.8.1.custom.min.js +756 -0
- data/vendor/local/share/groonga/munin/plugins/groonga_cpu_load +47 -0
- data/vendor/local/share/groonga/munin/plugins/groonga_cpu_time +57 -0
- data/vendor/local/share/groonga/munin/plugins/groonga_disk +162 -0
- data/vendor/local/share/groonga/munin/plugins/groonga_memory +51 -0
- data/vendor/local/share/groonga/munin/plugins/groonga_n_records +110 -0
- data/vendor/local/share/groonga/munin/plugins/groonga_query_performance +133 -0
- data/vendor/local/share/groonga/munin/plugins/groonga_status +84 -0
- metadata +126 -36
@@ -0,0 +1,129 @@
|
|
1
|
+
require 'test/unit/util/backtracefilter'
|
2
|
+
|
3
|
+
module Test
|
4
|
+
module Unit
|
5
|
+
class Notification
|
6
|
+
include Util::BacktraceFilter
|
7
|
+
attr_reader :test_name, :location, :message
|
8
|
+
|
9
|
+
SINGLE_CHARACTER = 'N'
|
10
|
+
LABEL = "Notification"
|
11
|
+
|
12
|
+
# Creates a new Notification with the given location and
|
13
|
+
# message.
|
14
|
+
def initialize(test_name, location, message)
|
15
|
+
@test_name = test_name
|
16
|
+
@location = location
|
17
|
+
@message = message
|
18
|
+
end
|
19
|
+
|
20
|
+
# Returns a single character representation of a notification.
|
21
|
+
def single_character_display
|
22
|
+
SINGLE_CHARACTER
|
23
|
+
end
|
24
|
+
|
25
|
+
def label
|
26
|
+
LABEL
|
27
|
+
end
|
28
|
+
|
29
|
+
# Returns a brief version of the error description.
|
30
|
+
def short_display
|
31
|
+
"#{@test_name}: #{@message.split("\n")[0]}"
|
32
|
+
end
|
33
|
+
|
34
|
+
# Returns a verbose version of the error description.
|
35
|
+
def long_display
|
36
|
+
backtrace = filter_backtrace(location).join("\n")
|
37
|
+
"#{label}: #{@message}\n#{@test_name}\n#{backtrace}"
|
38
|
+
end
|
39
|
+
|
40
|
+
# Overridden to return long_display.
|
41
|
+
def to_s
|
42
|
+
long_display
|
43
|
+
end
|
44
|
+
|
45
|
+
def critical?
|
46
|
+
false
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
class NotifiedError < StandardError
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
module TestCaseNotificationSupport
|
55
|
+
class << self
|
56
|
+
def included(base)
|
57
|
+
base.class_eval do
|
58
|
+
include NotificationHandler
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
# Notify some information.
|
64
|
+
#
|
65
|
+
# Example:
|
66
|
+
# def test_notification
|
67
|
+
# notify("I'm here!")
|
68
|
+
# # Reached here
|
69
|
+
# notify("Special!") if special_case?
|
70
|
+
# # Reached here too
|
71
|
+
# end
|
72
|
+
def notify(message, &block)
|
73
|
+
notification = Notification.new(name, filter_backtrace(caller), message)
|
74
|
+
add_notification(notification)
|
75
|
+
end
|
76
|
+
|
77
|
+
private
|
78
|
+
def add_notification(notification)
|
79
|
+
current_result.add_notification(notification)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
module NotificationHandler
|
84
|
+
class << self
|
85
|
+
def included(base)
|
86
|
+
base.exception_handler(:handle_notified_error)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
private
|
91
|
+
def handle_notified_error(exception)
|
92
|
+
return false unless exception.is_a?(NotifiedError)
|
93
|
+
notification = Notification.new(name,
|
94
|
+
filter_backtrace(exception.backtrace),
|
95
|
+
exception.message)
|
96
|
+
add_notification(notification)
|
97
|
+
true
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
module TestResultNotificationSupport
|
102
|
+
attr_reader :notifications
|
103
|
+
|
104
|
+
# Records a Test::Unit::Notification.
|
105
|
+
def add_notification(notification)
|
106
|
+
@notifications << notification
|
107
|
+
notify_fault(notification)
|
108
|
+
notify_changed
|
109
|
+
end
|
110
|
+
|
111
|
+
# Returns the number of notifications this TestResult has
|
112
|
+
# recorded.
|
113
|
+
def notification_count
|
114
|
+
@notifications.size
|
115
|
+
end
|
116
|
+
|
117
|
+
private
|
118
|
+
def initialize_containers
|
119
|
+
super
|
120
|
+
@notifications = []
|
121
|
+
@summary_generators << :notification_summary
|
122
|
+
end
|
123
|
+
|
124
|
+
def notification_summary
|
125
|
+
"#{notification_count} notifications"
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
@@ -0,0 +1,191 @@
|
|
1
|
+
require 'test/unit/util/backtracefilter'
|
2
|
+
|
3
|
+
module Test
|
4
|
+
module Unit
|
5
|
+
class Omission
|
6
|
+
include Util::BacktraceFilter
|
7
|
+
attr_reader :test_name, :location, :message
|
8
|
+
|
9
|
+
SINGLE_CHARACTER = 'O'
|
10
|
+
LABEL = "Omission"
|
11
|
+
|
12
|
+
# Creates a new Omission with the given location and
|
13
|
+
# message.
|
14
|
+
def initialize(test_name, location, message)
|
15
|
+
@test_name = test_name
|
16
|
+
@location = location
|
17
|
+
@message = message
|
18
|
+
end
|
19
|
+
|
20
|
+
# Returns a single character representation of a omission.
|
21
|
+
def single_character_display
|
22
|
+
SINGLE_CHARACTER
|
23
|
+
end
|
24
|
+
|
25
|
+
def label
|
26
|
+
LABEL
|
27
|
+
end
|
28
|
+
|
29
|
+
# Returns a brief version of the error description.
|
30
|
+
def short_display
|
31
|
+
"#{@test_name}: #{@message.split("\n")[0]}"
|
32
|
+
end
|
33
|
+
|
34
|
+
# Returns a verbose version of the error description.
|
35
|
+
def long_display
|
36
|
+
backtrace = filter_backtrace(location).join("\n")
|
37
|
+
"#{label}: #{@message}\n#{@test_name}\n#{backtrace}"
|
38
|
+
end
|
39
|
+
|
40
|
+
# Overridden to return long_display.
|
41
|
+
def to_s
|
42
|
+
long_display
|
43
|
+
end
|
44
|
+
|
45
|
+
def critical?
|
46
|
+
true
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
class OmittedError < StandardError
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
module TestCaseOmissionSupport
|
55
|
+
class << self
|
56
|
+
def included(base)
|
57
|
+
base.class_eval do
|
58
|
+
include OmissionHandler
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
# Omit the test or part of the test.
|
64
|
+
#
|
65
|
+
# Example:
|
66
|
+
# def test_omission
|
67
|
+
# omit
|
68
|
+
# # Not reached here
|
69
|
+
# end
|
70
|
+
#
|
71
|
+
# def test_omission_with_here
|
72
|
+
# omit do
|
73
|
+
# # Not ran here
|
74
|
+
# end
|
75
|
+
# # Reached here
|
76
|
+
# end
|
77
|
+
def omit(message=nil, &block)
|
78
|
+
message ||= "omitted."
|
79
|
+
if block_given?
|
80
|
+
omission = Omission.new(name, filter_backtrace(caller), message)
|
81
|
+
add_omission(omission)
|
82
|
+
else
|
83
|
+
raise OmittedError.new(message)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
# Omit the test or part of the test if _condition_ is
|
88
|
+
# true.
|
89
|
+
#
|
90
|
+
# Example:
|
91
|
+
# def test_omission
|
92
|
+
# omit_if("".empty?)
|
93
|
+
# # Not reached here
|
94
|
+
# end
|
95
|
+
#
|
96
|
+
# def test_omission_with_here
|
97
|
+
# omit_if(true) do
|
98
|
+
# # Not ran here
|
99
|
+
# end
|
100
|
+
# omit_if(false) do
|
101
|
+
# # Reached here
|
102
|
+
# end
|
103
|
+
# # Reached here too
|
104
|
+
# end
|
105
|
+
def omit_if(condition, *args, &block)
|
106
|
+
if condition
|
107
|
+
omit(*args, &block)
|
108
|
+
else
|
109
|
+
block.call if block
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
# Omit the test or part of the test if _condition_ is
|
114
|
+
# not true.
|
115
|
+
#
|
116
|
+
# Example:
|
117
|
+
# def test_omission
|
118
|
+
# omit_unless("string".empty?)
|
119
|
+
# # Not reached here
|
120
|
+
# end
|
121
|
+
#
|
122
|
+
# def test_omission_with_here
|
123
|
+
# omit_unless(true) do
|
124
|
+
# # Reached here
|
125
|
+
# end
|
126
|
+
# omit_unless(false) do
|
127
|
+
# # Not ran here
|
128
|
+
# end
|
129
|
+
# # Reached here too
|
130
|
+
# end
|
131
|
+
def omit_unless(condition, *args, &block)
|
132
|
+
if condition
|
133
|
+
block.call if block
|
134
|
+
else
|
135
|
+
omit(*args, &block)
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
private
|
140
|
+
def add_omission(omission)
|
141
|
+
current_result.add_omission(omission)
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
module OmissionHandler
|
146
|
+
class << self
|
147
|
+
def included(base)
|
148
|
+
base.exception_handler(:handle_omitted_error)
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
private
|
153
|
+
def handle_omitted_error(exception)
|
154
|
+
return false unless exception.is_a?(OmittedError)
|
155
|
+
omission = Omission.new(name,
|
156
|
+
filter_backtrace(exception.backtrace),
|
157
|
+
exception.message)
|
158
|
+
add_omission(omission)
|
159
|
+
true
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
module TestResultOmissionSupport
|
164
|
+
attr_reader :omissions
|
165
|
+
|
166
|
+
# Records a Test::Unit::Omission.
|
167
|
+
def add_omission(omission)
|
168
|
+
@omissions << omission
|
169
|
+
notify_fault(omission)
|
170
|
+
notify_changed
|
171
|
+
end
|
172
|
+
|
173
|
+
# Returns the number of omissions this TestResult has
|
174
|
+
# recorded.
|
175
|
+
def omission_count
|
176
|
+
@omissions.size
|
177
|
+
end
|
178
|
+
|
179
|
+
private
|
180
|
+
def initialize_containers
|
181
|
+
super
|
182
|
+
@omissions = []
|
183
|
+
@summary_generators << :omission_summary
|
184
|
+
end
|
185
|
+
|
186
|
+
def omission_summary
|
187
|
+
"#{omission_count} omissions"
|
188
|
+
end
|
189
|
+
end
|
190
|
+
end
|
191
|
+
end
|
@@ -0,0 +1,150 @@
|
|
1
|
+
require 'test/unit/util/backtracefilter'
|
2
|
+
|
3
|
+
module Test
|
4
|
+
module Unit
|
5
|
+
class Pending
|
6
|
+
include Util::BacktraceFilter
|
7
|
+
attr_reader :test_name, :location, :message
|
8
|
+
|
9
|
+
SINGLE_CHARACTER = 'P'
|
10
|
+
LABEL = "Pending"
|
11
|
+
|
12
|
+
# Creates a new Pending with the given location and
|
13
|
+
# message.
|
14
|
+
def initialize(test_name, location, message)
|
15
|
+
@test_name = test_name
|
16
|
+
@location = location
|
17
|
+
@message = message
|
18
|
+
end
|
19
|
+
|
20
|
+
# Returns a single character representation of a pending.
|
21
|
+
def single_character_display
|
22
|
+
SINGLE_CHARACTER
|
23
|
+
end
|
24
|
+
|
25
|
+
def label
|
26
|
+
LABEL
|
27
|
+
end
|
28
|
+
|
29
|
+
# Returns a brief version of the error description.
|
30
|
+
def short_display
|
31
|
+
"#{@test_name}: #{@message.split("\n")[0]}"
|
32
|
+
end
|
33
|
+
|
34
|
+
# Returns a verbose version of the error description.
|
35
|
+
def long_display
|
36
|
+
backtrace = filter_backtrace(location).join("\n")
|
37
|
+
"#{label}: #{@message}\n#{@test_name}\n#{backtrace}"
|
38
|
+
end
|
39
|
+
|
40
|
+
# Overridden to return long_display.
|
41
|
+
def to_s
|
42
|
+
long_display
|
43
|
+
end
|
44
|
+
|
45
|
+
def critical?
|
46
|
+
true
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
class PendedError < StandardError
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
module TestCasePendingSupport
|
55
|
+
class << self
|
56
|
+
def included(base)
|
57
|
+
base.class_eval do
|
58
|
+
include PendingHandler
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
# Marks the test or part of the test is pending.
|
64
|
+
#
|
65
|
+
# Example:
|
66
|
+
# def test_pending
|
67
|
+
# pend
|
68
|
+
# # Not reached here
|
69
|
+
# end
|
70
|
+
#
|
71
|
+
# def test_pending_with_here
|
72
|
+
# pend do
|
73
|
+
# # Ran here
|
74
|
+
# # Fails if the block doesn't raise any error.
|
75
|
+
# # Because it means the block is passed unexpectedly.
|
76
|
+
# end
|
77
|
+
# # Reached here
|
78
|
+
# end
|
79
|
+
def pend(message=nil, &block)
|
80
|
+
message ||= "pended."
|
81
|
+
if block_given?
|
82
|
+
pending = nil
|
83
|
+
begin
|
84
|
+
yield
|
85
|
+
rescue Exception
|
86
|
+
pending = Pending.new(name, filter_backtrace(caller), message)
|
87
|
+
add_pending(pending)
|
88
|
+
end
|
89
|
+
unless pending
|
90
|
+
flunk("Pending block should not be passed: #{message}")
|
91
|
+
end
|
92
|
+
else
|
93
|
+
raise PendedError.new(message)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
private
|
98
|
+
def add_pending(pending)
|
99
|
+
problem_occurred
|
100
|
+
current_result.add_pending(pending)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
module PendingHandler
|
105
|
+
class << self
|
106
|
+
def included(base)
|
107
|
+
base.exception_handler(:handle_pended_error)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
private
|
112
|
+
def handle_pended_error(exception)
|
113
|
+
return false unless exception.is_a?(PendedError)
|
114
|
+
pending = Pending.new(name,
|
115
|
+
filter_backtrace(exception.backtrace),
|
116
|
+
exception.message)
|
117
|
+
add_pending(pending)
|
118
|
+
true
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
module TestResultPendingSupport
|
123
|
+
attr_reader :pendings
|
124
|
+
|
125
|
+
# Records a Test::Unit::Pending.
|
126
|
+
def add_pending(pending)
|
127
|
+
@pendings << pending
|
128
|
+
notify_fault(pending)
|
129
|
+
notify_changed
|
130
|
+
end
|
131
|
+
|
132
|
+
# Returns the number of pendings this TestResult has
|
133
|
+
# recorded.
|
134
|
+
def pending_count
|
135
|
+
@pendings.size
|
136
|
+
end
|
137
|
+
|
138
|
+
private
|
139
|
+
def initialize_containers
|
140
|
+
super
|
141
|
+
@pendings = []
|
142
|
+
@summary_generators << :pending_summary
|
143
|
+
end
|
144
|
+
|
145
|
+
def pending_summary
|
146
|
+
"#{pending_count} pendings"
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|