warbler 1.4.10 → 2.0.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (186) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +12 -29
  3. data/Gemfile +1 -12
  4. data/History.txt +5 -7
  5. data/Mavenfile +1 -2
  6. data/README.rdoc +51 -53
  7. data/Rakefile +7 -13
  8. data/ext/JarMain.java +12 -58
  9. data/ext/WarMain.java +13 -41
  10. data/ext/WarblerJar.java +8 -12
  11. data/lib/warbler.rb +0 -1
  12. data/lib/warbler/config.rb +11 -2
  13. data/lib/warbler/gems.rb +9 -9
  14. data/lib/warbler/jar.rb +2 -4
  15. data/lib/warbler/rake_helper.rb +0 -7
  16. data/lib/warbler/traits.rb +0 -1
  17. data/lib/warbler/traits/bundler.rb +12 -12
  18. data/lib/warbler/traits/gemspec.rb +12 -22
  19. data/lib/warbler/traits/rails.rb +5 -5
  20. data/lib/warbler/traits/war.rb +2 -7
  21. data/lib/warbler/version.rb +1 -1
  22. data/lib/warbler/web_server.rb +4 -16
  23. data/lib/warbler/zip_support.rb +3 -21
  24. data/lib/warbler_jar.jar +0 -0
  25. data/pom.xml +23 -6
  26. data/spec/drb_default_id_conv.rb +48 -50
  27. data/spec/sample_bundler/Gemfile +1 -1
  28. data/spec/sample_bundler/vendor/bundle/jruby/{1.8 → 2.2.0}/bin/rake +7 -3
  29. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/cache/rake-10.4.2.gem +0 -0
  30. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/.autotest +7 -0
  31. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/.gemtest +0 -0
  32. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/.rubocop.yml +27 -0
  33. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/.togglerc +7 -0
  34. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/CONTRIBUTING.rdoc +34 -0
  35. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/History.rdoc +651 -0
  36. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/MIT-LICENSE +21 -0
  37. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/Manifest.txt +166 -0
  38. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/README.rdoc +140 -0
  39. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/Rakefile +81 -0
  40. data/spec/sample_bundler/vendor/bundle/{ruby/1.8/gems/rake-0.8.7 → jruby/2.2.0/gems/rake-10.4.2}/bin/rake +5 -3
  41. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake.rb +79 -0
  42. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/alt_system.rb +110 -0
  43. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/application.rb +790 -0
  44. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/backtrace.rb +23 -0
  45. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/clean.rb +76 -0
  46. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/cloneable.rb +16 -0
  47. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/contrib/.document +1 -0
  48. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/contrib/compositepublisher.rb +21 -0
  49. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/contrib/ftptools.rb +137 -0
  50. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/contrib/publisher.rb +81 -0
  51. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/contrib/rubyforgepublisher.rb +18 -0
  52. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/contrib/sshpublisher.rb +61 -0
  53. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/contrib/sys.rb +4 -0
  54. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/cpu_counter.rb +125 -0
  55. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/default_loader.rb +14 -0
  56. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/dsl_definition.rb +201 -0
  57. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/early_time.rb +21 -0
  58. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/ext/core.rb +25 -0
  59. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/ext/module.rb +2 -0
  60. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/ext/pathname.rb +25 -0
  61. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/ext/string.rb +173 -0
  62. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/ext/time.rb +16 -0
  63. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/file_creation_task.rb +24 -0
  64. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/file_list.rb +428 -0
  65. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/file_task.rb +46 -0
  66. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/file_utils.rb +128 -0
  67. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/file_utils_ext.rb +144 -0
  68. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/gempackagetask.rb +4 -0
  69. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/invocation_chain.rb +56 -0
  70. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/invocation_exception_mixin.rb +16 -0
  71. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/late_time.rb +17 -0
  72. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/linked_list.rb +103 -0
  73. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/loaders/makefile.rb +40 -0
  74. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/multi_task.rb +13 -0
  75. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/name_space.rb +38 -0
  76. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/packagetask.rb +199 -0
  77. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/pathmap.rb +3 -0
  78. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/phony.rb +15 -0
  79. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/private_reader.rb +20 -0
  80. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/promise.rb +99 -0
  81. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/pseudo_status.rb +29 -0
  82. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/rake_module.rb +38 -0
  83. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/rake_test_loader.rb +22 -0
  84. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/rdoctask.rb +4 -0
  85. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/ruby182_test_unit_fix.rb +29 -0
  86. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/rule_recursion_overflow_error.rb +20 -0
  87. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/runtest.rb +27 -0
  88. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/scope.rb +42 -0
  89. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/task.rb +383 -0
  90. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/task_argument_error.rb +7 -0
  91. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/task_arguments.rb +98 -0
  92. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/task_manager.rb +310 -0
  93. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/tasklib.rb +24 -0
  94. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/testtask.rb +212 -0
  95. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/thread_history_display.rb +48 -0
  96. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/thread_pool.rb +164 -0
  97. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/trace_output.rb +22 -0
  98. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/version.rb +7 -0
  99. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/lib/rake/win32.rb +56 -0
  100. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/rakelib/publish.rake +20 -0
  101. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/rakelib/test_times.rake +25 -0
  102. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/file_creation.rb +34 -0
  103. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/helper.rb +130 -0
  104. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/support/rakefile_definitions.rb +478 -0
  105. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/support/ruby_runner.rb +34 -0
  106. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_private_reader.rb +42 -0
  107. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake.rb +40 -0
  108. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_application.rb +643 -0
  109. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_application_options.rb +466 -0
  110. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_backtrace.rb +119 -0
  111. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_clean.rb +61 -0
  112. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_cpu_counter.rb +68 -0
  113. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_definitions.rb +84 -0
  114. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_directory_task.rb +76 -0
  115. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_dsl.rb +40 -0
  116. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_early_time.rb +31 -0
  117. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_extension.rb +59 -0
  118. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_file_creation_task.rb +56 -0
  119. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_file_list.rb +655 -0
  120. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_file_list_path_map.rb +8 -0
  121. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_file_task.rb +197 -0
  122. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_file_utils.rb +309 -0
  123. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_ftp_file.rb +74 -0
  124. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_functional.rb +482 -0
  125. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_invocation_chain.rb +64 -0
  126. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_late_time.rb +18 -0
  127. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_linked_list.rb +84 -0
  128. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_makefile_loader.rb +46 -0
  129. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_multi_task.rb +64 -0
  130. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_name_space.rb +57 -0
  131. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_package_task.rb +79 -0
  132. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_path_map.rb +168 -0
  133. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_path_map_explode.rb +34 -0
  134. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_path_map_partial.rb +18 -0
  135. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_pathname_extensions.rb +15 -0
  136. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_pseudo_status.rb +21 -0
  137. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_rake_test_loader.rb +20 -0
  138. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_reduce_compat.rb +26 -0
  139. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_require.rb +40 -0
  140. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_rules.rb +388 -0
  141. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_scope.rb +44 -0
  142. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_task.rb +393 -0
  143. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_task_argument_parsing.rb +119 -0
  144. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_task_arguments.rb +127 -0
  145. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_task_lib.rb +9 -0
  146. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_task_manager.rb +178 -0
  147. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_task_manager_argument_resolution.rb +19 -0
  148. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_task_with_arguments.rb +172 -0
  149. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_test_task.rb +146 -0
  150. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_thread_pool.rb +145 -0
  151. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_top_level_functions.rb +71 -0
  152. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_rake_win32.rb +72 -0
  153. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_thread_history_display.rb +101 -0
  154. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/gems/rake-10.4.2/test/test_trace_output.rb +52 -0
  155. data/spec/sample_bundler/vendor/bundle/jruby/2.2.0/specifications/rake-10.4.2.gemspec +43 -0
  156. data/spec/sample_jar/sample_jar.gemspec +1 -2
  157. data/spec/spec_helper.rb +2 -8
  158. data/spec/warbler/bundler_spec.rb +11 -22
  159. data/spec/warbler/config_spec.rb +0 -3
  160. data/spec/warbler/jar_spec.rb +3 -77
  161. data/spec/warbler/task_spec.rb +5 -6
  162. data/spec/warbler/web_server_spec.rb +2 -2
  163. data/warble.rb +4 -4
  164. data/warbler.gemspec +8 -8
  165. metadata +451 -64
  166. data/lib/warbler/bundler_helper.rb +0 -22
  167. data/lib/warbler/traits/merb.rb +0 -35
  168. data/spec/sample_bundler/vendor/bundle/jruby/1.8/cache/rake-0.8.7.gem +0 -0
  169. data/spec/sample_bundler/vendor/bundle/jruby/1.8/gems/rake-0.8.7/bin/rake +0 -31
  170. data/spec/sample_bundler/vendor/bundle/jruby/1.8/gems/rake-0.8.7/lib/rake.rb +0 -2506
  171. data/spec/sample_bundler/vendor/bundle/jruby/1.8/specifications/rake-0.8.7.gemspec +0 -31
  172. data/spec/sample_bundler/vendor/bundle/jruby/1.9/bin/rake +0 -19
  173. data/spec/sample_bundler/vendor/bundle/jruby/1.9/cache/rake-0.8.7.gem +0 -0
  174. data/spec/sample_bundler/vendor/bundle/jruby/1.9/gems/rake-0.8.7/bin/rake +0 -31
  175. data/spec/sample_bundler/vendor/bundle/jruby/1.9/gems/rake-0.8.7/lib/rake.rb +0 -2506
  176. data/spec/sample_bundler/vendor/bundle/jruby/1.9/specifications/rake-0.8.7.gemspec +0 -30
  177. data/spec/sample_bundler/vendor/bundle/ruby/1.8/bin/rake +0 -19
  178. data/spec/sample_bundler/vendor/bundle/ruby/1.8/cache/rake-0.8.7.gem +0 -0
  179. data/spec/sample_bundler/vendor/bundle/ruby/1.8/gems/rake-0.8.7/lib/rake.rb +0 -2506
  180. data/spec/sample_bundler/vendor/bundle/ruby/1.8/specifications/rake-0.8.7.gemspec +0 -30
  181. data/spec/sample_bundler/vendor/bundle/ruby/1.9.1/bin/rake +0 -19
  182. data/spec/sample_bundler/vendor/bundle/ruby/1.9.1/cache/rake-0.8.7.gem +0 -0
  183. data/spec/sample_bundler/vendor/bundle/ruby/1.9.1/gems/rake-0.8.7/bin/rake +0 -31
  184. data/spec/sample_bundler/vendor/bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb +0 -2506
  185. data/spec/sample_bundler/vendor/bundle/ruby/1.9.1/specifications/rake-0.8.7.gemspec +0 -30
  186. data/spec/sample_jar/sbin/sample_jar +0 -5
