win32-api 1.10.0 → 1.10.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (209) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +3 -0
  3. data/Gemfile.lock +5 -5
  4. data/ext/mkmf.log +3 -27
  5. data/ext/win32/api.c +16 -15
  6. data/lib/win32/ruby2_32/win32/api.so +0 -0
  7. data/pkg/win32-api-1.10.1-universal-mingw32.gem +0 -0
  8. data/test/test_win32_api.rb +1 -1
  9. data/vendor/bundle/ruby/3.0.0/bin/rake +27 -0
  10. data/vendor/bundle/ruby/3.0.0/bin/rake.bat +2 -0
  11. data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/BSDL +22 -0
  12. data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/COPYING +57 -0
  13. data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/Gemfile +9 -0
  14. data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/LEGAL +4 -0
  15. data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/README.md +96 -0
  16. data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/Rakefile +59 -0
  17. data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/bin/console +12 -0
  18. data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/bin/setup +6 -0
  19. data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/lib/power_assert.rb +91 -0
  20. data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/lib/power_assert/colorize.rb +7 -0
  21. data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/lib/power_assert/configuration.rb +46 -0
  22. data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/lib/power_assert/context.rb +233 -0
  23. data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/lib/power_assert/enable_tracepoint_events.rb +58 -0
  24. data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/lib/power_assert/inspector.rb +62 -0
  25. data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/lib/power_assert/parser.rb +251 -0
  26. data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/lib/power_assert/version.rb +3 -0
  27. data/vendor/bundle/ruby/3.0.0/gems/power_assert-2.0.0/power_assert.gemspec +31 -0
  28. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/CONTRIBUTING.rdoc +43 -0
  29. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/Gemfile +10 -0
  30. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/History.rdoc +2386 -0
  31. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/MIT-LICENSE +21 -0
  32. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/README.rdoc +155 -0
  33. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/Rakefile +41 -0
  34. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/bin/bundle +105 -0
  35. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/bin/console +7 -0
  36. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/bin/rake +29 -0
  37. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/bin/rdoc +29 -0
  38. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/bin/rubocop +29 -0
  39. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/bin/setup +6 -0
  40. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/command_line_usage.rdoc +158 -0
  41. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/example/Rakefile1 +38 -0
  42. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/example/Rakefile2 +35 -0
  43. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/example/a.c +6 -0
  44. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/example/b.c +6 -0
  45. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/example/main.c +11 -0
  46. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/glossary.rdoc +42 -0
  47. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/jamis.rb +592 -0
  48. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/proto_rake.rdoc +127 -0
  49. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/rake.1 +156 -0
  50. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/rakefile.rdoc +622 -0
  51. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/doc/rational.rdoc +151 -0
  52. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/exe/rake +27 -0
  53. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake.rb +71 -0
  54. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/application.rb +824 -0
  55. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/backtrace.rb +24 -0
  56. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/clean.rb +78 -0
  57. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/cloneable.rb +17 -0
  58. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/cpu_counter.rb +107 -0
  59. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/default_loader.rb +15 -0
  60. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/dsl_definition.rb +195 -0
  61. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/early_time.rb +22 -0
  62. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/ext/core.rb +26 -0
  63. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/ext/string.rb +176 -0
  64. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/file_creation_task.rb +25 -0
  65. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/file_list.rb +435 -0
  66. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/file_task.rb +54 -0
  67. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/file_utils.rb +134 -0
  68. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/file_utils_ext.rb +134 -0
  69. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/invocation_chain.rb +57 -0
  70. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/invocation_exception_mixin.rb +17 -0
  71. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/late_time.rb +18 -0
  72. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/linked_list.rb +112 -0
  73. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/loaders/makefile.rb +54 -0
  74. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/multi_task.rb +14 -0
  75. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/name_space.rb +38 -0
  76. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/packagetask.rb +222 -0
  77. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/phony.rb +16 -0
  78. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/private_reader.rb +21 -0
  79. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/promise.rb +100 -0
  80. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/pseudo_status.rb +30 -0
  81. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/rake_module.rb +67 -0
  82. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/rake_test_loader.rb +27 -0
  83. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/rule_recursion_overflow_error.rb +20 -0
  84. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/scope.rb +43 -0
  85. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/task.rb +434 -0
  86. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/task_argument_error.rb +8 -0
  87. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/task_arguments.rb +109 -0
  88. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/task_manager.rb +331 -0
  89. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/tasklib.rb +12 -0
  90. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/testtask.rb +189 -0
  91. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/thread_history_display.rb +49 -0
  92. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/thread_pool.rb +163 -0
  93. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/trace_output.rb +23 -0
  94. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/version.rb +10 -0
  95. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/lib/rake/win32.rb +51 -0
  96. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.3/rake.gemspec +43 -0
  97. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/BSDL +24 -0
  98. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/COPYING +64 -0
  99. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/PSFL +271 -0
  100. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/README.md +97 -0
  101. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/Rakefile +66 -0
  102. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/doc/text/getting-started.md +246 -0
  103. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/doc/text/how-to.md +90 -0
  104. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/doc/text/news.md +1552 -0
  105. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test-unit.rb +19 -0
  106. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit.rb +521 -0
  107. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/assertion-failed-error.rb +25 -0
  108. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/assertions.rb +2256 -0
  109. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/attribute-matcher.rb +26 -0
  110. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/attribute.rb +227 -0
  111. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/auto-runner-loader.rb +17 -0
  112. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/autorunner.rb +569 -0
  113. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/code-snippet-fetcher.rb +58 -0
  114. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/collector.rb +73 -0
  115. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/collector/descendant.rb +19 -0
  116. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/collector/dir.rb +108 -0
  117. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/collector/load.rb +197 -0
  118. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/collector/objectspace.rb +34 -0
  119. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/collector/xml.rb +249 -0
  120. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/color-scheme.rb +216 -0
  121. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/color.rb +134 -0
  122. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/data-sets.rb +116 -0
  123. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/data.rb +371 -0
  124. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/diff.rb +745 -0
  125. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/error.rb +158 -0
  126. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/exception-handler.rb +82 -0
  127. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/failure.rb +169 -0
  128. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/fault-location-detector.rb +100 -0
  129. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/fixture.rb +304 -0
  130. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/notification.rb +138 -0
  131. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/omission.rb +198 -0
  132. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/pending.rb +155 -0
  133. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/priority.rb +196 -0
  134. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/runner/console.rb +67 -0
  135. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/runner/emacs.rb +8 -0
  136. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/runner/xml.rb +15 -0
  137. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/test-suite-creator.rb +103 -0
  138. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/testcase.rb +899 -0
  139. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/testresult.rb +132 -0
  140. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/testsuite.rb +175 -0
  141. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/ui/console/outputlevel.rb +15 -0
  142. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/ui/console/testrunner.rb +733 -0
  143. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/ui/emacs/testrunner.rb +49 -0
  144. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/ui/testrunner.rb +53 -0
  145. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/ui/testrunnermediator.rb +114 -0
  146. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/ui/testrunnerutilities.rb +41 -0
  147. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/ui/xml/testrunner.rb +224 -0
  148. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/util/backtracefilter.rb +59 -0
  149. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/util/method-owner-finder.rb +28 -0
  150. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/util/observable.rb +90 -0
  151. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/util/output.rb +32 -0
  152. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/util/procwrapper.rb +48 -0
  153. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/version.rb +5 -0
  154. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/lib/test/unit/warning.rb +3 -0
  155. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/sample/adder.rb +13 -0
  156. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/sample/subtracter.rb +12 -0
  157. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/sample/test_adder.rb +20 -0
  158. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/sample/test_subtracter.rb +20 -0
  159. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/sample/test_user.rb +23 -0
  160. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/collector/test-descendant.rb +182 -0
  161. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/collector/test-load.rb +475 -0
  162. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/collector/test_dir.rb +407 -0
  163. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/collector/test_objectspace.rb +102 -0
  164. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/fixtures/header-label.csv +3 -0
  165. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/fixtures/header-label.tsv +3 -0
  166. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/fixtures/header.csv +3 -0
  167. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/fixtures/header.tsv +3 -0
  168. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/fixtures/no-header.csv +2 -0
  169. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/fixtures/no-header.tsv +2 -0
  170. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/fixtures/plus.csv +3 -0
  171. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/run-test.rb +22 -0
  172. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-assertions.rb +2187 -0
  173. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-attribute-matcher.rb +38 -0
  174. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-attribute.rb +123 -0
  175. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-code-snippet.rb +79 -0
  176. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-color-scheme.rb +123 -0
  177. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-color.rb +47 -0
  178. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-data.rb +419 -0
  179. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-diff.rb +518 -0
  180. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-emacs-runner.rb +60 -0
  181. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-error.rb +26 -0
  182. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-failure.rb +33 -0
  183. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-fault-location-detector.rb +163 -0
  184. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-fixture.rb +713 -0
  185. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-notification.rb +33 -0
  186. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-omission.rb +81 -0
  187. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-pending.rb +70 -0
  188. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-priority.rb +184 -0
  189. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-test-case.rb +1284 -0
  190. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-test-result.rb +113 -0
  191. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-test-suite-creator.rb +97 -0
  192. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/test-test-suite.rb +151 -0
  193. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/testunit-test-util.rb +33 -0
  194. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/ui/test_testrunmediator.rb +20 -0
  195. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/util/test-method-owner-finder.rb +38 -0
  196. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/util/test-output.rb +11 -0
  197. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/util/test_backtracefilter.rb +52 -0
  198. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/util/test_observable.rb +102 -0
  199. data/vendor/bundle/ruby/3.0.0/gems/test-unit-3.4.1/test/util/test_procwrapper.rb +36 -0
  200. data/vendor/bundle/ruby/3.0.0/specifications/power_assert-2.0.0.gemspec +46 -0
  201. data/vendor/bundle/ruby/3.0.0/specifications/rake-13.0.3.gemspec +26 -0
  202. data/vendor/bundle/ruby/3.0.0/specifications/test-unit-3.4.1.gemspec +41 -0
  203. data/win32-api.gemspec +1 -1
  204. metadata +199 -8
  205. data/ext/Makefile +0 -269
  206. data/ext/api-x64-mingw32.def +0 -2
  207. data/ext/api.o +0 -0
  208. data/ext/api.so +0 -0
  209. data/ext/win32/api.so +0 -0
