passenger 5.0.0.beta3 → 5.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of passenger might be problematic. Click here for more details.

Files changed (218) hide show
  1. checksums.yaml +8 -8
  2. checksums.yaml.gz.asc +7 -7
  3. data.tar.gz.asc +7 -7
  4. data/.editorconfig +11 -5
  5. data/CHANGELOG +38 -0
  6. data/CONTRIBUTING.md +1 -4
  7. data/Gemfile +0 -1
  8. data/Gemfile.lock +0 -2
  9. data/Rakefile +33 -33
  10. data/bin/passenger +1 -1
  11. data/bin/passenger-config +1 -1
  12. data/bin/passenger-install-apache2-module +800 -800
  13. data/bin/passenger-install-nginx-module +592 -592
  14. data/bin/passenger-memory-stats +127 -127
  15. data/bin/passenger-status +216 -216
  16. data/build/agents.rb +127 -127
  17. data/build/apache2.rb +87 -87
  18. data/build/basics.rb +60 -60
  19. data/build/common_library.rb +165 -165
  20. data/build/cplusplus_support.rb +51 -51
  21. data/build/cxx_tests.rb +268 -268
  22. data/build/debian.rb +143 -143
  23. data/build/documentation.rb +58 -58
  24. data/build/integration_tests.rb +81 -81
  25. data/build/misc.rb +132 -132
  26. data/build/nginx.rb +20 -20
  27. data/build/node_tests.rb +7 -7
  28. data/build/oxt_tests.rb +14 -14
  29. data/build/packaging.rb +570 -570
  30. data/build/preprocessor.rb +260 -260
  31. data/build/rake_extensions.rb +71 -71
  32. data/build/ruby_extension.rb +29 -29
  33. data/build/ruby_tests.rb +6 -6
  34. data/build/test_basics.rb +37 -37
  35. data/debian.template/control.template +3 -5
  36. data/dev/copy_boost_headers +134 -134
  37. data/dev/install_scripts_bootstrap_code.rb +25 -25
  38. data/dev/list_tests +20 -20
  39. data/dev/ruby_server.rb +223 -223
  40. data/dev/runner +18 -18
  41. data/doc/ServerOptimizationGuide.txt.md +55 -2
  42. data/doc/Users guide Nginx.txt +0 -26
  43. data/doc/Users guide Standalone.txt +5 -1
  44. data/doc/users_guide_snippets/tips.txt +9 -0
  45. data/ext/common/ApplicationPool2/Group.h +23 -11
  46. data/ext/common/ApplicationPool2/Implementation.cpp +32 -7
  47. data/ext/common/ApplicationPool2/Pool.h +22 -17
  48. data/ext/common/ApplicationPool2/SmartSpawner.h +4 -1
  49. data/ext/common/ApplicationPool2/Spawner.h +1 -1
  50. data/ext/common/Constants.h +1 -1
  51. data/ext/common/agents/Base.cpp +35 -20
  52. data/ext/common/agents/HelperAgent/Main.cpp +8 -1
  53. data/ext/common/agents/HelperAgent/OptionParser.h +18 -4
  54. data/ext/common/agents/HelperAgent/RequestHandler.h +2 -83
  55. data/ext/common/agents/HelperAgent/RequestHandler/ForwardResponse.cpp +54 -1
  56. data/ext/common/agents/HelperAgent/RequestHandler/InitRequest.cpp +7 -4
  57. data/ext/common/agents/Main.cpp +1 -1
  58. data/ext/common/agents/Watchdog/Main.cpp +54 -19
  59. data/ext/nginx/Configuration.c +7 -0
  60. data/ext/nginx/ContentHandler.c +9 -1
  61. data/helper-scripts/backtrace-sanitizer.rb +106 -87
  62. data/helper-scripts/crash-watch.rb +32 -0
  63. data/helper-scripts/download_binaries/extconf.rb +38 -38
  64. data/helper-scripts/meteor-loader.rb +107 -107
  65. data/helper-scripts/prespawn +101 -101
  66. data/helper-scripts/rack-loader.rb +96 -96
  67. data/helper-scripts/rack-preloader.rb +137 -137
  68. data/lib/phusion_passenger.rb +292 -292
  69. data/lib/phusion_passenger/abstract_installer.rb +438 -438
  70. data/lib/phusion_passenger/active_support3_extensions/init.rb +168 -170
  71. data/lib/phusion_passenger/admin_tools.rb +20 -20
  72. data/lib/phusion_passenger/admin_tools/instance.rb +178 -178
  73. data/lib/phusion_passenger/admin_tools/instance_registry.rb +61 -61
  74. data/lib/phusion_passenger/admin_tools/memory_stats.rb +267 -267
  75. data/lib/phusion_passenger/apache2/config_options.rb +182 -182
  76. data/lib/phusion_passenger/common_library.rb +479 -485
  77. data/lib/phusion_passenger/config/about_command.rb +161 -161
  78. data/lib/phusion_passenger/config/admin_command_command.rb +129 -129
  79. data/lib/phusion_passenger/config/agent_compiler.rb +121 -121
  80. data/lib/phusion_passenger/config/build_native_support_command.rb +43 -43
  81. data/lib/phusion_passenger/config/command.rb +25 -25
  82. data/lib/phusion_passenger/config/compile_agent_command.rb +62 -62
  83. data/lib/phusion_passenger/config/compile_nginx_engine_command.rb +88 -73
  84. data/lib/phusion_passenger/config/detach_process_command.rb +72 -72
  85. data/lib/phusion_passenger/config/download_agent_command.rb +246 -227
  86. data/lib/phusion_passenger/config/download_nginx_engine_command.rb +245 -224
  87. data/lib/phusion_passenger/config/install_agent_command.rb +144 -132
  88. data/lib/phusion_passenger/config/install_standalone_runtime_command.rb +205 -185
  89. data/lib/phusion_passenger/config/installation_utils.rb +204 -204
  90. data/lib/phusion_passenger/config/list_instances_command.rb +64 -64
  91. data/lib/phusion_passenger/config/main.rb +152 -152
  92. data/lib/phusion_passenger/config/nginx_engine_compiler.rb +319 -300
  93. data/lib/phusion_passenger/config/reopen_logs_command.rb +67 -67
  94. data/lib/phusion_passenger/config/restart_app_command.rb +155 -155
  95. data/lib/phusion_passenger/config/system_metrics_command.rb +13 -13
  96. data/lib/phusion_passenger/config/utils.rb +95 -95
  97. data/lib/phusion_passenger/config/validate_install_command.rb +198 -198
  98. data/lib/phusion_passenger/console_text_template.rb +25 -25
  99. data/lib/phusion_passenger/constants.rb +90 -90
  100. data/lib/phusion_passenger/debug_logging.rb +106 -106
  101. data/lib/phusion_passenger/loader_shared_helpers.rb +447 -432
  102. data/lib/phusion_passenger/message_channel.rb +312 -312
  103. data/lib/phusion_passenger/message_client.rb +176 -176
  104. data/lib/phusion_passenger/native_support.rb +369 -369
  105. data/lib/phusion_passenger/nginx/config_options.rb +297 -297
  106. data/lib/phusion_passenger/packaging.rb +131 -131
  107. data/lib/phusion_passenger/platform_info.rb +360 -360
  108. data/lib/phusion_passenger/platform_info/apache.rb +767 -767
  109. data/lib/phusion_passenger/platform_info/apache_detector.rb +199 -199
  110. data/lib/phusion_passenger/platform_info/binary_compatibility.rb +107 -107
  111. data/lib/phusion_passenger/platform_info/compiler.rb +570 -570
  112. data/lib/phusion_passenger/platform_info/curl.rb +32 -32
  113. data/lib/phusion_passenger/platform_info/cxx_portability.rb +188 -188
  114. data/lib/phusion_passenger/platform_info/depcheck.rb +372 -372
  115. data/lib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +109 -109
  116. data/lib/phusion_passenger/platform_info/depcheck_specs/compiler_toolchain.rb +4 -4
  117. data/lib/phusion_passenger/platform_info/depcheck_specs/gems.rb +10 -34
  118. data/lib/phusion_passenger/platform_info/depcheck_specs/libs.rb +101 -101
  119. data/lib/phusion_passenger/platform_info/depcheck_specs/ruby.rb +5 -5
  120. data/lib/phusion_passenger/platform_info/depcheck_specs/utilities.rb +13 -13
  121. data/lib/phusion_passenger/platform_info/linux.rb +55 -55
  122. data/lib/phusion_passenger/platform_info/operating_system.rb +149 -149
  123. data/lib/phusion_passenger/platform_info/ruby.rb +468 -448
  124. data/lib/phusion_passenger/platform_info/zlib.rb +9 -9
  125. data/lib/phusion_passenger/plugin.rb +66 -66
  126. data/lib/phusion_passenger/preloader_shared_helpers.rb +126 -126
  127. data/lib/phusion_passenger/public_api.rb +191 -191
  128. data/lib/phusion_passenger/rack/out_of_band_gc.rb +93 -94
  129. data/lib/phusion_passenger/rack/thread_handler_extension.rb +231 -227
  130. data/lib/phusion_passenger/request_handler.rb +567 -577
  131. data/lib/phusion_passenger/request_handler/thread_handler.rb +379 -381
  132. data/lib/phusion_passenger/ruby_core_enhancements.rb +86 -86
  133. data/lib/phusion_passenger/ruby_core_io_enhancements.rb +74 -74
  134. data/lib/phusion_passenger/simple_benchmarking.rb +25 -25
  135. data/lib/phusion_passenger/standalone/app_finder.rb +153 -150
  136. data/lib/phusion_passenger/standalone/command.rb +44 -40
  137. data/lib/phusion_passenger/standalone/config_utils.rb +53 -53
  138. data/lib/phusion_passenger/standalone/control_utils.rb +38 -59
  139. data/lib/phusion_passenger/standalone/main.rb +73 -73
  140. data/lib/phusion_passenger/standalone/start_command.rb +697 -685
  141. data/lib/phusion_passenger/standalone/start_command/builtin_engine.rb +193 -155
  142. data/lib/phusion_passenger/standalone/start_command/nginx_engine.rb +162 -133
  143. data/lib/phusion_passenger/standalone/status_command.rb +64 -64
  144. data/lib/phusion_passenger/standalone/stop_command.rb +72 -72
  145. data/lib/phusion_passenger/standalone/version_command.rb +9 -9
  146. data/lib/phusion_passenger/union_station/connection.rb +32 -32
  147. data/lib/phusion_passenger/union_station/core.rb +251 -251
  148. data/lib/phusion_passenger/union_station/transaction.rb +126 -126
  149. data/lib/phusion_passenger/utils.rb +199 -167
  150. data/lib/phusion_passenger/utils/ansi_colors.rb +128 -128
  151. data/lib/phusion_passenger/utils/download.rb +196 -196
  152. data/lib/phusion_passenger/utils/file_system_watcher.rb +158 -158
  153. data/lib/phusion_passenger/utils/hosts_file_parser.rb +101 -101
  154. data/lib/phusion_passenger/utils/lock.rb +31 -31
  155. data/lib/phusion_passenger/utils/native_support_utils.rb +31 -31
  156. data/lib/phusion_passenger/utils/progress_bar.rb +26 -26
  157. data/lib/phusion_passenger/utils/shellwords.rb +20 -20
  158. data/lib/phusion_passenger/utils/terminal_choice_menu.rb +206 -206
  159. data/lib/phusion_passenger/utils/unseekable_socket.rb +272 -272
  160. data/lib/phusion_passenger/vendor/crash_watch/app.rb +129 -0
  161. data/lib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +341 -0
  162. data/lib/phusion_passenger/vendor/crash_watch/version.rb +24 -0
  163. data/lib/phusion_passenger/vendor/daemon_controller.rb +877 -0
  164. data/lib/phusion_passenger/vendor/daemon_controller/lock_file.rb +127 -0
  165. data/lib/phusion_passenger/vendor/daemon_controller/spawn.rb +26 -0
  166. data/lib/phusion_passenger/vendor/daemon_controller/version.rb +29 -0
  167. data/packaging/rpm/passenger_spec/passenger.spec.template +0 -1
  168. data/passenger.gemspec +0 -1
  169. data/resources/templates/config/nginx_engine_compiler/possible_solutions_for_download_and_extraction_problems.txt.erb +27 -0
  170. data/resources/templates/standalone/config.erb +19 -15
  171. data/test/integration_tests/apache2_tests.rb +566 -566
  172. data/test/integration_tests/downloaded_binaries_tests.rb +126 -125
  173. data/test/integration_tests/native_packaging_spec.rb +296 -296
  174. data/test/integration_tests/nginx_tests.rb +393 -393
  175. data/test/integration_tests/shared/example_webapp_tests.rb +282 -280
  176. data/test/integration_tests/source_packaging_test.rb +138 -138
  177. data/test/integration_tests/spec_helper.rb +5 -5
  178. data/test/integration_tests/standalone_tests.rb +367 -367
  179. data/test/ruby/debug_logging_spec.rb +133 -133
  180. data/test/ruby/message_channel_spec.rb +186 -186
  181. data/test/ruby/rack/loader_spec.rb +28 -28
  182. data/test/ruby/rack/preloader_spec.rb +34 -34
  183. data/test/ruby/rails3.0/loader_spec.rb +12 -12
  184. data/test/ruby/rails3.0/preloader_spec.rb +18 -18
  185. data/test/ruby/rails3.1/loader_spec.rb +12 -12
  186. data/test/ruby/rails3.1/preloader_spec.rb +18 -18
  187. data/test/ruby/rails3.2/loader_spec.rb +12 -12
  188. data/test/ruby/rails3.2/preloader_spec.rb +18 -18
  189. data/test/ruby/rails4.0/loader_spec.rb +12 -12
  190. data/test/ruby/rails4.0/preloader_spec.rb +18 -18
  191. data/test/ruby/rails4.1/loader_spec.rb +12 -12
  192. data/test/ruby/rails4.1/preloader_spec.rb +18 -18
  193. data/test/ruby/request_handler_spec.rb +730 -730
  194. data/test/ruby/shared/loader_sharedspec.rb +224 -224
  195. data/test/ruby/shared/rails/union_station_extensions_sharedspec.rb +327 -327
  196. data/test/ruby/shared/ruby_loader_sharedspec.rb +47 -47
  197. data/test/ruby/spec_helper.rb +65 -65
  198. data/test/ruby/standalone/runtime_installer_spec.rb +384 -384
  199. data/test/ruby/union_station_spec.rb +276 -276
  200. data/test/ruby/utils/file_system_watcher_spec.rb +220 -220
  201. data/test/ruby/utils/hosts_file_parser.rb +248 -248
  202. data/test/ruby/utils/tee_input_spec.rb +215 -215
  203. data/test/ruby/utils/unseekable_socket_spec.rb +57 -57
  204. data/test/ruby/utils_spec.rb +21 -21
  205. data/test/stub/rack/config.ru +87 -87
  206. data/test/stub/rack/library.rb +8 -8
  207. data/test/stub/rack/start.rb +30 -30
  208. data/test/support/apache2_controller.rb +191 -191
  209. data/test/support/nginx_controller.rb +90 -99
  210. data/test/support/placebo-preloader.rb +57 -57
  211. data/test/support/test_helper.rb +435 -435
  212. metadata +11 -21
  213. metadata.gz.asc +7 -7
  214. data/lib/phusion_passenger/standalone/command2.rb +0 -292
  215. data/lib/phusion_passenger/standalone/start2_command.rb +0 -799
  216. data/resources/templates/standalone/download_tool_missing.txt.erb +0 -18
  217. data/resources/templates/standalone/possible_solutions_for_download_and_extraction_problems.txt.erb +0 -17
  218. data/resources/templates/standalone/run_installer_as_root.txt.erb +0 -8
