win32-api 1.10.0 → 1.10.1
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.
- checksums.yaml +4 -4
- data/CHANGES +3 -0
- data/Gemfile.lock +5 -5
- data/ext/mkmf.log +3 -27
- data/ext/win32/api.c +16 -15
- data/lib/win32/ruby2_32/win32/api.so +0 -0
- data/pkg/win32-api-1.10.1-universal-mingw32.gem +0 -0
- data/test/test_win32_api.rb +1 -1
- data/vendor/bundle/ruby/3.0.0/bin/rake +27 -0
- data/vendor/bundle/ruby/3.0.0/bin/rake.bat +2 -0
- data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/BSDL +22 -0
- data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/COPYING +57 -0
- data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/Gemfile +9 -0
- data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/LEGAL +4 -0
- data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/README.md +96 -0
- data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/Rakefile +59 -0
- data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/bin/console +12 -0
- data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/bin/setup +6 -0
- data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/lib/power_assert.rb +91 -0
- data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/lib/power_assert/colorize.rb +7 -0
- data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/lib/power_assert/configuration.rb +46 -0
- data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/lib/power_assert/context.rb +233 -0
- data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/lib/power_assert/enable_tracepoint_events.rb +58 -0
- data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/lib/power_assert/inspector.rb +62 -0
- data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/lib/power_assert/parser.rb +251 -0
- data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/lib/power_assert/version.rb +3 -0
- data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/power_assert.gemspec +31 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/CONTRIBUTING.rdoc +43 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/Gemfile +10 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/History.rdoc +2386 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/README.rdoc +155 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/Rakefile +41 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/bin/bundle +105 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/bin/console +7 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/bin/rake +29 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/bin/rdoc +29 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/bin/rubocop +29 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/bin/setup +6 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/command_line_usage.rdoc +158 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/example/Rakefile1 +38 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/example/Rakefile2 +35 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/example/a.c +6 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/example/b.c +6 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/example/main.c +11 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/glossary.rdoc +42 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/jamis.rb +592 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/proto_rake.rdoc +127 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/rake.1 +156 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/rakefile.rdoc +622 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/rational.rdoc +151 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/exe/rake +27 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake.rb +71 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/application.rb +824 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/backtrace.rb +24 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/clean.rb +78 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/cloneable.rb +17 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/cpu_counter.rb +107 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/default_loader.rb +15 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/dsl_definition.rb +195 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/early_time.rb +22 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/ext/core.rb +26 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/ext/string.rb +176 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/file_creation_task.rb +25 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/file_list.rb +435 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/file_task.rb +54 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/file_utils.rb +134 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/file_utils_ext.rb +134 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/invocation_chain.rb +57 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/invocation_exception_mixin.rb +17 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/late_time.rb +18 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/linked_list.rb +112 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/loaders/makefile.rb +54 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/multi_task.rb +14 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/name_space.rb +38 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/packagetask.rb +222 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/phony.rb +16 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/private_reader.rb +21 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/promise.rb +100 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/pseudo_status.rb +30 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/rake_module.rb +67 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/rake_test_loader.rb +27 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/rule_recursion_overflow_error.rb +20 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/scope.rb +43 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/task.rb +434 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/task_argument_error.rb +8 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/task_arguments.rb +109 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/task_manager.rb +331 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/tasklib.rb +12 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/testtask.rb +189 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/thread_history_display.rb +49 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/thread_pool.rb +163 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/trace_output.rb +23 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/version.rb +10 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/win32.rb +51 -0
- data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/rake.gemspec +43 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/BSDL +24 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/COPYING +64 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/PSFL +271 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/README.md +97 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/Rakefile +66 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/doc/text/getting-started.md +246 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/doc/text/how-to.md +90 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/doc/text/news.md +1552 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test-unit.rb +19 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit.rb +521 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/assertion-failed-error.rb +25 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/assertions.rb +2256 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/attribute-matcher.rb +26 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/attribute.rb +227 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/auto-runner-loader.rb +17 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/autorunner.rb +569 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/code-snippet-fetcher.rb +58 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/collector.rb +73 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/collector/descendant.rb +19 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/collector/dir.rb +108 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/collector/load.rb +197 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/collector/objectspace.rb +34 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/collector/xml.rb +249 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/color-scheme.rb +216 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/color.rb +134 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/data-sets.rb +116 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/data.rb +371 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/diff.rb +745 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/error.rb +158 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/exception-handler.rb +82 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/failure.rb +169 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/fault-location-detector.rb +100 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/fixture.rb +304 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/notification.rb +138 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/omission.rb +198 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/pending.rb +155 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/priority.rb +196 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/runner/console.rb +67 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/runner/emacs.rb +8 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/runner/xml.rb +15 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/test-suite-creator.rb +103 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/testcase.rb +899 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/testresult.rb +132 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/testsuite.rb +175 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/ui/console/outputlevel.rb +15 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/ui/console/testrunner.rb +733 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/ui/emacs/testrunner.rb +49 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/ui/testrunner.rb +53 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/ui/testrunnermediator.rb +114 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/ui/testrunnerutilities.rb +41 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/ui/xml/testrunner.rb +224 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/util/backtracefilter.rb +59 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/util/method-owner-finder.rb +28 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/util/observable.rb +90 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/util/output.rb +32 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/util/procwrapper.rb +48 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/version.rb +5 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/warning.rb +3 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/sample/adder.rb +13 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/sample/subtracter.rb +12 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/sample/test_adder.rb +20 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/sample/test_subtracter.rb +20 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/sample/test_user.rb +23 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/collector/test-descendant.rb +182 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/collector/test-load.rb +475 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/collector/test_dir.rb +407 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/collector/test_objectspace.rb +102 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/fixtures/header-label.csv +3 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/fixtures/header-label.tsv +3 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/fixtures/header.csv +3 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/fixtures/header.tsv +3 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/fixtures/no-header.csv +2 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/fixtures/no-header.tsv +2 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/fixtures/plus.csv +3 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/run-test.rb +22 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-assertions.rb +2187 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-attribute-matcher.rb +38 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-attribute.rb +123 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-code-snippet.rb +79 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-color-scheme.rb +123 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-color.rb +47 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-data.rb +419 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-diff.rb +518 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-emacs-runner.rb +60 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-error.rb +26 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-failure.rb +33 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-fault-location-detector.rb +163 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-fixture.rb +713 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-notification.rb +33 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-omission.rb +81 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-pending.rb +70 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-priority.rb +184 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-test-case.rb +1284 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-test-result.rb +113 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-test-suite-creator.rb +97 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-test-suite.rb +151 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/testunit-test-util.rb +33 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/ui/test_testrunmediator.rb +20 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/util/test-method-owner-finder.rb +38 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/util/test-output.rb +11 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/util/test_backtracefilter.rb +52 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/util/test_observable.rb +102 -0
- data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/util/test_procwrapper.rb +36 -0
- data/vendor/bundle/ruby/3.0.0/specifications/power_assert-2.0.0.gemspec +46 -0
- data/vendor/bundle/ruby/3.0.0/specifications/rake-13.0.3.gemspec +26 -0
- data/vendor/bundle/ruby/3.0.0/specifications/test-unit-3.4.1.gemspec +41 -0
- data/win32-api.gemspec +1 -1
- metadata +199 -8
- data/ext/Makefile +0 -269
- data/ext/api-x64-mingw32.def +0 -2
- data/ext/api.o +0 -0
- data/ext/api.so +0 -0
- data/ext/win32/api.so +0 -0
@@ -0,0 +1,304 @@
|
|
1
|
+
module Test
|
2
|
+
module Unit
|
3
|
+
module Fixture
|
4
|
+
class << self
|
5
|
+
def included(base)
|
6
|
+
base.extend(ClassMethods)
|
7
|
+
|
8
|
+
[:setup, :cleanup, :teardown].each do |type|
|
9
|
+
observer = lambda do |test_case, _, _, value, callback|
|
10
|
+
if value.nil?
|
11
|
+
test_case.fixture[type].unregister(callback)
|
12
|
+
else
|
13
|
+
test_case.fixture[type].register(callback, value)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
base.register_attribute_observer(type, &observer)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class Fixture
|
22
|
+
attr_reader :setup
|
23
|
+
attr_reader :cleanup
|
24
|
+
attr_reader :teardown
|
25
|
+
def initialize(test_case)
|
26
|
+
@test_case = test_case
|
27
|
+
@setup = HookPoint.new(@test_case, :setup, :after => :append)
|
28
|
+
@cleanup = HookPoint.new(@test_case, :cleanup, :before => :prepend)
|
29
|
+
@teardown = HookPoint.new(@test_case, :teardown, :before => :prepend)
|
30
|
+
@cached_before_callbacks = {}
|
31
|
+
@cached_after_callbacks = {}
|
32
|
+
end
|
33
|
+
|
34
|
+
def [](type)
|
35
|
+
case type
|
36
|
+
when :setup
|
37
|
+
@setup
|
38
|
+
when :cleanup
|
39
|
+
@cleanup
|
40
|
+
when :teardown
|
41
|
+
@teardown
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def before_callbacks(type)
|
46
|
+
@cached_before_callbacks[type] ||= collect_before_callbacks(type)
|
47
|
+
end
|
48
|
+
|
49
|
+
def after_callbacks(type)
|
50
|
+
@cached_after_callbacks[type] ||= collect_after_callbacks(type)
|
51
|
+
end
|
52
|
+
|
53
|
+
private
|
54
|
+
def target_test_cases
|
55
|
+
@cached_target_test_cases ||= collect_target_test_cases
|
56
|
+
end
|
57
|
+
|
58
|
+
def collect_before_callbacks(type)
|
59
|
+
prepend_callbacks = []
|
60
|
+
append_callbacks = []
|
61
|
+
target_test_cases.each do |ancestor|
|
62
|
+
prepend_callbacks << ancestor.fixture[type].before_prepend_callbacks
|
63
|
+
append_callbacks << ancestor.fixture[type].before_append_callbacks
|
64
|
+
end
|
65
|
+
|
66
|
+
merge_callbacks(prepend_callbacks, append_callbacks)
|
67
|
+
end
|
68
|
+
|
69
|
+
def collect_after_callbacks(type)
|
70
|
+
prepend_callbacks = []
|
71
|
+
append_callbacks = []
|
72
|
+
target_test_cases.each do |ancestor|
|
73
|
+
prepend_callbacks << ancestor.fixture[type].after_prepend_callbacks
|
74
|
+
append_callbacks << ancestor.fixture[type].after_append_callbacks
|
75
|
+
end
|
76
|
+
|
77
|
+
merge_callbacks(prepend_callbacks, append_callbacks)
|
78
|
+
end
|
79
|
+
|
80
|
+
def collect_target_test_cases
|
81
|
+
ancestors = @test_case.ancestors
|
82
|
+
base_index = ancestors.index(::Test::Unit::Fixture)
|
83
|
+
interested_ancestors = ancestors[0, base_index].find_all do |ancestor|
|
84
|
+
ancestor.is_a?(Class)
|
85
|
+
end
|
86
|
+
interested_ancestors.reverse
|
87
|
+
end
|
88
|
+
|
89
|
+
def merge_callbacks(prepend_callbacks, append_callbacks)
|
90
|
+
all_callbacks = []
|
91
|
+
prepend_callbacks.reverse_each do |callbacks|
|
92
|
+
all_callbacks.concat(callbacks)
|
93
|
+
end
|
94
|
+
append_callbacks.each do |callbacks|
|
95
|
+
all_callbacks.concat(callbacks)
|
96
|
+
end
|
97
|
+
all_callbacks
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
class HookPoint
|
102
|
+
def initialize(test_case, type, default_options)
|
103
|
+
@test_case = test_case
|
104
|
+
@type = type
|
105
|
+
@default_options = default_options
|
106
|
+
@callbacks = {}
|
107
|
+
@before_prepend_callbacks = []
|
108
|
+
@before_append_callbacks = []
|
109
|
+
@after_prepend_callbacks = []
|
110
|
+
@after_append_callbacks = []
|
111
|
+
@unregistered_callbacks = []
|
112
|
+
end
|
113
|
+
|
114
|
+
def register(method_name_or_callback, options=nil)
|
115
|
+
options ||= {}
|
116
|
+
unless valid_register_options?(options)
|
117
|
+
message = "must be {:before => :prepend}, " +
|
118
|
+
"{:before => :append}, {:after => :prepend} or " +
|
119
|
+
"{:after => :append}: #{options.inspect}"
|
120
|
+
raise ArgumentError, message
|
121
|
+
end
|
122
|
+
|
123
|
+
if options.empty?
|
124
|
+
options = @default_options
|
125
|
+
end
|
126
|
+
before_how = options[:before]
|
127
|
+
after_how = options[:after]
|
128
|
+
if method_name_or_callback.respond_to?(:call)
|
129
|
+
callback = method_name_or_callback
|
130
|
+
method_name = callback_method_name(callback)
|
131
|
+
@test_case.attribute(:source_location,
|
132
|
+
callback.source_location,
|
133
|
+
method_name)
|
134
|
+
# For Ruby 2.6 or earlier. callback may be GC-ed. If
|
135
|
+
# callback is GC-ed, callback_method_name may be
|
136
|
+
# duplicated because callback_method_name uses callback.object_id.
|
137
|
+
# See also: https://github.com/test-unit/test-unit/issues/179
|
138
|
+
@callbacks[callback] = true
|
139
|
+
@test_case.__send__(:define_method, method_name, &callback)
|
140
|
+
else
|
141
|
+
method_name = method_name_or_callback
|
142
|
+
end
|
143
|
+
add_callback(method_name, before_how, after_how)
|
144
|
+
end
|
145
|
+
|
146
|
+
def unregister(method_name_or_callback)
|
147
|
+
if method_name_or_callback.respond_to?(:call)
|
148
|
+
callback = method_name_or_callback
|
149
|
+
method_name = callback_method_name(callback)
|
150
|
+
else
|
151
|
+
method_name = method_name_or_callback
|
152
|
+
end
|
153
|
+
@unregistered_callbacks << method_name
|
154
|
+
end
|
155
|
+
|
156
|
+
def before_prepend_callbacks
|
157
|
+
@before_prepend_callbacks - @unregistered_callbacks
|
158
|
+
end
|
159
|
+
|
160
|
+
def before_append_callbacks
|
161
|
+
@before_append_callbacks - @unregistered_callbacks
|
162
|
+
end
|
163
|
+
|
164
|
+
def after_prepend_callbacks
|
165
|
+
@after_prepend_callbacks - @unregistered_callbacks
|
166
|
+
end
|
167
|
+
|
168
|
+
def after_append_callbacks
|
169
|
+
@after_append_callbacks - @unregistered_callbacks
|
170
|
+
end
|
171
|
+
|
172
|
+
private
|
173
|
+
def valid_register_options?(options)
|
174
|
+
return true if options.empty?
|
175
|
+
return false if options.size > 1
|
176
|
+
|
177
|
+
key = options.keys.first
|
178
|
+
[:before, :after].include?(key) and
|
179
|
+
[:prepend, :append].include?(options[key])
|
180
|
+
end
|
181
|
+
|
182
|
+
def callback_method_name(callback)
|
183
|
+
"#{@type}_#{callback.object_id}"
|
184
|
+
end
|
185
|
+
|
186
|
+
def add_callback(method_name_or_callback, before_how, after_how)
|
187
|
+
case before_how
|
188
|
+
when :prepend
|
189
|
+
@before_prepend_callbacks =
|
190
|
+
[method_name_or_callback] | @before_prepend_callbacks
|
191
|
+
when :append
|
192
|
+
@before_append_callbacks |= [method_name_or_callback]
|
193
|
+
else
|
194
|
+
case after_how
|
195
|
+
when :prepend
|
196
|
+
@after_prepend_callbacks =
|
197
|
+
[method_name_or_callback] | @after_prepend_callbacks
|
198
|
+
when :append
|
199
|
+
@after_append_callbacks |= [method_name_or_callback]
|
200
|
+
end
|
201
|
+
end
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
205
|
+
module ClassMethods
|
206
|
+
def fixture
|
207
|
+
@fixture ||= Fixture.new(self)
|
208
|
+
end
|
209
|
+
|
210
|
+
def setup(*method_names, &callback)
|
211
|
+
register_fixture(:setup, *method_names, &callback)
|
212
|
+
end
|
213
|
+
|
214
|
+
def unregister_setup(*method_names_or_callbacks)
|
215
|
+
unregister_fixture(:setup, *method_names_or_callbacks)
|
216
|
+
end
|
217
|
+
|
218
|
+
def cleanup(*method_names, &callback)
|
219
|
+
register_fixture(:cleanup, *method_names, &callback)
|
220
|
+
end
|
221
|
+
|
222
|
+
def unregister_cleanup(*method_names_or_callbacks)
|
223
|
+
unregister_fixture(:cleanup, *method_names_or_callbacks)
|
224
|
+
end
|
225
|
+
|
226
|
+
def teardown(*method_names, &callback)
|
227
|
+
register_fixture(:teardown, *method_names, &callback)
|
228
|
+
end
|
229
|
+
|
230
|
+
def unregister_teardown(*method_names_or_callbacks)
|
231
|
+
unregister_fixture(:teardown, *method_names_or_callbacks)
|
232
|
+
end
|
233
|
+
|
234
|
+
private
|
235
|
+
def register_fixture(fixture, *method_names, &callback)
|
236
|
+
options = {}
|
237
|
+
options = method_names.pop if method_names.last.is_a?(Hash)
|
238
|
+
callbacks = method_names
|
239
|
+
callbacks << callback if callback
|
240
|
+
attribute(fixture, options, *callbacks)
|
241
|
+
end
|
242
|
+
|
243
|
+
def unregister_fixture(fixture, *method_names_or_callbacks)
|
244
|
+
attribute(fixture, nil, *method_names_or_callbacks)
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
private
|
249
|
+
def run_fixture(type, options={}, &block)
|
250
|
+
fixtures = [
|
251
|
+
self.class.fixture.before_callbacks(type),
|
252
|
+
type,
|
253
|
+
self.class.fixture.after_callbacks(type),
|
254
|
+
].flatten
|
255
|
+
if block
|
256
|
+
runner = create_fixtures_runner(fixtures, options, &block)
|
257
|
+
runner.call
|
258
|
+
else
|
259
|
+
fixtures.each do |method_name|
|
260
|
+
run_fixture_callback(method_name, options)
|
261
|
+
end
|
262
|
+
end
|
263
|
+
end
|
264
|
+
|
265
|
+
def create_fixtures_runner(fixtures, options, &block)
|
266
|
+
if fixtures.empty?
|
267
|
+
block
|
268
|
+
else
|
269
|
+
last_fixture = fixtures.pop
|
270
|
+
create_fixtures_runner(fixtures, options) do
|
271
|
+
block_is_called = false
|
272
|
+
run_fixture_callback(last_fixture, options) do
|
273
|
+
block_is_called = true
|
274
|
+
block.call
|
275
|
+
end
|
276
|
+
block.call unless block_is_called
|
277
|
+
end
|
278
|
+
end
|
279
|
+
end
|
280
|
+
|
281
|
+
def run_fixture_callback(method_name, options, &block)
|
282
|
+
return unless respond_to?(method_name, true)
|
283
|
+
begin
|
284
|
+
__send__(method_name, &block)
|
285
|
+
rescue Exception
|
286
|
+
raise unless options[:handle_exception]
|
287
|
+
raise unless handle_exception($!)
|
288
|
+
end
|
289
|
+
end
|
290
|
+
|
291
|
+
def run_setup(&block)
|
292
|
+
run_fixture(:setup, &block)
|
293
|
+
end
|
294
|
+
|
295
|
+
def run_cleanup
|
296
|
+
run_fixture(:cleanup)
|
297
|
+
end
|
298
|
+
|
299
|
+
def run_teardown
|
300
|
+
run_fixture(:teardown, :handle_exception => true)
|
301
|
+
end
|
302
|
+
end
|
303
|
+
end
|
304
|
+
end
|
@@ -0,0 +1,138 @@
|
|
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
|
+
attr_reader :method_name
|
9
|
+
|
10
|
+
SINGLE_CHARACTER = 'N'
|
11
|
+
LABEL = "Notification"
|
12
|
+
|
13
|
+
# Creates a new Notification with the given location and
|
14
|
+
# message.
|
15
|
+
def initialize(test_name, location, message, options={})
|
16
|
+
@test_name = test_name
|
17
|
+
@location = location
|
18
|
+
@message = message
|
19
|
+
@method_name = options[:method_name]
|
20
|
+
end
|
21
|
+
|
22
|
+
# Returns a single character representation of a notification.
|
23
|
+
def single_character_display
|
24
|
+
SINGLE_CHARACTER
|
25
|
+
end
|
26
|
+
|
27
|
+
def label
|
28
|
+
LABEL
|
29
|
+
end
|
30
|
+
|
31
|
+
# Returns a brief version of the error description.
|
32
|
+
def short_display
|
33
|
+
"#{@test_name}: #{@message.split("\n")[0]}"
|
34
|
+
end
|
35
|
+
|
36
|
+
# Returns a verbose version of the error description.
|
37
|
+
def long_display
|
38
|
+
backtrace = filter_backtrace(location).join("\n")
|
39
|
+
"#{label}: #{@message}\n#{@test_name}\n#{backtrace}"
|
40
|
+
end
|
41
|
+
|
42
|
+
# Overridden to return long_display.
|
43
|
+
def to_s
|
44
|
+
long_display
|
45
|
+
end
|
46
|
+
|
47
|
+
def critical?
|
48
|
+
false
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
class NotifiedError < StandardError
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
module TestCaseNotificationSupport
|
57
|
+
class << self
|
58
|
+
def included(base)
|
59
|
+
base.class_eval do
|
60
|
+
include NotificationHandler
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# Notify some information.
|
66
|
+
#
|
67
|
+
# Example:
|
68
|
+
#
|
69
|
+
# def test_notification
|
70
|
+
# notify("I'm here!")
|
71
|
+
# # Reached here
|
72
|
+
# notify("Special!") if special_case?
|
73
|
+
# # Reached here too
|
74
|
+
# end
|
75
|
+
#
|
76
|
+
# options:
|
77
|
+
#
|
78
|
+
# :backtrace override backtrace.
|
79
|
+
def notify(message, options={}, &block)
|
80
|
+
backtrace = filter_backtrace(options[:backtrace] || caller)
|
81
|
+
notification = Notification.new(name, backtrace, message,
|
82
|
+
:method_name => @method_name)
|
83
|
+
add_notification(notification)
|
84
|
+
end
|
85
|
+
|
86
|
+
private
|
87
|
+
def add_notification(notification)
|
88
|
+
current_result.add_notification(notification)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
module NotificationHandler
|
93
|
+
class << self
|
94
|
+
def included(base)
|
95
|
+
base.exception_handler(:handle_notified_error)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
private
|
100
|
+
def handle_notified_error(exception)
|
101
|
+
return false unless exception.is_a?(NotifiedError)
|
102
|
+
notification = Notification.new(name,
|
103
|
+
filter_backtrace(exception.backtrace),
|
104
|
+
exception.message)
|
105
|
+
add_notification(notification)
|
106
|
+
true
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
module TestResultNotificationSupport
|
111
|
+
attr_reader :notifications
|
112
|
+
|
113
|
+
# Records a Test::Unit::Notification.
|
114
|
+
def add_notification(notification)
|
115
|
+
@notifications << notification
|
116
|
+
notify_fault(notification)
|
117
|
+
notify_changed
|
118
|
+
end
|
119
|
+
|
120
|
+
# Returns the number of notifications this TestResult has
|
121
|
+
# recorded.
|
122
|
+
def notification_count
|
123
|
+
@notifications.size
|
124
|
+
end
|
125
|
+
|
126
|
+
private
|
127
|
+
def initialize_containers
|
128
|
+
super
|
129
|
+
@notifications = []
|
130
|
+
@summary_generators << :notification_summary
|
131
|
+
end
|
132
|
+
|
133
|
+
def notification_summary
|
134
|
+
"#{notification_count} notifications"
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
@@ -0,0 +1,198 @@
|
|
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
|
+
attr_reader :method_name
|
9
|
+
|
10
|
+
SINGLE_CHARACTER = 'O'
|
11
|
+
LABEL = "Omission"
|
12
|
+
|
13
|
+
# Creates a new Omission with the given location and
|
14
|
+
# message.
|
15
|
+
def initialize(test_name, location, message, options={})
|
16
|
+
@test_name = test_name
|
17
|
+
@location = location
|
18
|
+
@message = message
|
19
|
+
@method_name = options[:method_name]
|
20
|
+
end
|
21
|
+
|
22
|
+
# Returns a single character representation of a omission.
|
23
|
+
def single_character_display
|
24
|
+
SINGLE_CHARACTER
|
25
|
+
end
|
26
|
+
|
27
|
+
def label
|
28
|
+
LABEL
|
29
|
+
end
|
30
|
+
|
31
|
+
# Returns a brief version of the error description.
|
32
|
+
def short_display
|
33
|
+
"#{@test_name}: #{@message.split("\n")[0]}"
|
34
|
+
end
|
35
|
+
|
36
|
+
# Returns a verbose version of the error description.
|
37
|
+
def long_display
|
38
|
+
backtrace = filter_backtrace(location).join("\n")
|
39
|
+
"#{label}: #{@message}\n#{@test_name}\n#{backtrace}"
|
40
|
+
end
|
41
|
+
|
42
|
+
# Overridden to return long_display.
|
43
|
+
def to_s
|
44
|
+
long_display
|
45
|
+
end
|
46
|
+
|
47
|
+
def critical?
|
48
|
+
true
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
class OmittedError < StandardError
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
module TestCaseOmissionSupport
|
57
|
+
class << self
|
58
|
+
def included(base)
|
59
|
+
base.class_eval do
|
60
|
+
include OmissionHandler
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# Omit the test or part of the test.
|
66
|
+
#
|
67
|
+
# Example:
|
68
|
+
#
|
69
|
+
# def test_omission
|
70
|
+
# omit
|
71
|
+
# # Not reached here
|
72
|
+
# end
|
73
|
+
#
|
74
|
+
# def test_omission_with_here
|
75
|
+
# omit do
|
76
|
+
# # Not ran here
|
77
|
+
# end
|
78
|
+
# # Reached here
|
79
|
+
# end
|
80
|
+
def omit(message=nil, &block)
|
81
|
+
message ||= "omitted."
|
82
|
+
if block_given?
|
83
|
+
omission = Omission.new(name, filter_backtrace(caller), message,
|
84
|
+
:method_name => @method_name)
|
85
|
+
add_omission(omission)
|
86
|
+
else
|
87
|
+
raise OmittedError.new(message)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
# Omit the test or part of the test if _condition_ is
|
92
|
+
# true.
|
93
|
+
#
|
94
|
+
# Example:
|
95
|
+
#
|
96
|
+
# def test_omission
|
97
|
+
# omit_if("".empty?)
|
98
|
+
# # Not reached here
|
99
|
+
# end
|
100
|
+
#
|
101
|
+
# def test_omission_with_here
|
102
|
+
# omit_if(true) do
|
103
|
+
# # Not ran here
|
104
|
+
# end
|
105
|
+
# omit_if(false) do
|
106
|
+
# # Reached here
|
107
|
+
# end
|
108
|
+
# # Reached here too
|
109
|
+
# end
|
110
|
+
def omit_if(condition, *args, &block)
|
111
|
+
if condition
|
112
|
+
omit(*args, &block)
|
113
|
+
else
|
114
|
+
block.call if block
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
# Omit the test or part of the test if _condition_ is
|
119
|
+
# not true.
|
120
|
+
#
|
121
|
+
# Example:
|
122
|
+
#
|
123
|
+
# def test_omission
|
124
|
+
# omit_unless("string".empty?)
|
125
|
+
# # Not reached here
|
126
|
+
# end
|
127
|
+
#
|
128
|
+
# def test_omission_with_here
|
129
|
+
# omit_unless(true) do
|
130
|
+
# # Reached here
|
131
|
+
# end
|
132
|
+
# omit_unless(false) do
|
133
|
+
# # Not ran here
|
134
|
+
# end
|
135
|
+
# # Reached here too
|
136
|
+
# end
|
137
|
+
def omit_unless(condition, *args, &block)
|
138
|
+
if condition
|
139
|
+
block.call if block
|
140
|
+
else
|
141
|
+
omit(*args, &block)
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
private
|
146
|
+
def add_omission(omission)
|
147
|
+
current_result.add_omission(omission)
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
module OmissionHandler
|
152
|
+
class << self
|
153
|
+
def included(base)
|
154
|
+
base.exception_handler(:handle_omitted_error)
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
private
|
159
|
+
def handle_omitted_error(exception)
|
160
|
+
return false unless exception.is_a?(OmittedError)
|
161
|
+
omission = Omission.new(name,
|
162
|
+
filter_backtrace(exception.backtrace),
|
163
|
+
exception.message,
|
164
|
+
:method_name => @method_name)
|
165
|
+
add_omission(omission)
|
166
|
+
true
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
module TestResultOmissionSupport
|
171
|
+
attr_reader :omissions
|
172
|
+
|
173
|
+
# Records a Test::Unit::Omission.
|
174
|
+
def add_omission(omission)
|
175
|
+
@omissions << omission
|
176
|
+
notify_fault(omission)
|
177
|
+
notify_changed
|
178
|
+
end
|
179
|
+
|
180
|
+
# Returns the number of omissions this TestResult has
|
181
|
+
# recorded.
|
182
|
+
def omission_count
|
183
|
+
@omissions.size
|
184
|
+
end
|
185
|
+
|
186
|
+
private
|
187
|
+
def initialize_containers
|
188
|
+
super
|
189
|
+
@omissions = []
|
190
|
+
@summary_generators << :omission_summary
|
191
|
+
end
|
192
|
+
|
193
|
+
def omission_summary
|
194
|
+
"#{omission_count} omissions"
|
195
|
+
end
|
196
|
+
end
|
197
|
+
end
|
198
|
+
end
|