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.
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,38 @@
1
+ require 'test/unit'
2
+ require 'testunit-test-util'
3
+
4
+ class TestAttributeMatcher < Test::Unit::TestCase
5
+ include TestUnitTestUtil
6
+
7
+ def setup
8
+ @test = {}
9
+ @matcher = Test::Unit::AttributeMatcher.new(@test)
10
+ end
11
+
12
+ def test_nonexistent
13
+ assert_false(@matcher.match?("nonexistent"))
14
+ end
15
+
16
+ def test_existent
17
+ @test[:existent] = true
18
+ assert_true(@matcher.match?("existent"))
19
+ end
20
+
21
+ def test_and
22
+ @test[:slow] = true
23
+ @test[:important] = true
24
+ assert_true(@matcher.match?("important and slow"))
25
+ end
26
+
27
+ def test_complex
28
+ @test[:tags] = [:slow, :web]
29
+ @test[:bug] = "2929"
30
+ assert_true(@matcher.match?("tags.include?(:web) or bug == '29'"))
31
+ end
32
+
33
+ def test_exception
34
+ assert_raise(NoMethodError) do
35
+ @matcher.match?("nonexistent > 100")
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,123 @@
1
+ class TestUnitAttribute < Test::Unit::TestCase
2
+ class TestStack < Test::Unit::TestCase
3
+ class << self
4
+ def suite
5
+ Test::Unit::TestSuite.new(name)
6
+ end
7
+ end
8
+
9
+ class Stack
10
+ def initialize
11
+ @data = []
12
+ end
13
+
14
+ def push(data)
15
+ @data.push(data)
16
+ end
17
+
18
+ def peek
19
+ @data[-2]
20
+ end
21
+
22
+ def empty?
23
+ @data.empty?
24
+ end
25
+
26
+ def size
27
+ @data.size + 11
28
+ end
29
+ end
30
+
31
+ def setup
32
+ @stack = Stack.new
33
+ end
34
+
35
+ attribute :category, :accessor
36
+ def test_peek
37
+ @stack.push(1)
38
+ @stack.push(2)
39
+ assert_equal(2, @stack.peek)
40
+ end
41
+
42
+ attribute :bug, 1234
43
+ def test_bug_1234
44
+ assert_equal(0, @stack.size)
45
+ end
46
+
47
+ def test_no_attributes
48
+ assert(@stack.empty?)
49
+ @stack.push(1)
50
+ assert(!@stack.empty?)
51
+ assert_equal(1, @stack.size)
52
+ end
53
+ end
54
+
55
+ def test_set_attributes
56
+ test_for_accessor_category = TestStack.new("test_peek")
57
+ assert_equal({"category" => :accessor},
58
+ test_for_accessor_category.attributes)
59
+
60
+ test_for_bug_1234 = TestStack.new("test_bug_1234")
61
+ assert_equal({"bug" => 1234}, test_for_bug_1234.attributes)
62
+
63
+ test_no_attributes = TestStack.new("test_no_attributes")
64
+ assert_equal({}, test_no_attributes.attributes)
65
+ end
66
+
67
+ def test_callback
68
+ changed_attributes = []
69
+ observer = Proc.new do |test_case, key, old_value, value, method_name|
70
+ changed_attributes << [test_case, key, old_value, value, method_name]
71
+ end
72
+
73
+ test_case = Class.new(TestStack) do
74
+ register_attribute_observer(:bug, &observer)
75
+ attribute("bug", 9876, "test_bug_1234")
76
+ attribute(:description, "Test for peek", "test_peek")
77
+ attribute(:bug, 29, "test_peek")
78
+ end
79
+
80
+ assert_equal([
81
+ [test_case, "bug", 1234, 9876, "test_bug_1234"],
82
+ [test_case, "bug", nil, 29, "test_peek"],
83
+ ],
84
+ changed_attributes)
85
+ end
86
+
87
+ def test_attributes_with_prepended_module
88
+ omit("Module#prepend is needed") unless Module.respond_to?(:prepend, true)
89
+ test_case = Class.new(TestStack) do
90
+ prepend Module.new
91
+ end
92
+ assert_equal({
93
+ "category" => :accessor,
94
+ },
95
+ test_case.attributes("test_peek"))
96
+ end
97
+
98
+ class TestDescription < self
99
+ def test_decoration_style
100
+ test_case = Class.new(TestStack) do
101
+ description "Test for push"
102
+ def test_push
103
+ end
104
+ end
105
+
106
+ test_push = test_case.new("test_push")
107
+ assert_equal({"description" => "Test for push"},
108
+ test_push.attributes)
109
+ end
110
+
111
+ def test_explicit_test_name_style
112
+ test_case = Class.new(TestStack) do
113
+ def test_push
114
+ end
115
+ description "Test for push", :test_push
116
+ end
117
+
118
+ test_push = test_case.new("test_push")
119
+ assert_equal({"description" => "Test for push"},
120
+ test_push.attributes)
121
+ end
122
+ end
123
+ end
@@ -0,0 +1,79 @@
1
+ # coding: utf-8
2
+
3
+ require "test-unit"
4
+ require "testunit-test-util"
5
+
6
+ class TestCodeSnippet < Test::Unit::TestCase
7
+ include TestUnitTestUtil
8
+
9
+ class TestJRuby < self
10
+ def test_error_inside_jruby
11
+ jruby_only_test
12
+
13
+ backtrace = backtrace_from_jruby
14
+ no_rb_entries = backtrace.find_all do |(file, _, _)|
15
+ File.extname(file) != ".rb"
16
+ end
17
+
18
+ fetcher = Test::Unit::CodeSnippetFetcher.new
19
+ snippets = no_rb_entries.collect do |(file, line, _)|
20
+ fetcher.fetch(file, line)
21
+ end
22
+ assert_equal([[]] * no_rb_entries.size,
23
+ snippets)
24
+ end
25
+
26
+ private
27
+ def backtrace_from_jruby
28
+ begin
29
+ java.util.Vector.new(-1)
30
+ rescue Exception
31
+ $@.collect do |entry|
32
+ entry.split(/:/, 3)
33
+ end
34
+ else
35
+ flunk("failed to raise an exception from JRuby.")
36
+ end
37
+ end
38
+ end
39
+
40
+ class TestDefaultExternal < self
41
+ def suppress_warning
42
+ verbose = $VERBOSE
43
+ begin
44
+ $VERBOSE = false
45
+ yield
46
+ ensure
47
+ $VERBOSE = verbose
48
+ end
49
+ end
50
+
51
+ def setup
52
+ suppress_warning do
53
+ @default_external = Encoding.default_external
54
+ end
55
+ @fetcher = Test::Unit::CodeSnippetFetcher.new
56
+ end
57
+
58
+ def teardown
59
+ suppress_warning do
60
+ Encoding.default_external = @default_external
61
+ end
62
+ end
63
+
64
+ def test_windows_31j
65
+ source = Tempfile.new(["test-code-snippet", ".rb"])
66
+ source.puts(<<-SOURCE)
67
+ puts("あいうえお")
68
+ SOURCE
69
+ source.flush
70
+ suppress_warning do
71
+ Encoding.default_external = "Windows-31J"
72
+ end
73
+ assert_equal([
74
+ [1, "puts(\"あいうえお\")", {:target_line? => false}],
75
+ ],
76
+ @fetcher.fetch(source.path, 0))
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,123 @@
1
+ class TestUnitColorScheme < Test::Unit::TestCase
2
+ def test_register
3
+ inverted_scheme_spec = {
4
+ "success" => {:name => "red"},
5
+ "failure" => {:name => "green"},
6
+ }
7
+ Test::Unit::ColorScheme["inverted"] = inverted_scheme_spec
8
+ assert_equal({
9
+ "success" => color("red"),
10
+ "failure" => color("green"),
11
+ },
12
+ Test::Unit::ColorScheme["inverted"].to_hash)
13
+ end
14
+
15
+ def test_new_with_colors
16
+ scheme = Test::Unit::ColorScheme.new(:success => color("blue"),
17
+ "failure" => color("green",
18
+ :underline => true))
19
+ assert_equal({
20
+ "success" => color("blue"),
21
+ "failure" => color("green", :underline => true),
22
+ },
23
+ scheme.to_hash)
24
+ end
25
+
26
+ def test_new_with_spec
27
+ scheme = Test::Unit::ColorScheme.new(:success => {
28
+ :name => "blue",
29
+ :bold => true
30
+ },
31
+ "failure" => {:name => "green"})
32
+ assert_equal({
33
+ "success" => color("blue", :bold => true),
34
+ "failure" => color("green"),
35
+ },
36
+ scheme.to_hash)
37
+ end
38
+
39
+ private
40
+ def color(name, options={})
41
+ Test::Unit::Color.new(name, options)
42
+ end
43
+
44
+ module CleanEnvironment
45
+ def setup
46
+ @original_term, ENV["TERM"] = ENV["TERM"], nil
47
+ @original_color_term, ENV["COLORTERM"] = ENV["COLORTERM"], nil
48
+ @original_vte_version, ENV["VTE_VERSION"] = ENV["VTE_VERSION"], nil
49
+ ENV["TERM"] = "xterm"
50
+ end
51
+
52
+ def teardown
53
+ ENV["TERM"] = @original_term
54
+ ENV["COLORTERM"] = @original_color_term
55
+ ENV["VTE_VERSION"] = @original_vte_version
56
+ end
57
+ end
58
+
59
+ class TestFor8Colors < self
60
+ include CleanEnvironment
61
+
62
+ def test_default
63
+ expected_schema_keys = [
64
+ "pass",
65
+ "pass-marker",
66
+ "failure",
67
+ "failure-marker",
68
+ "pending",
69
+ "pending-marker",
70
+ "omission",
71
+ "omission-marker",
72
+ "notification",
73
+ "notification-marker",
74
+ "error",
75
+ "error-marker",
76
+ "case",
77
+ "suite",
78
+ "diff-inserted-tag",
79
+ "diff-deleted-tag",
80
+ "diff-difference-tag",
81
+ "diff-inserted",
82
+ "diff-deleted",
83
+ ]
84
+ assert_equal(expected_schema_keys.sort,
85
+ Test::Unit::ColorScheme.default.to_hash.keys.sort)
86
+ end
87
+ end
88
+
89
+ class TestGuessAvailableColors < self
90
+ include CleanEnvironment
91
+ {
92
+ "rxvt" => 8,
93
+ "xterm-color" => 8,
94
+ "alacritty" => 256,
95
+ "iTerm.app" => 256,
96
+ "screen-256color" => 256,
97
+ "screenxterm-256color" => 256,
98
+ "tmux-256color" => 256,
99
+ "vte-256color" => 256,
100
+ "vscode-direct" => 2**24,
101
+ "vte-direct" => 2**24,
102
+ "xterm-direct" => 2**24,
103
+ }.each do |term, colors|
104
+ data("%20s => %8d" % [term, colors], {term: term, colors: colors})
105
+ end
106
+ def test_term_env(data)
107
+ ENV["TERM"] = data[:term]
108
+ assert_equal(data[:colors],
109
+ Test::Unit::ColorScheme.available_colors,
110
+ "Incorrect available_colors for TERM=%s" % [data[:term]])
111
+ end
112
+ end
113
+
114
+ class TestDefaultScheme < self
115
+ include CleanEnvironment
116
+
117
+ def test_direct_color
118
+ ENV["TERM"] = "xterm-direct"
119
+ assert_equal(Test::Unit::ColorScheme.default_for_256_colors,
120
+ Test::Unit::ColorScheme.default)
121
+ end
122
+ end
123
+ end
@@ -0,0 +1,47 @@
1
+ class TestUnitColor < Test::Unit::TestCase
2
+ def test_color_escape_sequence
3
+ assert_escape_sequence(["31"], color("red"))
4
+ assert_escape_sequence(["32", "1"], color("green", :bold => true))
5
+ assert_escape_sequence(["0"], color("reset"))
6
+ assert_escape_sequence(["45"], color("magenta", :background => true))
7
+ end
8
+
9
+ def test_mix_color_escape_sequence
10
+ assert_escape_sequence(["34", "1"],
11
+ mix_color([color("blue"),
12
+ color("none", :bold => true)]))
13
+ assert_escape_sequence(["34", "1", "4"],
14
+ mix_color([color("blue"),
15
+ color("none", :bold => true)]) +
16
+ color("none", :underline => true))
17
+ assert_escape_sequence(["34", "1", "4"],
18
+ color("blue") +
19
+ color("none", :bold => true) +
20
+ color("none", :underline => true))
21
+ end
22
+
23
+ def test_equal
24
+ red = color("red")
25
+ red_bold = color("red", :bold => true)
26
+
27
+ assert_operator(red, :==, red)
28
+ assert_not_equal(red, nil)
29
+ assert_equal(red, color("red"))
30
+ assert_not_equal(red, red_bold)
31
+ end
32
+
33
+ private
34
+ def color(name, options={})
35
+ Test::Unit::Color.new(name, options)
36
+ end
37
+
38
+ def mix_color(colors)
39
+ Test::Unit::MixColor.new(colors)
40
+ end
41
+
42
+ def assert_escape_sequence(expected, color)
43
+ assert_equal(expected, color.sequence)
44
+ assert_match(/\e\[(?:\d+;)*\d+m/, color.escape_sequence)
45
+ assert_equal(expected, color.escape_sequence[2..-2].split(";"))
46
+ end
47
+ end
@@ -0,0 +1,419 @@
1
+ require "testunit-test-util"
2
+
3
+ class TestData < Test::Unit::TestCase
4
+ class Calc
5
+ def initialize
6
+ end
7
+
8
+ def plus(augend, addend)
9
+ augend + addend
10
+ end
11
+ end
12
+
13
+ class TestCalc < Test::Unit::TestCase
14
+ @@testing = false
15
+
16
+ class << self
17
+ def testing=(testing)
18
+ @@testing = testing
19
+ end
20
+ end
21
+
22
+ def valid?
23
+ @@testing
24
+ end
25
+
26
+ def setup
27
+ @calc = Calc.new
28
+ end
29
+
30
+ class TestDataSet < TestCalc
31
+ data("positive positive" => {:expected => 4, :augend => 3, :addend => 1},
32
+ "positive negative" => {:expected => -1, :augend => 1, :addend => -2})
33
+ def test_plus(data)
34
+ assert_equal(data[:expected],
35
+ @calc.plus(data[:augend], data[:addend]))
36
+ end
37
+ end
38
+
39
+ class TestNData < TestCalc
40
+ data("positive positive", {:expected => 4, :augend => 3, :addend => 1})
41
+ data("positive negative", {:expected => -1, :augend => 1, :addend => -2})
42
+ def test_plus(data)
43
+ assert_equal(data[:expected],
44
+ @calc.plus(data[:augend], data[:addend]))
45
+ end
46
+ end
47
+
48
+ class TestDynamicDataSet < TestCalc
49
+ DATA_PROC = lambda do
50
+ data_set = {}
51
+ data_set["positive positive"] = {
52
+ :expected => 3,
53
+ :augend => 1,
54
+ :addend => 2
55
+ }
56
+ data_set["positive negative"] = {
57
+ :expected => -1,
58
+ :augend => 1,
59
+ :addend => -2
60
+ }
61
+ data_set
62
+ end
63
+
64
+ data(&DATA_PROC)
65
+ def test_plus(data)
66
+ assert_equal(data[:expected],
67
+ @calc.plus(data[:augend], data[:addend]))
68
+ end
69
+ end
70
+
71
+ class TestLoadDataSet < TestCalc
72
+ extend TestUnitTestUtil
73
+ load_data(fixture_file_path("plus.csv"))
74
+ def test_plus(data)
75
+ assert_equal(data["expected"],
76
+ @calc.plus(data["augend"], data["addend"]))
77
+ end
78
+ end
79
+
80
+ class TestSuperclass < TestCalc
81
+ data("positive positive" => {:expected => 4, :augend => 3, :addend => 1},
82
+ "positive negative" => {:expected => -1, :augend => 1, :addend => -2})
83
+ def test_plus(data)
84
+ assert_equal(data[:expected],
85
+ @calc.plus(data[:augend], data[:addend]))
86
+ end
87
+
88
+ class TestNormalTestInSubclass < self
89
+ def test_plus
90
+ assert_equal(2, @calc.plus(1, 1))
91
+ end
92
+ end
93
+ end
94
+
95
+ class TestMethod < TestCalc
96
+ def data_test_plus
97
+ {
98
+ "positive positive" => {:expected => 4, :augend => 3, :addend => 1},
99
+ "positive negative" => {:expected => -1, :augend => 1, :addend => -2},
100
+ }
101
+ end
102
+
103
+ def test_plus(data)
104
+ assert_equal(data[:expected],
105
+ @calc.plus(data[:augend], data[:addend]))
106
+ end
107
+ end
108
+
109
+ class TestPatterns < TestCalc
110
+ data(:x, [-1, 1, 0])
111
+ data(:y, [-100, 100])
112
+ data(:z, ["a", "b", "c"])
113
+ def test_use_data(data)
114
+ end
115
+ end
116
+
117
+ class TestPatternsKeep < TestCalc
118
+ data(:x, [-1, 1, 0], keep: true)
119
+ data(:y, [-100, 100])
120
+ data(:z, ["a", "b", "c"], keep: true)
121
+ def test_use_data(data)
122
+ end
123
+
124
+ def test_use_data_keep(data)
125
+ end
126
+ end
127
+
128
+ class TestPatternsGroup < TestCalc
129
+ data(:a, [-1, 1, 0], group: 1)
130
+ data(:b, [:a, :b], group: 1)
131
+ data(:x, [2, 9], group: :z)
132
+ data(:y, ["a", "b", "c"], group: :z)
133
+ def test_use_data(data)
134
+ end
135
+ end
136
+ end
137
+
138
+ def setup
139
+ TestCalc.testing = true
140
+ end
141
+
142
+ def teardown
143
+ TestCalc.testing = false
144
+ end
145
+
146
+ def test_data_no_arguments_without_block
147
+ assert_raise(ArgumentError) do
148
+ self.class.data
149
+ end
150
+ end
151
+
152
+ data("data set",
153
+ {
154
+ :test_case => TestCalc::TestDataSet,
155
+ :data_sets => [
156
+ {
157
+ "positive positive" => {
158
+ :expected => 4,
159
+ :augend => 3,
160
+ :addend => 1,
161
+ },
162
+ "positive negative" => {
163
+ :expected => -1,
164
+ :augend => 1,
165
+ :addend => -2,
166
+ },
167
+ },
168
+ ],
169
+ })
170
+ data("n-data",
171
+ {
172
+ :test_case => TestCalc::TestNData,
173
+ :data_sets => [
174
+ {
175
+ "positive positive" => {
176
+ :expected => 4,
177
+ :augend => 3,
178
+ :addend => 1,
179
+ },
180
+ },
181
+ {
182
+ "positive negative" => {
183
+ :expected => -1,
184
+ :augend => 1,
185
+ :addend => -2,
186
+ },
187
+ },
188
+ ],
189
+ })
190
+ data("dynamic-data-set",
191
+ {
192
+ :test_case => TestCalc::TestDynamicDataSet,
193
+ :data_sets => [TestCalc::TestDynamicDataSet::DATA_PROC],
194
+ })
195
+ data("load-data-set",
196
+ {
197
+ :test_case => TestCalc::TestLoadDataSet,
198
+ :data_sets => [
199
+ {
200
+ "positive positive" => {
201
+ "expected" => 4,
202
+ "augend" => 3,
203
+ "addend" => 1,
204
+ },
205
+ },
206
+ {
207
+ "positive negative" => {
208
+ "expected" => -1,
209
+ "augend" => 1,
210
+ "addend" => -2,
211
+ },
212
+ },
213
+ ],
214
+ })
215
+ def test_data(data)
216
+ test_plus = data[:test_case].new("test_plus")
217
+ data_sets = Test::Unit::DataSets.new
218
+ data[:data_sets].each do |data_set|
219
+ data_sets.add(data_set)
220
+ end
221
+ assert_equal(data_sets, test_plus[:data])
222
+ end
223
+
224
+ def test_data_patterns
225
+ test = TestCalc::TestPatterns.new("test_use_data")
226
+ data_sets = Test::Unit::DataSets.new
227
+ data_sets << [:x, [-1, 1, 0]]
228
+ data_sets << [:y, [-100, 100]]
229
+ data_sets << [:z, ["a", "b", "c"]]
230
+ assert_equal(data_sets, test[:data])
231
+ end
232
+
233
+ def test_data_patterns_keep
234
+ test = TestCalc::TestPatternsKeep.new("test_use_data_keep")
235
+ data_sets = Test::Unit::DataSets.new
236
+ data_sets.add([:x, [-1, 1, 0]], {keep: true})
237
+ data_sets.add([:z, ["a", "b", "c"]], {keep: true})
238
+ assert_equal(data_sets, test[:data])
239
+ end
240
+
241
+ data("data set" => TestCalc::TestDataSet,
242
+ "n-data" => TestCalc::TestNData,
243
+ "dynamic-data-set" => TestCalc::TestDynamicDataSet,
244
+ "load-data-set" => TestCalc::TestLoadDataSet)
245
+ def test_suite(test_case)
246
+ suite = test_case.suite
247
+ assert_equal(["test_plus[positive negative](#{test_case.name})",
248
+ "test_plus[positive positive](#{test_case.name})"],
249
+ suite.tests.collect {|test| test.name}.sort)
250
+ end
251
+
252
+ def test_suite_patterns
253
+ test_case = TestCalc::TestPatterns
254
+ suite = test_case.suite
255
+ assert_equal([
256
+ "test_use_data[x: -1, y: -100, z: \"a\"](#{test_case.name})",
257
+ "test_use_data[x: -1, y: -100, z: \"b\"](#{test_case.name})",
258
+ "test_use_data[x: -1, y: -100, z: \"c\"](#{test_case.name})",
259
+ "test_use_data[x: -1, y: 100, z: \"a\"](#{test_case.name})",
260
+ "test_use_data[x: -1, y: 100, z: \"b\"](#{test_case.name})",
261
+ "test_use_data[x: -1, y: 100, z: \"c\"](#{test_case.name})",
262
+ "test_use_data[x: 0, y: -100, z: \"a\"](#{test_case.name})",
263
+ "test_use_data[x: 0, y: -100, z: \"b\"](#{test_case.name})",
264
+ "test_use_data[x: 0, y: -100, z: \"c\"](#{test_case.name})",
265
+ "test_use_data[x: 0, y: 100, z: \"a\"](#{test_case.name})",
266
+ "test_use_data[x: 0, y: 100, z: \"b\"](#{test_case.name})",
267
+ "test_use_data[x: 0, y: 100, z: \"c\"](#{test_case.name})",
268
+ "test_use_data[x: 1, y: -100, z: \"a\"](#{test_case.name})",
269
+ "test_use_data[x: 1, y: -100, z: \"b\"](#{test_case.name})",
270
+ "test_use_data[x: 1, y: -100, z: \"c\"](#{test_case.name})",
271
+ "test_use_data[x: 1, y: 100, z: \"a\"](#{test_case.name})",
272
+ "test_use_data[x: 1, y: 100, z: \"b\"](#{test_case.name})",
273
+ "test_use_data[x: 1, y: 100, z: \"c\"](#{test_case.name})",
274
+ ],
275
+ suite.tests.collect {|test| test.name}.sort)
276
+ end
277
+
278
+ def test_suite_patterns_group
279
+ test_case = TestCalc::TestPatternsGroup
280
+ suite = test_case.suite
281
+ assert_equal([
282
+ "test_use_data[group: 1, a: -1, b: :a](#{test_case.name})",
283
+ "test_use_data[group: 1, a: -1, b: :b](#{test_case.name})",
284
+ "test_use_data[group: 1, a: 0, b: :a](#{test_case.name})",
285
+ "test_use_data[group: 1, a: 0, b: :b](#{test_case.name})",
286
+ "test_use_data[group: 1, a: 1, b: :a](#{test_case.name})",
287
+ "test_use_data[group: 1, a: 1, b: :b](#{test_case.name})",
288
+ "test_use_data[group: :z, x: 2, y: \"a\"](#{test_case.name})",
289
+ "test_use_data[group: :z, x: 2, y: \"b\"](#{test_case.name})",
290
+ "test_use_data[group: :z, x: 2, y: \"c\"](#{test_case.name})",
291
+ "test_use_data[group: :z, x: 9, y: \"a\"](#{test_case.name})",
292
+ "test_use_data[group: :z, x: 9, y: \"b\"](#{test_case.name})",
293
+ "test_use_data[group: :z, x: 9, y: \"c\"](#{test_case.name})",
294
+ ],
295
+ suite.tests.collect {|test| test.name}.sort)
296
+ end
297
+
298
+ data("data set" => TestCalc::TestDataSet,
299
+ "n-data" => TestCalc::TestNData,
300
+ "dynamic-data-set" => TestCalc::TestDynamicDataSet,
301
+ "load-data-set" => TestCalc::TestLoadDataSet,
302
+ "superclass" => TestCalc::TestSuperclass,
303
+ "method" => TestCalc::TestMethod)
304
+ def test_run(test_case)
305
+ result = _run_test(test_case)
306
+ assert_equal("2 tests, 2 assertions, 0 failures, 0 errors, 0 pendings, " \
307
+ "0 omissions, 0 notifications", result.to_s)
308
+ end
309
+
310
+ def test_run_normal_test_in_subclass
311
+ result = _run_test(TestCalc::TestSuperclass::TestNormalTestInSubclass)
312
+ assert_equal("1 tests, 1 assertions, 0 failures, 0 errors, 0 pendings, " \
313
+ "0 omissions, 0 notifications", result.to_s)
314
+ end
315
+
316
+ data("data set" => TestCalc::TestDataSet,
317
+ "n-data" => TestCalc::TestNData,
318
+ "dynamic-data-set" => TestCalc::TestDynamicDataSet,
319
+ "load-data-set" => TestCalc::TestLoadDataSet)
320
+ def test_equal(test_case)
321
+ suite = test_case.suite
322
+ positive_positive_test = suite.tests.find do |test|
323
+ test.data_label == "positive positive"
324
+ end
325
+ suite.tests.delete(positive_positive_test)
326
+ assert_equal(["test_plus[positive negative](#{test_case.name})"],
327
+ suite.tests.collect {|test| test.name}.sort)
328
+ end
329
+
330
+ data("true" => {:expected => true, :target => "true"},
331
+ "false" => {:expected => false, :target => "false"},
332
+ "integer" => {:expected => 1, :target => "1"},
333
+ "float" => {:expected => 1.5, :target => "1.5"},
334
+ "string" => {:expected => "hello", :target => "hello"})
335
+ def test_normalize_value(data)
336
+ loader = Test::Unit::Data::ClassMethods::Loader.new(self)
337
+ assert_equal(data[:expected], loader.__send__(:normalize_value, data[:target]))
338
+ end
339
+
340
+ def _run_test(test_case)
341
+ result = Test::Unit::TestResult.new
342
+ test = test_case.suite
343
+ yield(test) if block_given?
344
+ test.run(result) {}
345
+ result
346
+ end
347
+
348
+ class TestLoadData < Test::Unit::TestCase
349
+ include TestUnitTestUtil
350
+ def test_invalid_csv_file_name
351
+ garbage = "X"
352
+ file_name = "data.csv#{garbage}"
353
+ assert_raise(ArgumentError, "unsupported file format: <#{file_name}>") do
354
+ self.class.load_data(file_name)
355
+ end
356
+ end
357
+
358
+ class TestFileFormat < self
359
+ def setup
360
+ self.class.current_attribute(:data).clear
361
+ end
362
+
363
+ class TestHeader < self
364
+ data("csv" => "header.csv",
365
+ "tsv" => "header.tsv")
366
+ def test_normal(file_name)
367
+ self.class.load_data(fixture_file_path(file_name))
368
+ data_sets = Test::Unit::DataSets.new
369
+ data_sets << {
370
+ "empty string" => {
371
+ "expected" => true,
372
+ "target" => ""
373
+ }
374
+ }
375
+ data_sets << {
376
+ "plain string" => {
377
+ "expected" => false,
378
+ "target" => "hello"
379
+ }
380
+ }
381
+ assert_equal(data_sets,
382
+ self.class.current_attribute(:data)[:value])
383
+ end
384
+
385
+ data("csv" => "header-label.csv",
386
+ "tsv" => "header-label.tsv")
387
+ def test_label(file_name)
388
+ self.class.load_data(fixture_file_path(file_name))
389
+ data_sets = Test::Unit::DataSets.new
390
+ data_sets << {
391
+ "upper case" => {
392
+ "expected" => "HELLO",
393
+ "label" => "HELLO"
394
+ }
395
+ }
396
+ data_sets << {
397
+ "lower case" => {
398
+ "expected" => "Hello",
399
+ "label" => "hello"
400
+ }
401
+ }
402
+ assert_equal(data_sets,
403
+ self.class.current_attribute(:data)[:value])
404
+ end
405
+ end
406
+
407
+ data("csv" => "no-header.csv",
408
+ "tsv" => "no-header.tsv")
409
+ def test_without_header(file_name)
410
+ self.class.load_data(fixture_file_path(file_name))
411
+ data_sets = Test::Unit::DataSets.new
412
+ data_sets << {"empty string" => [true, ""]}
413
+ data_sets << {"plain string" => [false, "hello"]}
414
+ assert_equal(data_sets,
415
+ self.class.current_attribute(:data)[:value])
416
+ end
417
+ end
418
+ end
419
+ end