@@ -24,73 +24,73 @@
24
24
  # Rake functions for compiling/linking C++ stuff.
25
25
 
26
26
  def run_compiler(*command)
27
- PhusionPassenger.require_passenger_lib 'utils/ansi_colors' if !defined?(PhusionPassenger::Utils::AnsiColors)
28
- show_command = command.join(' ')
29
- puts show_command
30
- if !system(*command)
31
- if $? && $?.exitstatus == 4
32
- # This probably means the compiler ran out of memory.
33
- msg = "<b>" +
34
- "-----------------------------------------------\n" +
35
- "Your compiler failed with the exit status 4. This " +
36
- "probably means that it ran out of memory. To solve " +
37
- "this problem, try increasing your swap space: " +
38
- "https://www.digitalocean.com/community/articles/how-to-add-swap-on-ubuntu-12-04" +
39
- "</b>"
40
- fail(PhusionPassenger::Utils::AnsiColors.ansi_colorize(msg))
41
- elsif $? && $?.termsig == 9
42
- msg = "<b>" +
43
- "-----------------------------------------------\n" +
44
- "Your compiler was killed by the operating system. This " +
45
- "probably means that it ran out of memory. To solve " +
46
- "this problem, try increasing your swap space: " +
47
- "https://www.digitalocean.com/community/articles/how-to-add-swap-on-ubuntu-12-04" +
48
- "</b>"
49
- fail(PhusionPassenger::Utils::AnsiColors.ansi_colorize(msg))
50
- else
51
- fail "Command failed with status (#{$? ? $?.exitstatus : 1}): [#{show_command}]"
52
- end
53
- end
27
+ PhusionPassenger.require_passenger_lib 'utils/ansi_colors' if !defined?(PhusionPassenger::Utils::AnsiColors)
28
+ show_command = command.join(' ')
29
+ puts show_command
30
+ if !system(*command)
31
+ if $? && $?.exitstatus == 4
32
+ # This probably means the compiler ran out of memory.
33
+ msg = "<b>" +
34
+ "-----------------------------------------------\n" +
35
+ "Your compiler failed with the exit status 4. This " +
36
+ "probably means that it ran out of memory. To solve " +
37
+ "this problem, try increasing your swap space: " +
38
+ "https://www.digitalocean.com/community/articles/how-to-add-swap-on-ubuntu-12-04" +
39
+ "</b>"
40
+ fail(PhusionPassenger::Utils::AnsiColors.ansi_colorize(msg))
41
+ elsif $? && $?.termsig == 9
42
+ msg = "<b>" +
43
+ "-----------------------------------------------\n" +
44
+ "Your compiler was killed by the operating system. This " +
45
+ "probably means that it ran out of memory. To solve " +
46
+ "this problem, try increasing your swap space: " +
47
+ "https://www.digitalocean.com/community/articles/how-to-add-swap-on-ubuntu-12-04" +
48
+ "</b>"
49
+ fail(PhusionPassenger::Utils::AnsiColors.ansi_colorize(msg))
50
+ else
51
+ fail "Command failed with status (#{$? ? $?.exitstatus : 1}): [#{show_command}]"
52
+ end
53
+ end
54
54
  end