@@ -0,0 +1,60 @@
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
@@ -0,0 +1,26 @@
1
+ # Author:: Nathaniel Talbott.
2
+ # Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
3
+ # License:: Ruby license.
4
+
5
+ require 'test/unit'
6
+
7
+ module Test
8
+ module Unit
9
+ class TC_Error < TestCase
10
+ TF_Exception = Struct.new('TF_Exception', :message, :backtrace)
11
+ def test_display
12
+ ex = TF_Exception.new("message1\nmessage2", ['line1', 'line2'])
13
+ e = Error.new("name", ex)
14
+ assert_equal("name: #{TF_Exception.name}: message1", e.short_display)
15
+ assert_equal(<<EOM.strip, e.long_display)
16
+ Error:
17
+ name:
18
+ Struct::TF_Exception: message1
19
+ message2
20
+ line1
21
+ line2
22
+ EOM
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,33 @@
1
+ # Author:: Nathaniel Talbott.
2
+ # Copyright:: Copyright (c) 2003 Nathaniel Talbott. All rights reserved.
3
+ # License:: Ruby license.
4
+
5
+ require 'test/unit'
6
+ require 'test/unit/failure'
7
+
8
+ module Test::Unit
9
+ class TestFailure < TestCase
10
+ def test_display
11
+ f = Failure.new("name", [%q{location:1 in 'l'}], "message1\nmessage2")
12
+ assert_equal("name: message1", f.short_display)
13
+ assert_equal(<<EOM.strip, f.long_display)
14
+ Failure:
15
+ name [location:1]:
16
+ message1
17
+ message2
18
+ EOM
19
+
20
+ f = Failure.new("name", [%q{location1:2 in 'l1'}, 'location2:1', %q{location3:3 in 'l3'}], "message1\nmessage2")
21
+ assert_equal("name: message1", f.short_display)
22
+ assert_equal(<<EOM.strip, f.long_display)
23
+ Failure:
24
+ name
25
+ [location1:2 in 'l1'
26
+ location2:1
27
+ location3:3 in 'l3']:
28
+ message1
29
+ message2
30
+ EOM
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,163 @@
1
+ # Copyright (C) 2012 Kouhei Sutou <kou@clear-code.com>
2
+ #
3
+ # License: Ruby's
4
+
5
+ require "test-unit"
6
+ require "test/unit/fault-location-detector"
7
+ require "testunit-test-util"
8
+
9
+ class TestFaultLocationDetector < Test::Unit::TestCase
10
+ include TestUnitTestUtil
11
+
12
+ def setup
13
+ @fetcher = Test::Unit::CodeSnippetFetcher.new
14
+ end
15
+
16
+ private
17
+ def run_test_case(test_case)
18
+ suite = test_case.suite
19
+ result = Test::Unit::TestResult.new
20
+ suite.run(result) {}
21
+ result.faults[0]
22
+ end
23
+
24
+ def assert_detect(fault, target_line_number)
25
+ detector = Test::Unit::FaultLocationDetector.new(fault, @fetcher)
26
+
27
+ expected_backtrace_entries_until_detected = []
28
+ fault.location.each do |backtrace_entry|
29
+ expected_backtrace_entries_until_detected << backtrace_entry
30
+ _, line_number, = detector.split_backtrace_entry(backtrace_entry)
31
+ break if target_line_number == line_number
32
+ end
33
+
34
+ actual_backtrace_entries_until_detected = []
35
+ fault.location.each do |backtrace_entry|
36
+ actual_backtrace_entries_until_detected << backtrace_entry
37
+ break if detector.target?(backtrace_entry)
38
+ end
39
+
40
+ assert_equal(expected_backtrace_entries_until_detected,
41
+ actual_backtrace_entries_until_detected)
42
+ end
43
+
44
+ module AlwaysFailAssertion
45
+ private
46
+ def assert_always_failed
47
+ assert_true(false)
48
+ end
49
+ end
50
+
51
+ class TestSourceLocation < self
52
+ setup
53
+ def setup_check_source_location
54
+ unless lambda {}.respond_to?(:source_location)
55
+ omit("Need Proc#source_location")
56
+ end
57
+ end
58
+
59
+ def test_detected
60
+ target_line_number = nil
61
+ test_case = Class.new(Test::Unit::TestCase) do
62
+ include AlwaysFailAssertion
63
+
64
+ test "failed" do
65
+ target_line_number = __LINE__; assert_always_failed
66
+ end
67
+ end
68
+
69
+ fault = run_test_case(test_case)
70
+ assert_detect(fault, target_line_number)
71
+ end
72
+
73
+ class TestOneLine < self
74
+ def test_brace
75
+ target_line_number = nil
76
+ test_case = Class.new(Test::Unit::TestCase) do
77
+ include AlwaysFailAssertion
78
+
79
+ test("failed") {target_line_number = __LINE__; assert_always_failed}
80
+
81
+ def other_method
82
+ # body
83
+ end
84
+ end
85
+
86
+ fault = run_test_case(test_case)
87
+ assert_detect(fault, target_line_number)
88
+ end
89
+
90
+ def test_do_end
91
+ target_line_number = nil
92
+ test_case = Class.new(Test::Unit::TestCase) do
93
+ include AlwaysFailAssertion
94
+
95
+ test "failed" do target_line_number = __LINE__; assert_always_failed; end
96
+
97
+ def other_method
98
+ # body
99
+ end
100
+ end
101
+
102
+ fault = run_test_case(test_case)
103
+ assert_detect(fault, target_line_number)
104
+ end
105
+ end
106
+ end
107
+
108
+ class TestMethodName < self
109
+ def test_detected
110
+ test_case = Class.new(Test::Unit::TestCase) do
111
+ include AlwaysFailAssertion
112
+
113
+ class << self
114
+ def target_line_number
115
+ @@target_line_number
116
+ end
117
+
118
+ def target_line_number=(line_number)
119
+ @@target_line_number = line_number
120
+ end
121
+ end
122
+
123
+ def test_failed
124
+ self.class.target_line_number = __LINE__; assert_always_failed
125
+ end
126
+ end
127
+
128
+ fault = run_test_case(test_case)
129
+ assert_detect(fault, test_case.target_line_number)
130
+ end
131
+ end
132
+
133
+ class TestInBlock < self
134
+ def test_in_block
135
+ test_case = Class.new(Test::Unit::TestCase) do
136
+ include AlwaysFailAssertion
137
+
138
+ class << self
139
+ def target_line_number
140
+ @@target_line_number
141
+ end
142
+
143
+ def target_line_number=(line_number)
144
+ @@target_line_number = line_number
145
+ end
146
+ end
147
+
148
+ def run_yield
149
+ yield
150
+ end
151
+
152
+ def test_failed
153
+ run_yield do
154
+ self.class.target_line_number = __LINE__; assert_always_failed
155
+ end
156
+ end
157
+ end
158
+
159
+ fault = run_test_case(test_case)
160
+ assert_detect(fault, test_case.target_line_number)
161
+ end
162
+ end
163
+ end
@@ -0,0 +1,713 @@
1
+ class TestUnitFixture < Test::Unit::TestCase
2
+ module EmptyModule
3
+ end
4
+
5
+ class TestSetup < self
6
+ def test_without_option
7
+ expected_setup_calls = [:setup,
8
+ :custom_setup_method0,
9
+ :custom_setup_callback0,
10
+ :custom_setup_method1,
11
+ :custom_setup_callback1,
12
+ :custom_setup_method3,
13
+ :custom_setup_callback3]
14
+ test_case = assert_setup(expected_setup_calls, [])
15
+ assert_inherited_setup(expected_setup_calls, test_case)
16
+
17
+ assert_inherited_setup([:setup], nil)
18
+ assert_called_fixtures(expected_setup_calls, test_case)
19
+ end
20
+
21
+ def test_with_before_option
22
+ expected_setup_calls = [:custom_setup_callback3,
23
+ :custom_setup_method3,
24
+ :custom_setup_method0,
25
+ :custom_setup_callback0,
26
+ :custom_setup_method1,
27
+ :custom_setup_callback1,
28
+ :setup]
29
+ test_case = assert_setup(expected_setup_calls,
30
+ [[{:before => :append}],
31
+ [{:before => :append}],
32
+ [{:before => :prepend}],
33
+ [{:before => :prepend}]])
34
+ assert_inherited_setup(expected_setup_calls, test_case)
35
+
36
+ assert_inherited_setup([:setup], nil)
37
+ assert_called_fixtures(expected_setup_calls, test_case)
38
+ end
39
+
40
+ def test_with_after_option
41
+ expected_setup_calls = [:setup,
42
+ :custom_setup_callback3,
43
+ :custom_setup_method3,
44
+ :custom_setup_method0,
45
+ :custom_setup_callback0,
46
+ :custom_setup_method1,
47
+ :custom_setup_callback1]
48
+ test_case = assert_setup(expected_setup_calls,
49
+ [[{:after => :append}],
50
+ [{:after => :append}],
51
+ [{:after => :prepend}],
52
+ [{:after => :prepend}]])
53
+ assert_inherited_setup(expected_setup_calls, test_case)
54
+
55
+ assert_inherited_setup([:setup], nil)
56
+ assert_called_fixtures(expected_setup_calls, test_case)
57
+ end
58
+
59
+ def test_with_invalid_option
60
+ assert_invalid_setup_option(:unknown => true)
61
+ assert_invalid_setup_option(:before => :unknown)
62
+ assert_invalid_setup_option(:after => :unknown)
63
+ end
64
+
65
+ def test_with_option_to_inherited
66
+ expected_setup_calls = [:setup]
67
+ test_case = assert_setup(expected_setup_calls, nil)
68
+ assert_inherited_setup([:setup,
69
+ :custom_setup_method0,
70
+ :custom_setup_callback0,
71
+ :custom_setup_method1,
72
+ :custom_setup_callback1,
73
+ :custom_setup_method3,
74
+ :custom_setup_callback3],
75
+ test_case,
76
+ [])
77
+
78
+ assert_inherited_setup([:setup], nil)
79
+ assert_called_fixtures(expected_setup_calls, test_case)
80
+ end
81
+
82
+ private
83
+ def assert_setup_customizable(expected, parent, options)
84
+ test_case = Class.new(parent || Test::Unit::TestCase) do
85
+ yield(self, :before) if block_given?
86
+
87
+ def called_ids
88
+ @called_ids ||= []
89
+ end
90
+
91
+ def called(id)
92
+ called_ids << id
93
+ end
94
+
95
+ def setup
96
+ called(:setup)
97
+ end
98
+
99
+ setup(*(options[0] || [])) if options
100
+ def custom_setup_method0
101
+ called(:custom_setup_method0)
102
+ end
103
+
104
+ if options
105
+ setup(*(options[0] || [])) do
106
+ called(:custom_setup_callback0)
107
+ end
108
+ end
109
+
110
+ def custom_setup_method1
111
+ called(:custom_setup_method1)
112
+ end
113
+ setup(*[:custom_setup_method1, *(options[1] || [])]) if options
114
+
115
+ if options
116
+ setup(*(options[1] || [])) do
117
+ called(:custom_setup_callback1)
118
+ end
119
+ end
120
+
121
+ setup(*(options[2] || [])) if options
122
+ def custom_setup_method2
123
+ called(:custom_setup_method2)
124
+ end
125
+ unregister_setup(:custom_setup_method2) if options
126
+
127
+ if options
128
+ callback = lambda do
129
+ called(:custom_setup_callback2)
130
+ end
131
+ setup(*(options[2] || []), &callback)
132
+ unregister_setup(callback)
133
+ end
134
+
135
+ setup(*(options[3] || [])) if options
136
+ def custom_setup_method3
137
+ called(:custom_setup_method3)
138
+ end
139
+
140
+ if options
141
+ setup(*(options[3] || [])) do
142
+ called(:custom_setup_callback3)
143
+ end
144
+ end
145
+
146
+ def test_nothing
147
+ end
148
+
149
+ yield(self, :after) if block_given?
150
+ end
151
+
152
+ assert_called_fixtures(expected, test_case)
153
+ test_case
154
+ end
155
+
156
+ def assert_setup(expected, options)
157
+ _test_case = assert_setup_customizable(expected, nil, options)
158
+ assert_setup_customizable(expected, nil, options) do |test_case, tag|
159
+ test_case.send(:include, EmptyModule) if tag == :before
160
+ end
161
+ _test_case
162
+ end
163
+
164
+ def assert_inherited_setup(expected, parent, options=nil)
165
+ _test_case = assert_setup_customizable(expected, parent, options)
166
+ assert_setup_customizable(expected, parent, options) do |test_case, tag|
167
+ test_case.send(:include, EmptyModule) if tag == :before
168
+ end
169
+ _test_case
170
+ end
171
+
172
+ def assert_invalid_setup_option(option)
173
+ assert_invalid_option(:setup, option)
174
+ end
175
+ end
176
+
177
+ class TestCleanup < self
178
+ def test_without_option
179
+ expected_cleanup_calls = [:custom_cleanup_callback3,
180
+ :custom_cleanup_method3,
181
+ :custom_cleanup_callback1,
182
+ :custom_cleanup_method1,
183
+ :custom_cleanup_callback0,
184
+ :custom_cleanup_method0,
185
+ :cleanup]
186
+ test_case = assert_cleanup(expected_cleanup_calls, [])
187
+ assert_inherited_cleanup(expected_cleanup_calls, test_case)
188
+
189
+ assert_inherited_cleanup([:cleanup], nil)
190
+ assert_called_fixtures(expected_cleanup_calls, test_case)
191
+ end
192
+
193
+ def test_with_before_option
194
+ expected_cleanup_calls = [:custom_cleanup_callback3,
195
+ :custom_cleanup_method3,
196
+ :custom_cleanup_method0,
197
+ :custom_cleanup_callback0,
198
+ :custom_cleanup_method1,
199
+ :custom_cleanup_callback1,
200
+ :cleanup]
201
+ test_case = assert_cleanup(expected_cleanup_calls,
202
+ [[{:before => :append}],
203
+ [{:before => :append}],
204
+ [{:before => :prepend}],
205
+ [{:before => :prepend}]])
206
+ assert_inherited_cleanup(expected_cleanup_calls, test_case)
207
+
208
+ assert_inherited_cleanup([:cleanup], nil)
209
+ assert_called_fixtures(expected_cleanup_calls, test_case)
210
+ end
211
+
212
+ def test_with_after_option
213
+ expected_cleanup_calls = [:cleanup,
214
+ :custom_cleanup_callback3,
215
+ :custom_cleanup_method3,
216
+ :custom_cleanup_method0,
217
+ :custom_cleanup_callback0,
218
+ :custom_cleanup_method1,
219
+ :custom_cleanup_callback1]
220
+ test_case = assert_cleanup(expected_cleanup_calls,
221
+ [[{:after => :append}],
222
+ [{:after => :append}],
223
+ [{:after => :prepend}],
224
+ [{:after => :prepend}]])
225
+ assert_inherited_cleanup(expected_cleanup_calls, test_case)
226
+
227
+ assert_inherited_cleanup([:cleanup], nil)
228
+ assert_called_fixtures(expected_cleanup_calls, test_case)
229
+ end
230
+
231
+ def test_with_invalid_option
232
+ assert_invalid_cleanup_option(:unknown => true)
233
+ assert_invalid_cleanup_option(:before => :unknown)
234
+ assert_invalid_cleanup_option(:after => :unknown)
235
+ end
236
+
237
+ def test_with_option_to_inherited
238
+ expected_cleanup_calls = [:cleanup]
239
+ test_case = assert_cleanup(expected_cleanup_calls, nil)
240
+ assert_inherited_cleanup([:custom_cleanup_callback3,
241
+ :custom_cleanup_method3,
242
+ :custom_cleanup_callback1,
243
+ :custom_cleanup_method1,
244
+ :custom_cleanup_callback0,
245
+ :custom_cleanup_method0,
246
+ :cleanup],
247
+ test_case, [])
248
+
249
+ assert_inherited_cleanup([:cleanup], nil)
250
+ assert_called_fixtures(expected_cleanup_calls, test_case)
251
+ end
252
+
253
+ def test_with_exception
254
+ test_case = Class.new(Test::Unit::TestCase) do
255
+ def called_ids
256
+ @called_ids ||= []
257
+ end
258
+
259
+ def called(id)
260
+ called_ids << id
261
+ end
262
+
263
+ def cleanup
264
+ called(:cleanup)
265
+ raise "cleanup"
266
+ end
267
+
268
+ cleanup
269
+ def custom_cleanup_method0
270
+ called(:custom_cleanup_method0)
271
+ raise "custom_cleanup_method0"
272
+ end
273
+
274
+ cleanup do
275
+ called(:custom_cleanup_callback0)
276
+ raise "custom_cleanup_callback0"
277
+ end
278
+
279
+ cleanup
280
+ def custom_cleanup_method1
281
+ called(:custom_cleanup_method1)
282
+ raise "custom_cleanup_method1"
283
+ end
284
+
285
+ cleanup do
286
+ called(:custom_cleanup_callback1)
287
+ raise "custom_cleanup_callback1"
288
+ end
289
+
290
+ def test_nothing
291
+ end
292
+ end
293
+
294
+ assert_called_fixtures([:custom_cleanup_callback1],
295
+ test_case)
296
+ end
297
+
298
+ private
299
+ def assert_cleanup_customizable(expected, parent, options)
300
+ test_case = Class.new(parent || Test::Unit::TestCase) do
301
+ yield(self, :before) if block_given?
302
+
303
+ def called_ids
304
+ @called_ids ||= []
305
+ end
306
+
307
+ def called(id)
308
+ called_ids << id
309
+ end
310
+
311
+ def cleanup
312
+ called(:cleanup)
313
+ end
314
+
315
+ cleanup(*(options[0] || [])) if options
316
+ def custom_cleanup_method0
317
+ called(:custom_cleanup_method0)
318
+ end
319
+
320
+ if options
321
+ cleanup(*(options[0] || [])) do
322
+ called(:custom_cleanup_callback0)
323
+ end
324
+ end
325
+
326
+ def custom_cleanup_method1
327
+ called(:custom_cleanup_method1)
328
+ end
329
+ cleanup(*[:custom_cleanup_method1, *(options[1] || [])]) if options
330
+
331
+ if options
332
+ cleanup(*(options[1] || [])) do
333
+ called(:custom_cleanup_callback1)
334
+ end
335
+ end
336
+
337
+ cleanup(*(options[2] || [])) if options
338
+ def custom_cleanup_method2
339
+ called(:custom_cleanup_method2)
340
+ end
341
+ unregister_cleanup(:custom_cleanup_method2) if options
342
+
343
+ if options
344
+ callback = lambda do
345
+ called(:custom_cleanup_callback2)
346
+ end
347
+ cleanup(*(options[2] || []), &callback)
348
+ unregister_cleanup(callback)
349
+ end
350
+
351
+ cleanup(*(options[3] || [])) if options
352
+ def custom_cleanup_method3
353
+ called(:custom_cleanup_method3)
354
+ end
355
+
356
+ if options
357
+ cleanup(*(options[3] || [])) do
358
+ called(:custom_cleanup_callback3)
359
+ end
360
+ end
361
+
362
+ def test_nothing
363
+ end
364
+
365
+ yield(self, :after) if block_given?
366
+ end
367
+
368
+ assert_called_fixtures(expected, test_case)
369
+ test_case
370
+ end
371
+
372
+ def assert_cleanup(expected, options)
373
+ assert_cleanup_customizable(expected, nil, options)
374
+ assert_cleanup_customizable(expected, nil, options) do |test_case, tag|
375
+ test_case.send(:include, EmptyModule) if tag == :before
376
+ end
377
+ end
378
+
379
+ def assert_inherited_cleanup(expected, parent, options=nil)
380
+ assert_cleanup_customizable(expected, parent, options)
381
+ assert_cleanup_customizable(expected, parent, options) do |test_case, tag|
382
+ test_case.send(:include, EmptyModule) if tag == :before
383
+ end
384
+ end
385
+
386
+ def assert_invalid_cleanup_option(option)
387
+ assert_invalid_option(:cleanup, option)
388
+ end
389
+ end
390
+
391
+ class TestTeardown < self
392
+ def test_without_option
393
+ expected_teardown_calls = [:custom_teardown_callback3,
394
+ :custom_teardown_method3,
395
+ :custom_teardown_callback1,
396
+ :custom_teardown_method1,
397
+ :custom_teardown_callback0,
398
+ :custom_teardown_method0,
399
+ :teardown]
400
+ test_case = assert_teardown(expected_teardown_calls, [])
401
+ assert_inherited_teardown(expected_teardown_calls, test_case)
402
+
403
+ assert_inherited_teardown([:teardown], nil)
404
+ assert_called_fixtures(expected_teardown_calls, test_case)
405
+ end
406
+
407
+ def test_with_before_option
408
+ expected_teardown_calls = [:custom_teardown_callback3,
409
+ :custom_teardown_method3,
410
+ :custom_teardown_method0,
411
+ :custom_teardown_callback0,
412
+ :custom_teardown_method1,
413
+ :custom_teardown_callback1,
414
+ :teardown]
415
+ test_case = assert_teardown(expected_teardown_calls,
416
+ [[{:before => :append}],
417
+ [{:before => :append}],
418
+ [{:before => :prepend}],
419
+ [{:before => :prepend}]])
420
+ assert_inherited_teardown(expected_teardown_calls, test_case)
421
+
422
+ assert_inherited_teardown([:teardown], nil)
423
+ assert_called_fixtures(expected_teardown_calls, test_case)
424
+ end
425
+
426
+ def test_with_after_option
427
+ expected_teardown_calls = [:teardown,
428
+ :custom_teardown_callback3,
429
+ :custom_teardown_method3,
430
+ :custom_teardown_method0,
431
+ :custom_teardown_callback0,
432
+ :custom_teardown_method1,
433
+ :custom_teardown_callback1]
434
+ test_case = assert_teardown(expected_teardown_calls,
435
+ [[{:after => :append}],
436
+ [{:after => :append}],
437
+ [{:after => :prepend}],
438
+ [{:after => :prepend}]])
439
+ assert_inherited_teardown(expected_teardown_calls, test_case)
440
+
441
+ assert_inherited_teardown([:teardown], nil)
442
+ assert_called_fixtures(expected_teardown_calls, test_case)
443
+ end
444
+
445
+ def test_with_invalid_option
446
+ assert_invalid_teardown_option(:unknown => true)
447
+ assert_invalid_teardown_option(:before => :unknown)
448
+ assert_invalid_teardown_option(:after => :unknown)
449
+ end
450
+
451
+ def test_with_option_to_inherited
452
+ expected_teardown_calls = [:teardown]
453
+ test_case = assert_teardown(expected_teardown_calls, nil)
454
+ assert_inherited_teardown([:custom_teardown_callback3,
455
+ :custom_teardown_method3,
456
+ :custom_teardown_callback1,
457
+ :custom_teardown_method1,
458
+ :custom_teardown_callback0,
459
+ :custom_teardown_method0,
460
+ :teardown],
461
+ test_case, [])
462
+
463
+ assert_inherited_teardown([:teardown], nil)
464
+ assert_called_fixtures(expected_teardown_calls, test_case)
465
+ end
466
+
467
+ def test_with_exception
468
+ test_case = Class.new(Test::Unit::TestCase) do
469
+ def called_ids
470
+ @called_ids ||= []
471
+ end
472
+
473
+ def called(id)
474
+ called_ids << id
475
+ end
476
+
477
+ def teardown
478
+ called(:teardown)
479
+ raise "teardown"
480
+ end
481
+
482
+ teardown
483
+ def custom_teardown_method0
484
+ called(:custom_teardown_method0)
485
+ raise "custom_teardown_method0"
486
+ end
487
+
488
+ teardown do
489
+ called(:custom_teardown_callback0)
490
+ raise "custom_teardown_callback0"
491
+ end
492
+
493
+ teardown
494
+ def custom_teardown_method1
495
+ called(:custom_teardown_method1)
496
+ raise "custom_teardown_method1"
497
+ end
498
+
499
+ teardown do
500
+ called(:custom_teardown_callback1)
501
+ raise "custom_teardown_callback1"
502
+ end
503
+
504
+ def test_nothing
505
+ end
506
+ end
507
+
508
+ assert_called_fixtures([:custom_teardown_callback1,
509
+ :custom_teardown_method1,
510
+ :custom_teardown_callback0,
511
+ :custom_teardown_method0,
512
+ :teardown],
513
+ test_case)
514
+ end
515
+
516
+ def test_nested
517
+ called = []
518
+ parent_test_case = Class.new(Test::Unit::TestCase) do
519
+ teardown do
520
+ called << :parent
521
+ end
522
+ end
523
+
524
+ child_test_case = Class.new(parent_test_case) do
525
+ teardown do
526
+ called << :child
527
+ end
528
+
529
+ def test_nothing
530
+ end
531
+ end
532
+
533
+ run_test_nothing(child_test_case)
534
+ assert_equal([:child, :parent],
535
+ called)
536
+ end
537
+
538
+ def test_setup_with_block
539
+ test_case = Class.new(Test::Unit::TestCase) do
540
+ def called_ids
541
+ @called_ids ||= []
542
+ end
543
+
544
+ def called(id)
545
+ called_ids << id
546
+ end
547
+
548
+ setup
549
+ def setup1
550
+ called(:setup1)
551
+ begin
552
+ yield
553
+ called(:setup1_after_yield)
554
+ ensure
555
+ called(:setup1_teardown)
556
+ end
557
+ end
558
+
559
+ setup
560
+ def setup2
561
+ called(:setup2)
562
+ begin
563
+ yield
564
+ called(:setup2_after_yield)
565
+ ensure
566
+ called(:setup2_teardown)
567
+ end
568
+ end
569
+
570
+ def teardown
571
+ called(:teardown)
572
+ end
573
+
574
+ def test_nothing
575
+ called(:test)
576
+ flunk
577
+ called(:test_after_failure)
578
+ end
579
+ end
580
+
581
+ assert_called_fixtures([
582
+ :setup1,
583
+ :setup2,
584
+ :test,
585
+ :setup2_teardown,
586
+ :setup1_teardown,
587
+ :teardown,
588
+ ],
589
+ test_case)
590
+ end
591
+
592
+ private
593
+ def assert_teardown_customizable(expected, parent, options)
594
+ test_case = Class.new(parent || Test::Unit::TestCase) do
595
+ yield(self, :before) if block_given?
596
+
597
+ def called_ids
598
+ @called_ids ||= []
599
+ end
600
+
601
+ def called(id)
602
+ called_ids << id
603
+ end
604
+
605
+ def teardown
606
+ called(:teardown)
607
+ end
608
+
609
+ teardown(*(options[0] || [])) if options
610
+ def custom_teardown_method0
611
+ called(:custom_teardown_method0)
612
+ end
613
+
614
+ if options
615
+ teardown(*(options[0] || [])) do
616
+ called(:custom_teardown_callback0)
617
+ end
618
+ end
619
+
620
+ def custom_teardown_method1
621
+ called(:custom_teardown_method1)
622
+ end
623
+ teardown(*[:custom_teardown_method1, *(options[1] || [])]) if options
624
+
625
+ if options
626
+ teardown(*(options[1] || [])) do
627
+ called(:custom_teardown_callback1)
628
+ end
629
+ end
630
+
631
+ teardown(*(options[2] || [])) if options
632
+ def custom_teardown_method2
633
+ called(:custom_teardown_method2)
634
+ end
635
+ unregister_teardown(:custom_teardown_method2) if options
636
+
637
+ if options
638
+ callback = lambda do
639
+ called(:custom_teardown_callback2)
640
+ end
641
+ teardown(*(options[2] || []), &callback)
642
+ unregister_teardown(callback)
643
+ end
644
+
645
+ teardown(*(options[3] || [])) if options
646
+ def custom_teardown_method3
647
+ called(:custom_teardown_method3)
648
+ end
649
+
650
+ if options
651
+ teardown(*(options[3] || [])) do
652
+ called(:custom_teardown_callback3)
653
+ end
654
+ end
655
+
656
+ def test_nothing
657
+ end
658
+
659
+ yield(self, :after) if block_given?
660
+ end
661
+
662
+ assert_called_fixtures(expected, test_case)
663
+ test_case
664
+ end
665
+
666
+ def assert_teardown(expected, options)
667
+ assert_teardown_customizable(expected, nil, options)
668
+ assert_teardown_customizable(expected, nil, options) do |test_case, tag|
669
+ test_case.send(:include, EmptyModule) if tag == :before
670
+ end
671
+ end
672
+
673
+ def assert_inherited_teardown(expected, parent, options=nil)
674
+ assert_teardown_customizable(expected, parent, options)
675
+ assert_teardown_customizable(expected, parent, options) do |test_case, tag|
676
+ test_case.send(:include, EmptyModule) if tag == :before
677
+ end
678
+ end
679
+
680
+ def assert_invalid_teardown_option(option)
681
+ assert_invalid_option(:teardown, option)
682
+ end
683
+ end
684
+
685
+ private
686
+ def run_test_nothing(test_case)
687
+ test = test_case.new("test_nothing")
688
+ test.run(Test::Unit::TestResult.new) {}
689
+ test
690
+ end
691
+
692
+ def assert_called_fixtures(expected, test_case)
693
+ test = run_test_nothing(test_case)
694
+ assert_equal(expected, test.called_ids)
695
+ end
696
+
697
+ def assert_invalid_option(fixture_type, option)
698
+ exception = assert_raise(ArgumentError) do
699
+ Class.new(Test::Unit::TestCase) do
700
+ def test_nothing
701
+ end
702
+
703
+ send(fixture_type, option)
704
+ def fixture
705
+ end
706
+ end
707
+ end
708
+ assert_equal("must be {:before => :prepend}, {:before => :append}, " +
709
+ "{:after => :prepend} or {:after => :append}" +
710
+ ": #{option.inspect}",
711
+ exception.message)
712
+ end
713
+ end