@@ -0,0 +1,44 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+
3
+ class TestRakeScope < Rake::TestCase
4
+ include Rake
5
+
6
+ def test_path_against_empty_scope
7
+ scope = Scope.make
8
+ assert_equal scope, Scope::EMPTY
9
+ assert_equal scope.path, ""
10
+ end
11
+
12
+ def test_path_against_one_element
13
+ scope = Scope.make(:one)
14
+ assert_equal "one", scope.path
15
+ end
16
+
17
+ def test_path_against_two_elements
18
+ scope = Scope.make(:inner, :outer)
19
+ assert_equal "outer:inner", scope.path
20
+ end
21
+
22
+ def test_path_with_task_name
23
+ scope = Scope.make(:inner, :outer)
24
+ assert_equal "outer:inner:task", scope.path_with_task_name("task")
25
+ end
26
+
27
+ def test_path_with_task_name_against_empty_scope
28
+ scope = Scope.make
29
+ assert_equal "task", scope.path_with_task_name("task")
30
+ end
31
+
32
+ def test_conj_against_two_elements
33
+ scope = Scope.make.conj("B").conj("A")
34
+ assert_equal Scope.make("A", "B"), scope
35
+ end
36
+
37
+ def test_trim
38
+ scope = Scope.make("A", "B")
39
+ assert_equal scope, scope.trim(0)
40
+ assert_equal scope.tail, scope.trim(1)
41
+ assert_equal scope.tail.tail, scope.trim(2)
42
+ assert_equal scope.tail.tail, scope.trim(3)
43
+ end
44
+ end
@@ -0,0 +1,393 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+ require 'fileutils'
3
+
4
+ class TestRakeTask < Rake::TestCase
5
+ include Rake
6
+
7
+ def setup
8
+ super
9
+
10
+ Task.clear
11
+ Rake::TaskManager.record_task_metadata = true
12
+ end
13
+
14
+ def teardown
15
+ Rake::TaskManager.record_task_metadata = false
16
+ Rake.application.thread_pool.join
17
+
18
+ super
19
+ end
20
+
21
+ def test_create
22
+ arg = nil
23
+ t = task(:name) { |task| arg = task; 1234 }
24
+ assert_equal "name", t.name
25
+ assert_equal [], t.prerequisites
26
+ assert t.needed?
27
+ t.execute(0)
28
+ assert_equal t, arg
29
+ assert_nil t.source
30
+ assert_equal [], t.sources
31
+ assert_equal 1, t.locations.size
32
+ assert_match(/#{Regexp.quote(__FILE__)}/, t.locations.first)
33
+ end
34
+
35
+ def test_inspect
36
+ t = task(:foo => [:bar, :baz])
37
+ assert_equal "<Rake::Task foo => [bar, baz]>", t.inspect
38
+ end
39
+
40
+ def test_invoke
41
+ runlist = []
42
+ t1 = task(:t1 => [:t2, :t3]) { |t| runlist << t.name; 3321 }
43
+ task(:t2) { |t| runlist << t.name }
44
+ task(:t3) { |t| runlist << t.name }
45
+ assert_equal ["t2", "t3"], t1.prerequisites
46
+ t1.invoke
47
+ assert_equal ["t2", "t3", "t1"], runlist
48
+ end
49
+
50
+ def test_invoke_with_circular_dependencies
51
+ runlist = []
52
+ t1 = task(:t1 => [:t2]) { |t| runlist << t.name; 3321 }
53
+ t2 = task(:t2 => [:t1]) { |t| runlist << t.name }
54
+ assert_equal ["t2"], t1.prerequisites
55
+ assert_equal ["t1"], t2.prerequisites
56
+ ex = assert_raises RuntimeError do
57
+ t1.invoke
58
+ end
59
+ assert_match(/circular dependency/i, ex.message)
60
+ assert_match(/t1 => t2 => t1/, ex.message)
61
+ end
62
+
63
+ def test_dry_run_prevents_actions
64
+ Rake.application.options.dryrun = true
65
+ runlist = []
66
+ t1 = task(:t1) { |t| runlist << t.name; 3321 }
67
+ _, err = capture_io { t1.invoke }
68
+ assert_match(/execute .*t1/i, err)
69
+ assert_match(/dry run/i, err)
70
+ refute_match(/invoke/i, err)
71
+ assert_equal [], runlist
72
+ ensure
73
+ Rake.application.options.dryrun = false
74
+ end
75
+
76
+ def test_tasks_can_be_traced
77
+ Rake.application.options.trace = true
78
+ t1 = task(:t1)
79
+ _, err = capture_io {
80
+ t1.invoke
81
+ }
82
+ assert_match(/invoke t1/i, err)
83
+ assert_match(/execute t1/i, err)
84
+ ensure
85
+ Rake.application.options.trace = false
86
+ end
87
+
88
+ def test_no_double_invoke
89
+ runlist = []
90
+ t1 = task(:t1 => [:t2, :t3]) { |t| runlist << t.name; 3321 }
91
+ task(:t2 => [:t3]) { |t| runlist << t.name }
92
+ task(:t3) { |t| runlist << t.name }
93
+ t1.invoke
94
+ assert_equal ["t3", "t2", "t1"], runlist
95
+ end
96
+
97
+ def test_can_double_invoke_with_reenable
98
+ runlist = []
99
+ t1 = task(:t1) { |t| runlist << t.name }
100
+ t1.invoke
101
+ t1.reenable
102
+ t1.invoke
103
+ assert_equal ["t1", "t1"], runlist
104
+ end
105
+
106
+ def test_clear
107
+ desc "a task"
108
+ t = task("t" => "a") { }
109
+ t.clear
110
+ assert t.prerequisites.empty?, "prerequisites should be empty"
111
+ assert t.actions.empty?, "actions should be empty"
112
+ assert_nil t.comment, "comments should be empty"
113
+ end
114
+
115
+ def test_clear_prerequisites
116
+ t = task("t" => ["a", "b"])
117
+ assert_equal ['a', 'b'], t.prerequisites
118
+ t.clear_prerequisites
119
+ assert_equal [], t.prerequisites
120
+ end
121
+
122
+ def test_clear_actions
123
+ t = task("t") { }
124
+ t.clear_actions
125
+ assert t.actions.empty?, "actions should be empty"
126
+ end
127
+
128
+ def test_clear_comments
129
+ desc "the original foo"
130
+ task :foo => [:x] do
131
+ # Dummy action
132
+ end
133
+
134
+ task(:foo).clear_comments
135
+
136
+ desc "a slightly different foo"
137
+ task :foo
138
+
139
+ assert_equal "a slightly different foo", task(:foo).comment
140
+ assert_equal ["x"], task(:foo).prerequisites
141
+ assert_equal 1, task(:foo).actions.size
142
+ end
143
+
144
+ def test_find
145
+ task :tfind
146
+ assert_equal "tfind", Task[:tfind].name
147
+ ex = assert_raises(RuntimeError) { Task[:leaves] }
148
+ assert_equal "Don't know how to build task 'leaves'", ex.message
149
+ end
150
+
151
+ def test_defined
152
+ assert ! Task.task_defined?(:a)
153
+ task :a
154
+ assert Task.task_defined?(:a)
155
+ end
156
+
157
+ def test_multi_invocations
158
+ runs = []
159
+ p = proc do |t| runs << t.name end
160
+ task({ :t1 => [:t2, :t3] }, &p)
161
+ task({ :t2 => [:t3] }, &p)
162
+ task(:t3, &p)
163
+ Task[:t1].invoke
164
+ assert_equal ["t1", "t2", "t3"], runs.sort
165
+ end
166
+
167
+ def test_task_list
168
+ task :t2
169
+ task :t1 => [:t2]
170
+ assert_equal ["t1", "t2"], Task.tasks.map { |t| t.name }
171
+ end
172
+
173
+ def test_task_gives_name_on_to_s
174
+ task :abc
175
+ assert_equal "abc", Task[:abc].to_s
176
+ end
177
+
178
+ def test_symbols_can_be_prerequisites
179
+ task :a => :b
180
+ assert_equal ["b"], Task[:a].prerequisites
181
+ end
182
+
183
+ def test_strings_can_be_prerequisites
184
+ task :a => "b"
185
+ assert_equal ["b"], Task[:a].prerequisites
186
+ end
187
+
188
+ def test_arrays_can_be_prerequisites
189
+ task :a => ["b", "c"]
190
+ assert_equal ["b", "c"], Task[:a].prerequisites
191
+ end
192
+
193
+ def test_filelists_can_be_prerequisites
194
+ task :a => FileList.new.include("b", "c")
195
+ assert_equal ["b", "c"], Task[:a].prerequisites
196
+ end
197
+
198
+ def test_prerequiste_tasks_returns_tasks_not_strings
199
+ a = task :a => ["b", "c"]
200
+ b = task :b
201
+ c = task :c
202
+ assert_equal [b, c], a.prerequisite_tasks
203
+ end
204
+
205
+ def test_prerequiste_tasks_fails_if_prerequisites_are_undefined
206
+ a = task :a => ["b", "c"]
207
+ task :b
208
+ assert_raises(RuntimeError) do
209
+ a.prerequisite_tasks
210
+ end
211
+ end
212
+
213
+ def test_prerequiste_tasks_honors_namespaces
214
+ a = b = nil
215
+ namespace "X" do
216
+ a = task :a => ["b", "c"]
217
+ b = task :b
218
+ end
219
+ c = task :c
220
+
221
+ assert_equal [b, c], a.prerequisite_tasks
222
+ end
223
+
224
+ def test_all_prerequisite_tasks_includes_all_prerequisites
225
+ a = task :a => "b"
226
+ b = task :b => ["c", "d"]
227
+ c = task :c => "e"
228
+ d = task :d
229
+ e = task :e
230
+
231
+ assert_equal [b, c, d, e], a.all_prerequisite_tasks.sort_by { |t| t.name }
232
+ end
233
+
234
+ def test_all_prerequisite_tasks_does_not_include_duplicates
235
+ a = task :a => ["b", "c"]
236
+ b = task :b => "c"
237
+ c = task :c
238
+
239
+ assert_equal [b, c], a.all_prerequisite_tasks.sort_by { |t| t.name }
240
+ end
241
+
242
+ def test_all_prerequisite_tasks_includes_self_on_cyclic_dependencies
243
+ a = task :a => "b"
244
+ b = task :b => "a"
245
+
246
+ assert_equal [a, b], a.all_prerequisite_tasks.sort_by { |t| t.name }
247
+ end
248
+
249
+ def test_timestamp_returns_now_if_all_prereqs_have_no_times
250
+ a = task :a => ["b", "c"]
251
+ task :b
252
+ task :c
253
+
254
+ assert_in_delta Time.now, a.timestamp, 0.1, 'computer too slow?'
255
+ end
256
+
257
+ def test_timestamp_returns_latest_prereq_timestamp
258
+ a = task :a => ["b", "c"]
259
+ b = task :b
260
+ c = task :c
261
+
262
+ now = Time.now
263
+ def b.timestamp() Time.now + 10 end
264
+ def c.timestamp() Time.now + 5 end
265
+
266
+ assert_in_delta now, a.timestamp, 0.1, 'computer too slow?'
267
+ end
268
+
269
+ def test_always_multitask
270
+ mx = Mutex.new
271
+ result = []
272
+
273
+ t_a = task(:a) do |t|
274
+ sleep 0.2
275
+ mx.synchronize { result << t.name }
276
+ end
277
+
278
+ t_b = task(:b) do |t|
279
+ mx.synchronize { result << t.name }
280
+ end
281
+
282
+ t_c = task(:c => [:a, :b]) do |t|
283
+ mx.synchronize { result << t.name }
284
+ end
285
+
286
+ t_c.invoke
287
+
288
+ # task should always run in order
289
+ assert_equal ['a', 'b', 'c'], result
290
+
291
+ [t_a, t_b, t_c].each { |t| t.reenable }
292
+ result.clear
293
+
294
+ Rake.application.options.always_multitask = true
295
+ t_c.invoke
296
+
297
+ # with multitask, task 'b' should grab the mutex first
298
+ assert_equal ['b', 'a', 'c'], result
299
+ end
300
+
301
+ def test_investigation_output
302
+ t1 = task(:t1 => [:t2, :t3]) { |t| runlist << t.name; 3321 }
303
+ task(:t2)
304
+ task(:t3)
305
+ out = t1.investigation
306
+ assert_match(/class:\s*Rake::Task/, out)
307
+ assert_match(/needed:\s*true/, out)
308
+ assert_match(/pre-requisites:\s*--t[23]/, out)
309
+ end
310
+
311
+ # NOTE: Rail-ties uses comment=.
312
+ def test_comment_setting
313
+ t = task(:t, :name, :rev)
314
+ t.comment = "A Comment"
315
+ assert_equal "A Comment", t.comment
316
+ end
317
+
318
+ def test_comments_with_sentences
319
+ desc "Comment 1. Comment 2."
320
+ t = task(:t, :name, :rev)
321
+ assert_equal "Comment 1", t.comment
322
+ end
323
+
324
+ def test_comments_with_tabbed_sentences
325
+ desc "Comment 1.\tComment 2."
326
+ t = task(:t, :name, :rev)
327
+ assert_equal "Comment 1", t.comment
328
+ end
329
+
330
+ def test_comments_with_decimal_points
331
+ desc "Revision 1.2.3."
332
+ t = task(:t, :name, :rev)
333
+ assert_equal "Revision 1.2.3", t.comment
334
+ end
335
+
336
+ def test_comments_do_not_set
337
+ t = task(:t, :name, :rev)
338
+ assert_equal nil, t.comment
339
+ end
340
+
341
+ def test_comments_is_nil
342
+ t = task(:t, :name, :rev)
343
+ t.comment = nil
344
+ assert_equal nil, t.comment
345
+ end
346
+
347
+ def test_extended_comments
348
+ desc %{
349
+ This is a comment.
350
+
351
+ And this is the extended comment.
352
+ name -- Name of task to execute.
353
+ rev -- Software revision to use.
354
+ }
355
+ t = task(:t, :name, :rev)
356
+ assert_equal "[name,rev]", t.arg_description
357
+ assert_equal "This is a comment", t.comment
358
+ assert_match(/^\s*name -- Name/, t.full_comment)
359
+ assert_match(/^\s*rev -- Software/, t.full_comment)
360
+ assert_match(/\A\s*This is a comment\.$/, t.full_comment)
361
+ end
362
+
363
+ def test_multiple_comments
364
+ desc "line one"
365
+ t = task(:t)
366
+ desc "line two"
367
+ task(:t)
368
+ assert_equal "line one / line two", t.comment
369
+ end
370
+
371
+ def test_duplicate_comments
372
+ desc "line one"
373
+ t = task(:t)
374
+ desc "line one"
375
+ task(:t)
376
+ assert_equal "line one", t.comment
377
+ end
378
+
379
+ def test_interspersed_duplicate_comments
380
+ desc "line one"
381
+ t = task(:t)
382
+ desc "line two"
383
+ task(:t)
384
+ desc "line one"
385
+ task(:t)
386
+ assert_equal "line one / line two", t.comment
387
+ end
388
+
389
+ def test_source_is_first_prerequisite
390
+ t = task :t => ["preqA", "preqB"]
391
+ assert_equal "preqA", t.source
392
+ end
393
+ end
@@ -0,0 +1,119 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+
3
+ class TestRakeTaskArgumentParsing < Rake::TestCase
4
+ def setup
5
+ super
6
+
7
+ @app = Rake::Application.new
8
+ end
9
+
10
+ def test_name_only
11
+ name, args = @app.parse_task_string("name")
12
+ assert_equal "name", name
13
+ assert_equal [], args
14
+ end
15
+
16
+ def test_empty_args
17
+ name, args = @app.parse_task_string("name[]")
18
+ assert_equal "name", name
19
+ assert_equal [], args
20
+ end
21
+
22
+ def test_one_argument
23
+ name, args = @app.parse_task_string("name[one]")
24
+ assert_equal "name", name
25
+ assert_equal ["one"], args
26
+ end
27
+
28
+ def test_two_arguments
29
+ name, args = @app.parse_task_string("name[one,two]")
30
+ assert_equal "name", name
31
+ assert_equal ["one", "two"], args
32
+ end
33
+
34
+ def test_can_handle_spaces_between_args
35
+ name, args = @app.parse_task_string("name[one, two,\tthree , \tfour]")
36
+ assert_equal "name", name
37
+ assert_equal ["one", "two", "three", "four"], args
38
+ end
39
+
40
+ def test_keeps_embedded_spaces
41
+ name, args = @app.parse_task_string("name[a one ana, two]")
42
+ assert_equal "name", name
43
+ assert_equal ["a one ana", "two"], args
44
+ end
45
+
46
+ def test_can_handle_commas_in_args
47
+ name, args = @app.parse_task_string("name[one, two, three_a\\, three_b, four]")
48
+ assert_equal "name", name
49
+ assert_equal ["one", "two", "three_a, three_b", "four"], args
50
+ end
51
+
52
+ def test_treat_blank_arg_as_empty_string
53
+ name, args = @app.parse_task_string("name[one,]")
54
+ assert_equal "name", name
55
+ assert_equal ["one", ""], args
56
+
57
+ name, args = @app.parse_task_string("name[one,,two]")
58
+ assert_equal "name", name
59
+ assert_equal ["one", "", "two"], args
60
+ end
61
+
62
+ def test_terminal_width_using_env
63
+ app = Rake::Application.new
64
+ app.terminal_columns = 1234
65
+
66
+ assert_equal 1234, app.terminal_width
67
+ end
68
+
69
+ def test_terminal_width_using_stty
70
+ def @app.unix?() true end
71
+ def @app.dynamic_width_stty() 1235 end
72
+ def @app.dynamic_width_tput() 0 end
73
+
74
+ assert_equal 1235, @app.terminal_width
75
+ end
76
+
77
+ def test_terminal_width_using_tput
78
+ def @app.unix?() true end
79
+ def @app.dynamic_width_stty() 0 end
80
+ def @app.dynamic_width_tput() 1236 end
81
+
82
+ assert_equal 1236, @app.terminal_width
83
+ end
84
+
85
+ def test_terminal_width_using_hardcoded_80
86
+ def @app.unix?() false end
87
+
88
+ assert_equal 80, @app.terminal_width
89
+ end
90
+
91
+ def test_terminal_width_with_failure
92
+ def @app.unix?() raise end
93
+
94
+ assert_equal 80, @app.terminal_width
95
+ end
96
+
97
+ def test_no_rakeopt
98
+ ARGV << '--trace'
99
+ app = Rake::Application.new
100
+ app.init
101
+ assert !app.options.silent
102
+ end
103
+
104
+ def test_rakeopt_with_blank_options
105
+ ARGV << '--trace'
106
+ app = Rake::Application.new
107
+ app.init
108
+ assert !app.options.silent
109
+ end
110
+
111
+ def test_rakeopt_with_silent_options
112
+ ENV['RAKEOPT'] = '-s'
113
+ app = Rake::Application.new
114
+
115
+ app.init
116
+
117
+ assert app.options.silent
118
+ end
119
+ end