55
55
 
56
56
  def compile_c(source, flags = "#{EXTRA_PRE_CFLAGS} #{EXTRA_CFLAGS}")
57
- run_compiler "#{CC} #{flags} -c #{source}"
57
+ run_compiler "#{CC} #{flags} -c #{source}"
58
58
  end
59
59
 
60
60
  def compile_cxx(source, flags = "#{EXTRA_PRE_CXXFLAGS} #{EXTRA_CXXFLAGS}")
61
- run_compiler "#{CXX} #{flags} -c #{source}"
61
+ run_compiler "#{CXX} #{flags} -c #{source}"
62
62
  end
63
63
 
64
64
  def create_static_library(target, sources)
65
- # On OS X, 'ar cru' will sometimes fail with an obscure error:
66
- #
67
- # ar: foo.a is a fat file (use libtool(1) or lipo(1) and ar(1) on it)
68
- # ar: foo.a: Inappropriate file type or format
69
- #
70
- # So here we delete the ar file before creating it, which bypasses this problem.
71
- sh "rm -rf #{target}"
72
- sh "ar cru #{target} #{sources}"
73
- sh "ranlib #{target}"
65
+ # On OS X, 'ar cru' will sometimes fail with an obscure error:
66
+ #
67
+ # ar: foo.a is a fat file (use libtool(1) or lipo(1) and ar(1) on it)
68
+ # ar: foo.a: Inappropriate file type or format
69
+ #
70
+ # So here we delete the ar file before creating it, which bypasses this problem.
71
+ sh "rm -rf #{target}"
72
+ sh "ar cru #{target} #{sources}"
73
+ sh "ranlib #{target}"
74
74
  end
75
75
 
76
76
  def create_executable(target, sources, linkflags = "#{EXTRA_PRE_CXXFLAGS} #{EXTRA_PRE_C_LDFLAGS} #{EXTRA_CXXFLAGS} #{PlatformInfo.portability_cxx_ldflags} #{EXTRA_CXX_LDFLAGS}")
77
- run_compiler "#{CXX} #{sources} -o #{target} #{linkflags}"
77
+ run_compiler "#{CXX} #{sources} -o #{target} #{linkflags}"
78
78
  end
79
79
 
80
80
  def create_c_executable(target, sources, linkflags = "#{EXTRA_PRE_CFLAGS} #{EXTRA_PRE_CXX_LDFLAGS}#{EXTRA_CFLAGS} #{PlatformInfo.portability_c_ldflags} #{EXTRA_C_LDFLAGS}")
81
- run_compiler "#{CC} #{sources} -o #{target} #{linkflags}"
81
+ run_compiler "#{CC} #{sources} -o #{target} #{linkflags}"
82
82
  end
83
83
 
84
84
  def create_shared_library(target, sources, flags = "#{EXTRA_PRE_CXXFLAGS} #{EXTRA_PRE_CXX_LDFLAGS} #{EXTRA_CXXFLAGS} #{PlatformInfo.portability_cxx_ldflags} #{EXTRA_CXX_LDFLAGS}")
85
- if PlatformInfo.os_name == "macosx"
86
- shlib_flag = "-flat_namespace -bundle -undefined dynamic_lookup"
87
- else
88
- shlib_flag = "-shared"
89
- end
90
- if PhusionPassenger::PlatformInfo.cxx_is_sun_studio?
91
- fPIC = "-KPIC"
92
- else
93
- fPIC = "-fPIC"
94
- end
95
- run_compiler "#{CXX} #{shlib_flag} #{sources} #{fPIC} -o #{target} #{flags}"
85
+ if PlatformInfo.os_name == "macosx"
86
+ shlib_flag = "-flat_namespace -bundle -undefined dynamic_lookup"
87
+ else
88
+ shlib_flag = "-shared"
89
+ end
90
+ if PhusionPassenger::PlatformInfo.cxx_is_sun_studio?
91
+ fPIC = "-KPIC"
92
+ else
93
+ fPIC = "-fPIC"
94
+ end
95
+ run_compiler "#{CXX} #{shlib_flag} #{sources} #{fPIC} -o #{target} #{flags}"
96
96
  end
data/build/cxx_tests.rb CHANGED
@@ -24,298 +24,298 @@
24
24
  ### C++ components tests ###
25
25
 
26
26
  TEST_CXX_CFLAGS = "-Iext -Iext/common " <<
27
- "#{EXTRA_PRE_CXXFLAGS} " <<
28
- "#{LIBEV_CFLAGS} #{LIBEIO_CFLAGS} #{PlatformInfo.curl_flags} -Itest/cxx -Itest/support " <<
29
- "#{TEST_COMMON_CFLAGS}"
27
+ "#{EXTRA_PRE_CXXFLAGS} " <<
28
+ "#{LIBEV_CFLAGS} #{LIBEIO_CFLAGS} #{PlatformInfo.curl_flags} -Itest/cxx -Itest/support " <<
29
+ "#{TEST_COMMON_CFLAGS}"
30
30
  TEST_CXX_CFLAGS << " #{PlatformInfo.adress_sanitizer_flag}" if USE_ASAN
31
31
  TEST_CXX_LDFLAGS = "#{EXTRA_PRE_CXX_LDFLAGS} " <<
32
- "#{TEST_COMMON_LIBRARY.link_objects_as_string} " <<
33
- "#{TEST_BOOST_OXT_LIBRARY} #{LIBEV_LIBS} #{LIBEIO_LIBS} " <<
34
- "#{PlatformInfo.curl_libs} " <<
35
- "#{PlatformInfo.zlib_libs} " <<
36
- "#{PlatformInfo.portability_cxx_ldflags}"
32
+ "#{TEST_COMMON_LIBRARY.link_objects_as_string} " <<
33
+ "#{TEST_BOOST_OXT_LIBRARY} #{LIBEV_LIBS} #{LIBEIO_LIBS} " <<
34
+ "#{PlatformInfo.curl_libs} " <<
35
+ "#{PlatformInfo.zlib_libs} " <<
36
+ "#{PlatformInfo.portability_cxx_ldflags}"
37
37
  TEST_CXX_LDFLAGS << " #{PlatformInfo.dmalloc_ldflags}" if USE_DMALLOC
38
38
  TEST_CXX_LDFLAGS << " #{PlatformInfo.adress_sanitizer_flag}" if USE_ASAN
39
39
  TEST_CXX_LDFLAGS << " #{EXTRA_CXX_LDFLAGS}"
40
40
  TEST_CXX_LDFLAGS.strip!
41
41
  TEST_CXX_OBJECTS = {
42
- 'test/cxx/CxxTestMain.o' => %w(
43
- test/cxx/CxxTestMain.cpp),
44
- 'test/cxx/TestSupport.o' => %w(
45
- test/cxx/TestSupport.cpp
46
- test/cxx/TestSupport.h
47
- ext/common/SafeLibev.h
48
- ext/common/BackgroundEventLoop.cpp
49
- ext/common/Exceptions.h
50
- ext/common/Utils.h),
51
- 'test/cxx/ApplicationPool2/OptionsTest.o' => %w(
52
- test/cxx/ApplicationPool2/OptionsTest.cpp
53
- ext/common/ApplicationPool2/Options.h),
54
- 'test/cxx/ApplicationPool2/DirectSpawnerTest.o' => %w(
55
- test/cxx/ApplicationPool2/DirectSpawnerTest.cpp
56
- test/cxx/ApplicationPool2/SpawnerTestCases.cpp
57
- ext/common/ApplicationPool2/Options.h
58
- ext/common/ApplicationPool2/Process.h
59
- ext/common/ApplicationPool2/Socket.h
60
- ext/common/ApplicationPool2/Spawner.h
61
- ext/common/ApplicationPool2/DirectSpawner.h),
62
- 'test/cxx/ApplicationPool2/SmartSpawnerTest.o' => %w(
63
- test/cxx/ApplicationPool2/SmartSpawnerTest.cpp
64
- test/cxx/ApplicationPool2/SpawnerTestCases.cpp
65
- ext/common/ApplicationPool2/Options.h
66
- ext/common/ApplicationPool2/Process.h
67
- ext/common/ApplicationPool2/Socket.h
68
- ext/common/ApplicationPool2/Spawner.h
69
- ext/common/ApplicationPool2/SmartSpawner.h),
70
- 'test/cxx/ApplicationPool2/ProcessTest.o' => %w(
71
- test/cxx/ApplicationPool2/ProcessTest.cpp
72
- ext/common/ApplicationPool2/Process.h
73
- ext/common/ApplicationPool2/Socket.h
74
- ext/common/ApplicationPool2/Session.h),
75
- 'test/cxx/ApplicationPool2/PoolTest.o' => %w(
76
- test/cxx/ApplicationPool2/PoolTest.cpp
77
- ext/common/ApplicationPool2/SuperGroup.h
78
- ext/common/ApplicationPool2/Group.h
79
- ext/common/ApplicationPool2/Pool.h
80
- ext/common/ApplicationPool2/Process.h
81
- ext/common/ApplicationPool2/Socket.h
82
- ext/common/ApplicationPool2/Options.h
83
- ext/common/ApplicationPool2/Spawner.h
84
- ext/common/ApplicationPool2/SpawnerFactory.h
85
- ext/common/ApplicationPool2/SmartSpawner.h
86
- ext/common/ApplicationPool2/DirectSpawner.h
87
- ext/common/ApplicationPool2/DummySpawner.h),
88
- 'test/cxx/MemoryKit/MbufTest.o' => %w(
89
- test/cxx/MemoryKit/MbufTest.cpp
90
- ext/common/MemoryKit/mbuf.h),
91
- 'test/cxx/ServerKit/ChannelTest.o' => %w(
92
- test/cxx/ServerKit/ChannelTest.cpp
93
- ext/common/ServerKit/Channel.h
94
- ext/common/ServerKit/Context.h),
95
- 'test/cxx/ServerKit/FileBufferedChannelTest.o' => %w(
96
- test/cxx/ServerKit/FileBufferedChannelTest.cpp
97
- ext/common/ServerKit/FileBufferedChannel.h
98
- ext/common/ServerKit/Context.h),
99
- 'test/cxx/ServerKit/HeaderTableTest.o' => %w(
100
- test/cxx/ServerKit/HeaderTableTest.cpp
101
- ext/common/ServerKit/HeaderTable.h
102
- ext/common/DataStructures/LString.h),
103
- 'test/cxx/ServerKit/ServerTest.o' => %w(
104
- test/cxx/ServerKit/ServerTest.cpp
105
- ext/common/ServerKit/Server.h
106
- ext/common/ServerKit/Client.h
107
- ext/common/ServerKit/Channel.h
108
- ext/common/ServerKit/FdSourceChannel.h
109
- ext/common/ServerKit/FileBufferedChannel.h
110
- ext/common/ServerKit/FileBufferedFdSinkChannel.h
111
- ext/common/ServerKit/Context.h),
112
- 'test/cxx/ServerKit/HttpServerTest.o' => %w(
113
- test/cxx/ServerKit/HttpServerTest.cpp
114
- ext/common/ServerKit/Server.h
115
- ext/common/ServerKit/Client.h
116
- ext/common/ServerKit/Channel.h
117
- ext/common/ServerKit/FdSourceChannel.h
118
- ext/common/ServerKit/FileBufferedChannel.h
119
- ext/common/ServerKit/FileBufferedFdSinkChannel.h
120
- ext/common/ServerKit/Context.h
121
- ext/common/ServerKit/HttpServer.h
122
- ext/common/ServerKit/HttpClient.h
123
- ext/common/ServerKit/HttpRequest.h
124
- ext/common/ServerKit/HttpHeaderParser.h
125
- ext/common/ServerKit/HttpChunkedBodyParser.h),
126
- 'test/cxx/ServerKit/CookieUtilsTest.o' => %w(
127
- test/cxx/ServerKit/CookieUtilsTest.cpp
128
- ext/common/ServerKit/CookieUtils.h
129
- ext/common/DataStructures/LString.h),
130
- 'test/cxx/DataStructures/LStringTest.o' => %w(
131
- test/cxx/DataStructures/LStringTest.cpp
132
- ext/common/DataStructures/LString.h),
133
- 'test/cxx/DataStructures/StringKeyTableTest.o' => %w(
134
- test/cxx/DataStructures/StringKeyTableTest.cpp
135
- ext/common/DataStructures/StringKeyTable.h),
136
- 'test/cxx/MessageReadersWritersTest.o' => %w(
137
- test/cxx/MessageReadersWritersTest.cpp
138
- ext/common/MessageReadersWriters.h
139
- ext/common/Exceptions.h
140
- ext/common/StaticString.h
141
- ext/common/Utils/MemZeroGuard.h),
142
- 'test/cxx/StaticStringTest.o' => %w(
143
- test/cxx/StaticStringTest.cpp
144
- ext/common/StaticString.h),
145
- 'test/cxx/DechunkerTest.o' => %w(
146
- test/cxx/DechunkerTest.cpp
147
- ext/common/Utils/Dechunker.h),
148
- 'test/cxx/ResponseCacheTest.o' => %w(
149
- test/cxx/ResponseCacheTest.cpp
150
- ext/common/agents/HelperAgent/ResponseCache.h
151
- ext/common/agents/HelperAgent/RequestHandler/Request.h
152
- ext/common/agents/HelperAgent/RequestHandler/AppResponse.h
153
- ext/common/ServerKit/HttpRequest.h),
154
- 'test/cxx/UnionStationTest.o' => %w(
155
- test/cxx/UnionStationTest.cpp
156
- ext/common/agents/LoggingAgent/LoggingServer.h
157
- ext/common/agents/LoggingAgent/RemoteSender.h
158
- ext/common/agents/LoggingAgent/DataStoreId.h
159
- ext/common/agents/LoggingAgent/FilterSupport.h
160
- ext/common/UnionStation/Connection.h
161
- ext/common/UnionStation/Core.h
162
- ext/common/UnionStation/Transaction.h
163
- ext/common/Utils.h
164
- ext/common/EventedServer.h
165
- ext/common/EventedClient.h
166
- ext/common/EventedMessageServer.h
167
- ext/common/MessageReadersWriters.h
168
- ext/common/MessageClient.h),
169
- 'test/cxx/EventedClientTest.o' => %w(
170
- test/cxx/EventedClientTest.cpp
171
- ext/common/EventedClient.h),
172
- 'test/cxx/EventedBufferedInput.o' => %w(
173
- test/cxx/EventedBufferedInputTest.cpp
174
- ext/common/EventedBufferedInput.h),
175
- 'test/cxx/MessageServerTest.o' => %w(
176
- test/cxx/MessageServerTest.cpp
177
- ext/common/Logging.h
178
- ext/common/Account.h
179
- ext/common/AccountsDatabase.h
180
- ext/common/MessageServer.h),
181
- # 'test/cxx/RequestHandlerTest.o' => %w(
182
- # test/cxx/RequestHandlerTest.cpp
183
- # ext/common/agents/HelperAgent/RequestHandler.h
184
- # ext/common/agents/HelperAgent/FileBackedPipe.h
185
- # ext/common/agents/HelperAgent/ScgiRequestParser.h
186
- # ext/common/agents/HelperAgent/AgentOptions.h
187
- # ext/common/UnionStation/Connection.h
188
- # ext/common/UnionStation/Core.h
189
- # ext/common/UnionStation/Transaction.h
190
- # ext/common/UnionStation/ScopeLog.h
191
- # ext/common/ApplicationPool2/Pool.h
192
- # ext/common/ApplicationPool2/SuperGroup.h
193
- # ext/common/ApplicationPool2/Group.h
194
- # ext/common/ApplicationPool2/Process.h
195
- # ext/common/ApplicationPool2/Options.h
196
- # ext/common/ApplicationPool2/Spawner.h
197
- # ext/common/ApplicationPool2/SpawnerFactory.h
198
- # ext/common/ApplicationPool2/SmartSpawner.h
199
- # ext/common/ApplicationPool2/DirectSpawner.h
200
- # ext/common/ApplicationPool2/DummySpawner.h),
201
- 'test/cxx/FileChangeCheckerTest.o' => %w(
202
- test/cxx/FileChangeCheckerTest.cpp
203
- ext/common/Utils/FileChangeChecker.h
204
- ext/common/Utils/CachedFileStat.hpp),
205
- 'test/cxx/FileDescriptorTest.o' => %w(
206
- test/cxx/FileDescriptorTest.cpp
207
- ext/common/FileDescriptor.h),
208
- 'test/cxx/SystemTimeTest.o' => %w(
209
- test/cxx/SystemTimeTest.cpp
210
- ext/common/Utils/SystemTime.h
211
- ext/common/Utils/SystemTime.cpp),
212
- 'test/cxx/FilterSupportTest.o' => %w(
213
- test/cxx/FilterSupportTest.cpp
214
- ext/common/agents/LoggingAgent/FilterSupport.h),
215
- 'test/cxx/CachedFileStatTest.o' => %w(
216
- test/cxx/CachedFileStatTest.cpp
217
- ext/common/Utils/CachedFileStat.hpp
218
- ext/common/Utils/CachedFileStat.cpp),
219
- 'test/cxx/BufferedIOTest.o' => %w(
220
- test/cxx/BufferedIOTest.cpp
221
- ext/common/Utils/BufferedIO.h
222
- ext/common/Utils/Timer.h),
223
- 'test/cxx/MessageIOTest.o' => %w(
224
- test/cxx/MessageIOTest.cpp
225
- ext/common/Utils/MessageIO.h
226
- ext/common/Utils/IOUtils.h),
227
- 'test/cxx/MessagePassingTest.o' => %w(
228
- test/cxx/MessagePassingTest.cpp
229
- ext/common/Utils/MessagePassing.h),
230
- 'test/cxx/VariantMapTest.o' => %w(
231
- test/cxx/VariantMapTest.cpp
232
- ext/common/Utils/VariantMap.h),
233
- 'test/cxx/StringMapTest.o' => %w(
234
- test/cxx/StringMapTest.cpp
235
- ext/common/Utils/StringMap.h
236
- ext/common/Utils/HashMap.h),
237
- 'test/cxx/ProcessMetricsCollectorTest.o' => %w(
238
- test/cxx/ProcessMetricsCollectorTest.cpp
239
- ext/common/Utils/ProcessMetricsCollector.h),
240
- 'test/cxx/DateParsingTest.o' => %w(
241
- test/cxx/DateParsingTest.cpp
242
- ext/common/Utils/DateParsing.h),
243
- 'test/cxx/UtilsTest.o' => %w(
244
- test/cxx/UtilsTest.cpp
245
- ext/common/Utils.h),
246
- 'test/cxx/IOUtilsTest.o' => %w(
247
- test/cxx/IOUtilsTest.cpp
248
- ext/common/Utils/IOUtils.h),
249
- 'test/cxx/TemplateTest.o' => %w(
250
- test/cxx/TemplateTest.cpp
251
- ext/common/Utils/Template.h)
42
+ 'test/cxx/CxxTestMain.o' => %w(
43
+ test/cxx/CxxTestMain.cpp),
44
+ 'test/cxx/TestSupport.o' => %w(
45
+ test/cxx/TestSupport.cpp
46
+ test/cxx/TestSupport.h
47
+ ext/common/SafeLibev.h
48
+ ext/common/BackgroundEventLoop.cpp
49
+ ext/common/Exceptions.h
50
+ ext/common/Utils.h),
51
+ 'test/cxx/ApplicationPool2/OptionsTest.o' => %w(
52
+ test/cxx/ApplicationPool2/OptionsTest.cpp
53
+ ext/common/ApplicationPool2/Options.h),
54
+ 'test/cxx/ApplicationPool2/DirectSpawnerTest.o' => %w(
55
+ test/cxx/ApplicationPool2/DirectSpawnerTest.cpp
56
+ test/cxx/ApplicationPool2/SpawnerTestCases.cpp
57
+ ext/common/ApplicationPool2/Options.h
58
+ ext/common/ApplicationPool2/Process.h
59
+ ext/common/ApplicationPool2/Socket.h
60
+ ext/common/ApplicationPool2/Spawner.h
61
+ ext/common/ApplicationPool2/DirectSpawner.h),
62
+ 'test/cxx/ApplicationPool2/SmartSpawnerTest.o' => %w(
63
+ test/cxx/ApplicationPool2/SmartSpawnerTest.cpp
64
+ test/cxx/ApplicationPool2/SpawnerTestCases.cpp
65
+ ext/common/ApplicationPool2/Options.h
66
+ ext/common/ApplicationPool2/Process.h
67
+ ext/common/ApplicationPool2/Socket.h
68
+ ext/common/ApplicationPool2/Spawner.h
69
+ ext/common/ApplicationPool2/SmartSpawner.h),
70
+ 'test/cxx/ApplicationPool2/ProcessTest.o' => %w(
71
+ test/cxx/ApplicationPool2/ProcessTest.cpp
72
+ ext/common/ApplicationPool2/Process.h
73
+ ext/common/ApplicationPool2/Socket.h
74
+ ext/common/ApplicationPool2/Session.h),
75
+ 'test/cxx/ApplicationPool2/PoolTest.o' => %w(
76
+ test/cxx/ApplicationPool2/PoolTest.cpp
77
+ ext/common/ApplicationPool2/SuperGroup.h
78
+ ext/common/ApplicationPool2/Group.h
79
+ ext/common/ApplicationPool2/Pool.h
80
+ ext/common/ApplicationPool2/Process.h
81
+ ext/common/ApplicationPool2/Socket.h
82
+ ext/common/ApplicationPool2/Options.h
83
+ ext/common/ApplicationPool2/Spawner.h
84
+ ext/common/ApplicationPool2/SpawnerFactory.h
85
+ ext/common/ApplicationPool2/SmartSpawner.h
86
+ ext/common/ApplicationPool2/DirectSpawner.h
87
+ ext/common/ApplicationPool2/DummySpawner.h),
88
+ 'test/cxx/MemoryKit/MbufTest.o' => %w(
89
+ test/cxx/MemoryKit/MbufTest.cpp
90
+ ext/common/MemoryKit/mbuf.h),
91
+ 'test/cxx/ServerKit/ChannelTest.o' => %w(
92
+ test/cxx/ServerKit/ChannelTest.cpp
93
+ ext/common/ServerKit/Channel.h
94
+ ext/common/ServerKit/Context.h),
95
+ 'test/cxx/ServerKit/FileBufferedChannelTest.o' => %w(
96
+ test/cxx/ServerKit/FileBufferedChannelTest.cpp
97
+ ext/common/ServerKit/FileBufferedChannel.h
98
+ ext/common/ServerKit/Context.h),
99
+ 'test/cxx/ServerKit/HeaderTableTest.o' => %w(
100
+ test/cxx/ServerKit/HeaderTableTest.cpp
101
+ ext/common/ServerKit/HeaderTable.h
102
+ ext/common/DataStructures/LString.h),
103
+ 'test/cxx/ServerKit/ServerTest.o' => %w(
104
+ test/cxx/ServerKit/ServerTest.cpp
105
+ ext/common/ServerKit/Server.h
106
+ ext/common/ServerKit/Client.h
107
+ ext/common/ServerKit/Channel.h
108
+ ext/common/ServerKit/FdSourceChannel.h
109
+ ext/common/ServerKit/FileBufferedChannel.h
110
+ ext/common/ServerKit/FileBufferedFdSinkChannel.h
111
+ ext/common/ServerKit/Context.h),
112
+ 'test/cxx/ServerKit/HttpServerTest.o' => %w(
113
+ test/cxx/ServerKit/HttpServerTest.cpp
114
+ ext/common/ServerKit/Server.h
115
+ ext/common/ServerKit/Client.h
116
+ ext/common/ServerKit/Channel.h
117
+ ext/common/ServerKit/FdSourceChannel.h
118
+ ext/common/ServerKit/FileBufferedChannel.h
119
+ ext/common/ServerKit/FileBufferedFdSinkChannel.h
120
+ ext/common/ServerKit/Context.h
121
+ ext/common/ServerKit/HttpServer.h
122
+ ext/common/ServerKit/HttpClient.h
123
+ ext/common/ServerKit/HttpRequest.h
124
+ ext/common/ServerKit/HttpHeaderParser.h
125
+ ext/common/ServerKit/HttpChunkedBodyParser.h),
126
+ 'test/cxx/ServerKit/CookieUtilsTest.o' => %w(
127
+ test/cxx/ServerKit/CookieUtilsTest.cpp
128
+ ext/common/ServerKit/CookieUtils.h
129
+ ext/common/DataStructures/LString.h),
130
+ 'test/cxx/DataStructures/LStringTest.o' => %w(
131
+ test/cxx/DataStructures/LStringTest.cpp
132
+ ext/common/DataStructures/LString.h),
133
+ 'test/cxx/DataStructures/StringKeyTableTest.o' => %w(
134
+ test/cxx/DataStructures/StringKeyTableTest.cpp
135
+ ext/common/DataStructures/StringKeyTable.h),
136
+ 'test/cxx/MessageReadersWritersTest.o' => %w(
137
+ test/cxx/MessageReadersWritersTest.cpp
138
+ ext/common/MessageReadersWriters.h
139
+ ext/common/Exceptions.h
140
+ ext/common/StaticString.h
141
+ ext/common/Utils/MemZeroGuard.h),
142
+ 'test/cxx/StaticStringTest.o' => %w(
143
+ test/cxx/StaticStringTest.cpp
144
+ ext/common/StaticString.h),
145
+ 'test/cxx/DechunkerTest.o' => %w(
146
+ test/cxx/DechunkerTest.cpp
147
+ ext/common/Utils/Dechunker.h),
148
+ 'test/cxx/ResponseCacheTest.o' => %w(
149
+ test/cxx/ResponseCacheTest.cpp
150
+ ext/common/agents/HelperAgent/ResponseCache.h
151
+ ext/common/agents/HelperAgent/RequestHandler/Request.h
152
+ ext/common/agents/HelperAgent/RequestHandler/AppResponse.h
153
+ ext/common/ServerKit/HttpRequest.h),
154
+ 'test/cxx/UnionStationTest.o' => %w(
155
+ test/cxx/UnionStationTest.cpp
156
+ ext/common/agents/LoggingAgent/LoggingServer.h
157
+ ext/common/agents/LoggingAgent/RemoteSender.h
158
+ ext/common/agents/LoggingAgent/DataStoreId.h
159
+ ext/common/agents/LoggingAgent/FilterSupport.h
160
+ ext/common/UnionStation/Connection.h
161
+ ext/common/UnionStation/Core.h
162
+ ext/common/UnionStation/Transaction.h
163
+ ext/common/Utils.h
164
+ ext/common/EventedServer.h
165
+ ext/common/EventedClient.h
166
+ ext/common/EventedMessageServer.h
167
+ ext/common/MessageReadersWriters.h
168
+ ext/common/MessageClient.h),
169
+ 'test/cxx/EventedClientTest.o' => %w(
170
+ test/cxx/EventedClientTest.cpp
171
+ ext/common/EventedClient.h),
172
+ 'test/cxx/EventedBufferedInput.o' => %w(
173
+ test/cxx/EventedBufferedInputTest.cpp
174
+ ext/common/EventedBufferedInput.h),
175
+ 'test/cxx/MessageServerTest.o' => %w(
176
+ test/cxx/MessageServerTest.cpp
177
+ ext/common/Logging.h
178
+ ext/common/Account.h
179
+ ext/common/AccountsDatabase.h
180
+ ext/common/MessageServer.h),
181
+ # 'test/cxx/RequestHandlerTest.o' => %w(
182
+ # test/cxx/RequestHandlerTest.cpp
183
+ # ext/common/agents/HelperAgent/RequestHandler.h
184
+ # ext/common/agents/HelperAgent/FileBackedPipe.h
185
+ # ext/common/agents/HelperAgent/ScgiRequestParser.h
186
+ # ext/common/agents/HelperAgent/AgentOptions.h
187
+ # ext/common/UnionStation/Connection.h
188
+ # ext/common/UnionStation/Core.h
189
+ # ext/common/UnionStation/Transaction.h
190
+ # ext/common/UnionStation/ScopeLog.h
191
+ # ext/common/ApplicationPool2/Pool.h
192
+ # ext/common/ApplicationPool2/SuperGroup.h
193
+ # ext/common/ApplicationPool2/Group.h
194
+ # ext/common/ApplicationPool2/Process.h
195
+ # ext/common/ApplicationPool2/Options.h
196
+ # ext/common/ApplicationPool2/Spawner.h
197
+ # ext/common/ApplicationPool2/SpawnerFactory.h
198
+ # ext/common/ApplicationPool2/SmartSpawner.h
199
+ # ext/common/ApplicationPool2/DirectSpawner.h
200
+ # ext/common/ApplicationPool2/DummySpawner.h),
201
+ 'test/cxx/FileChangeCheckerTest.o' => %w(
202
+ test/cxx/FileChangeCheckerTest.cpp
203
+ ext/common/Utils/FileChangeChecker.h
204
+ ext/common/Utils/CachedFileStat.hpp),
205
+ 'test/cxx/FileDescriptorTest.o' => %w(
206
+ test/cxx/FileDescriptorTest.cpp
207
+ ext/common/FileDescriptor.h),
208
+ 'test/cxx/SystemTimeTest.o' => %w(
209
+ test/cxx/SystemTimeTest.cpp
210
+ ext/common/Utils/SystemTime.h
211
+ ext/common/Utils/SystemTime.cpp),
212
+ 'test/cxx/FilterSupportTest.o' => %w(
213
+ test/cxx/FilterSupportTest.cpp
214
+ ext/common/agents/LoggingAgent/FilterSupport.h),
215
+ 'test/cxx/CachedFileStatTest.o' => %w(
216
+ test/cxx/CachedFileStatTest.cpp
217
+ ext/common/Utils/CachedFileStat.hpp
218
+ ext/common/Utils/CachedFileStat.cpp),
219
+ 'test/cxx/BufferedIOTest.o' => %w(
220
+ test/cxx/BufferedIOTest.cpp
221
+ ext/common/Utils/BufferedIO.h
222
+ ext/common/Utils/Timer.h),
223
+ 'test/cxx/MessageIOTest.o' => %w(
224
+ test/cxx/MessageIOTest.cpp
225
+ ext/common/Utils/MessageIO.h
226
+ ext/common/Utils/IOUtils.h),
227
+ 'test/cxx/MessagePassingTest.o' => %w(
228
+ test/cxx/MessagePassingTest.cpp
229
+ ext/common/Utils/MessagePassing.h),
230
+ 'test/cxx/VariantMapTest.o' => %w(
231
+ test/cxx/VariantMapTest.cpp
232
+ ext/common/Utils/VariantMap.h),
233
+ 'test/cxx/StringMapTest.o' => %w(
234
+ test/cxx/StringMapTest.cpp
235
+ ext/common/Utils/StringMap.h
236
+ ext/common/Utils/HashMap.h),
237
+ 'test/cxx/ProcessMetricsCollectorTest.o' => %w(
238
+ test/cxx/ProcessMetricsCollectorTest.cpp
239
+ ext/common/Utils/ProcessMetricsCollector.h),
240
+ 'test/cxx/DateParsingTest.o' => %w(
241
+ test/cxx/DateParsingTest.cpp
242
+ ext/common/Utils/DateParsing.h),
243
+ 'test/cxx/UtilsTest.o' => %w(
244
+ test/cxx/UtilsTest.cpp
245
+ ext/common/Utils.h),
246
+ 'test/cxx/IOUtilsTest.o' => %w(
247
+ test/cxx/IOUtilsTest.cpp
248
+ ext/common/Utils/IOUtils.h),
249
+ 'test/cxx/TemplateTest.o' => %w(
250
+ test/cxx/TemplateTest.cpp
251
+ ext/common/Utils/Template.h)
252
252
  }
253
253
 
254
254
  dependencies = [
255
- 'test/cxx/CxxTestMain',
256
- 'test/support/allocate_memory',
257
- NATIVE_SUPPORT_TARGET,
258
- AGENT_OUTPUT_DIR + AGENT_EXE
255
+ 'test/cxx/CxxTestMain',
256
+ 'test/support/allocate_memory',
257
+ NATIVE_SUPPORT_TARGET,
258
+ AGENT_OUTPUT_DIR + AGENT_EXE
259
259
  ].compact
260
260
  desc "Run unit tests for the Apache 2 and Nginx C++ components"
261
261
  task 'test:cxx' => dependencies do
262
- args = ENV['GROUPS'].to_s.split(";").map{ |name| "-g #{name}" }
263
- command = "./cxx/CxxTestMain #{args.join(' ')}".strip
264
- if boolean_option('GDB')
265
- command = "gdb --args #{command}"
266
- elsif boolean_option('VALGRIND')
267
- command = "valgrind --dsymutil=yes --db-attach=yes --child-silent-after-fork=yes #{command}"
268
- end
269
- if boolean_option('SUDO')
270
- command = "#{PlatformInfo.ruby_sudo_command} #{command}"
271
- end
272
- if boolean_option('REPEAT')
273
- if boolean_option('GDB')
274
- abort "You cannot set both REPEAT=1 and GDB=1."
275
- end
276
- sh "cd test && while #{command}; do echo -------------------------------------------; done"
277
- elsif boolean_option('REPEAT_FOREVER')
278
- if boolean_option('GDB')
279
- abort "You cannot set both REPEAT_FOREVER=1 and GDB=1."
280
- end
281
- sh "cd test && while true; do #{command}; echo -------------------------------------------; done"
282
- else
283
- sh "cd test && exec #{command}"
284
- end
262
+ args = ENV['GROUPS'].to_s.split(";").map{ |name| "-g #{name}" }
263
+ command = "./cxx/CxxTestMain #{args.join(' ')}".strip
264
+ if boolean_option('GDB')
265
+ command = "gdb --args #{command}"
266
+ elsif boolean_option('VALGRIND')
267
+ command = "valgrind --dsymutil=yes --db-attach=yes --child-silent-after-fork=yes #{command}"
268
+ end
269
+ if boolean_option('SUDO')
270
+ command = "#{PlatformInfo.ruby_sudo_command} #{command}"
271
+ end
272
+ if boolean_option('REPEAT')
273
+ if boolean_option('GDB')
274
+ abort "You cannot set both REPEAT=1 and GDB=1."
275
+ end
276
+ sh "cd test && while #{command}; do echo -------------------------------------------; done"
277
+ elsif boolean_option('REPEAT_FOREVER')
278
+ if boolean_option('GDB')
279
+ abort "You cannot set both REPEAT_FOREVER=1 and GDB=1."
280
+ end
281
+ sh "cd test && while true; do #{command}; echo -------------------------------------------; done"
282
+ else
283
+ sh "cd test && exec #{command}"
284
+ end
285
285
  end
286
286
 
287
287
  dependencies = [
288
- TEST_CXX_OBJECTS.keys,
289
- LIBEV_TARGET,
290
- LIBEIO_TARGET,
291
- TEST_BOOST_OXT_LIBRARY,
292
- TEST_COMMON_LIBRARY.link_objects,
293
- 'ext/common/Constants.h'
288
+ TEST_CXX_OBJECTS.keys,
289
+ LIBEV_TARGET,
290
+ LIBEIO_TARGET,
291
+ TEST_BOOST_OXT_LIBRARY,
292
+ TEST_COMMON_LIBRARY.link_objects,
293
+ 'ext/common/Constants.h'
294
294
  ].flatten.compact
295
295
  file 'test/cxx/CxxTestMain' => dependencies.flatten do
296
- objects = TEST_CXX_OBJECTS.keys.join(' ')
297
- create_executable("test/cxx/CxxTestMain", objects, TEST_CXX_LDFLAGS)
296
+ objects = TEST_CXX_OBJECTS.keys.join(' ')
297
+ create_executable("test/cxx/CxxTestMain", objects, TEST_CXX_LDFLAGS)
298
298
  end
299
299
 
300
300
  deps = [
301
- 'test/cxx/TestSupport.h',
302
- 'test/tut/tut.h',
303
- 'ext/oxt/thread.hpp',
304
- 'ext/oxt/tracable_exception.hpp',
305
- 'ext/common/Constants.h',
306
- 'ext/common/Exceptions.h',
307
- 'ext/common/InstanceDirectory.h',
308
- 'ext/common/Utils.h',
309
- 'ext/common/Utils/SystemTime.h'
301
+ 'test/cxx/TestSupport.h',
302
+ 'test/tut/tut.h',
303
+ 'ext/oxt/thread.hpp',
304
+ 'ext/oxt/tracable_exception.hpp',
305
+ 'ext/common/Constants.h',
306
+ 'ext/common/Exceptions.h',
307
+ 'ext/common/InstanceDirectory.h',
308
+ 'ext/common/Utils.h',
309
+ 'ext/common/Utils/SystemTime.h'
310
310
  ]
311
311
  file 'test/cxx/TestSupport.h.gch' => deps do
312
- compile_cxx 'test/cxx/TestSupport.h', "-x c++-header -o test/cxx/TestSupport.h.gch #{TEST_CXX_CFLAGS}"
312
+ compile_cxx 'test/cxx/TestSupport.h', "-x c++-header -o test/cxx/TestSupport.h.gch #{TEST_CXX_CFLAGS}"
313
313
  end
314
314
 
315
315
  TEST_CXX_OBJECTS.each_pair do |target, sources|
316
- extra_deps = ['test/cxx/TestSupport.h', 'test/cxx/TestSupport.h.gch', 'ext/common/Constants.h']
317
- file(target => sources + extra_deps) do
318
- # To use precompiled headers in Clang, we must -include them on them command line.
319
- compile_cxx sources[0], "-o #{target} -include test/cxx/TestSupport.h #{TEST_CXX_CFLAGS}"
320
- end
316
+ extra_deps = ['test/cxx/TestSupport.h', 'test/cxx/TestSupport.h.gch', 'ext/common/Constants.h']
317
+ file(target => sources + extra_deps) do
318
+ # To use precompiled headers in Clang, we must -include them on them command line.
319
+ compile_cxx sources[0], "-o #{target} -include test/cxx/TestSupport.h #{TEST_CXX_CFLAGS}"
320
+ end
321
321
  end