passenger 5.0.4 → 5.0.5

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 (550) hide show
  1. checksums.yaml +8 -8
  2. checksums.yaml.gz.asc +7 -7
  3. data.tar.gz.asc +7 -7
  4. data/.editorconfig +10 -0
  5. data/CHANGELOG +21 -0
  6. data/build/agents.rb +2 -2
  7. data/build/apache2.rb +6 -5
  8. data/build/common_library.rb +22 -7
  9. data/build/cxx_tests.rb +0 -3
  10. data/build/misc.rb +1 -1
  11. data/dev/parse_file_descriptor_log +119 -0
  12. data/doc/CloudLicensingConfiguration.html +387 -0
  13. data/doc/Design and Architecture.html +2430 -0
  14. data/doc/Packaging.html +488 -0
  15. data/doc/Security of user switching support.html +1833 -0
  16. data/doc/ServerOptimizationGuide.html +659 -0
  17. data/doc/ServerOptimizationGuide.txt.md +8 -0
  18. data/doc/Users guide Apache.html +9116 -0
  19. data/doc/Users guide Apache.idmap.txt +6 -2
  20. data/doc/Users guide Apache.txt +26 -7
  21. data/doc/Users guide Nginx.html +9025 -0
  22. data/doc/Users guide Nginx.idmap.txt +7 -3
  23. data/doc/Users guide Nginx.txt +29 -6
  24. data/doc/Users guide Standalone.html +3983 -0
  25. data/doc/Users guide.html +1748 -0
  26. data/doc/users_guide_snippets/installation.txt +4 -4
  27. data/ext/apache2/Configuration.cpp +16 -5
  28. data/ext/apache2/Configuration.hpp +4 -2
  29. data/ext/apache2/Hooks.cpp +44 -19
  30. data/ext/boost/libs/thread/src/pthread/once.cpp +2 -0
  31. data/ext/boost/libs/thread/src/pthread/once_atomic.cpp +6 -0
  32. data/ext/common/AgentsStarter.h +3 -2
  33. data/ext/common/ApplicationPool2/DirectSpawner.h +14 -4
  34. data/ext/common/ApplicationPool2/DummySpawner.h +12 -7
  35. data/ext/common/ApplicationPool2/Implementation.cpp +1 -1
  36. data/ext/common/ApplicationPool2/Process.h +2 -1
  37. data/ext/common/ApplicationPool2/Session.h +6 -6
  38. data/ext/common/ApplicationPool2/SmartSpawner.h +19 -4
  39. data/ext/common/ApplicationPool2/Socket.h +59 -27
  40. data/ext/common/ApplicationPool2/Spawner.h +2 -2
  41. data/ext/common/BackgroundEventLoop.cpp +6 -1
  42. data/ext/common/Constants.h +1 -1
  43. data/ext/common/EventedClient.h +1 -1
  44. data/ext/common/EventedServer.h +2 -2
  45. data/ext/common/FileDescriptor.h +25 -6
  46. data/ext/common/Logging.cpp +107 -52
  47. data/ext/common/Logging.h +146 -19
  48. data/ext/common/MessageClient.h +2 -2
  49. data/ext/common/MessageServer.h +3 -2
  50. data/ext/common/RandomGenerator.h +8 -7
  51. data/ext/common/SafeLibev.h +5 -1
  52. data/ext/common/ServerKit/AcceptLoadBalancer.h +9 -4
  53. data/ext/common/ServerKit/FdSinkChannel.h +5 -2
  54. data/ext/common/ServerKit/FdSourceChannel.h +5 -2
  55. data/ext/common/ServerKit/FileBufferedChannel.h +2 -0
  56. data/ext/common/ServerKit/FileBufferedFdSinkChannel.h +7 -2
  57. data/ext/common/ServerKit/HttpServer.h +6 -0
  58. data/ext/common/ServerKit/Server.h +40 -3
  59. data/ext/common/StaticString.h +20 -0
  60. data/ext/common/UnionStation/Connection.h +3 -1
  61. data/ext/common/UnionStation/Core.h +6 -4
  62. data/ext/common/Utils.cpp +4 -3
  63. data/ext/common/Utils/DateParsing.h +19 -5
  64. data/ext/common/Utils/FastStringStream.h +183 -0
  65. data/ext/common/Utils/IOUtils.cpp +47 -28
  66. data/ext/common/Utils/IOUtils.h +56 -12
  67. data/ext/common/Utils/MessagePassing.h +3 -3
  68. data/ext/common/Utils/ProcessMetricsCollector.h +2 -2
  69. data/ext/common/Utils/ScopeGuard.h +16 -5
  70. data/ext/common/Utils/SpeedMeter.h +2 -2
  71. data/ext/common/Utils/StrIntUtils.cpp +6 -6
  72. data/ext/common/Utils/StrIntUtils.h +2 -1
  73. data/ext/common/agents/Base.cpp +56 -4
  74. data/ext/common/agents/Base.h +2 -1
  75. data/ext/common/agents/HelperAgent/AdminServer.h +122 -11
  76. data/ext/common/agents/HelperAgent/Main.cpp +16 -5
  77. data/ext/common/agents/HelperAgent/OptionParser.h +7 -1
  78. data/ext/common/agents/HelperAgent/RequestHandler.h +1 -1
  79. data/ext/common/agents/HelperAgent/RequestHandler/Hooks.cpp +10 -1
  80. data/ext/common/agents/HelperAgent/RequestHandler/Request.h +8 -0
  81. data/ext/common/agents/HelperAgent/RequestHandler/TurboCaching.h +4 -3
  82. data/ext/common/agents/LoggingAgent/AdminServer.h +57 -11
  83. data/ext/common/agents/LoggingAgent/LoggingServer.h +3 -3
  84. data/ext/common/agents/LoggingAgent/Main.cpp +11 -3
  85. data/ext/common/agents/Watchdog/AdminServer.h +53 -11
  86. data/ext/common/agents/Watchdog/AgentWatcher.cpp +3 -3
  87. data/ext/common/agents/Watchdog/Main.cpp +13 -6
  88. data/ext/libeio/ecb.h +1 -1
  89. data/ext/libev/ev.c +13 -1
  90. data/ext/libev/ev.h +3 -0
  91. data/ext/nginx/Configuration.c +28 -6
  92. data/ext/nginx/Configuration.h +2 -1
  93. data/ext/nginx/ngx_http_passenger_module.c +5 -4
  94. data/ext/oxt/dynamic_thread_group.hpp +38 -5
  95. data/lib/phusion_passenger.rb +1 -1
  96. data/lib/phusion_passenger/common_library.rb +9 -5
  97. data/lib/phusion_passenger/config/reopen_logs_command.rb +2 -2
  98. data/lib/phusion_passenger/packaging.rb +23 -37
  99. data/passenger.gemspec +21 -21
  100. metadata +4 -453
  101. metadata.gz.asc +7 -7
  102. data/.gitignore +0 -68
  103. data/.travis.yml +0 -16
  104. data/Gemfile +0 -17
  105. data/Gemfile.lock +0 -39
  106. data/Vagrantfile +0 -54
  107. data/debian.template/README.Debian +0 -15
  108. data/debian.template/changelog +0 -316
  109. data/debian.template/compat +0 -1
  110. data/debian.template/control.erb +0 -91
  111. data/debian.template/copyright +0 -385
  112. data/debian.template/libapache2-mod-passenger.install +0 -3
  113. data/debian.template/libapache2-mod-passenger.postinst +0 -36
  114. data/debian.template/libapache2-mod-passenger.prerm +0 -15
  115. data/debian.template/locations.ini.erb +0 -14
  116. data/debian.template/passenger-dev.install.erb +0 -3
  117. data/debian.template/passenger-doc.install.erb +0 -2
  118. data/debian.template/passenger.conf +0 -6
  119. data/debian.template/passenger.docs +0 -4
  120. data/debian.template/passenger.install.erb +0 -14
  121. data/debian.template/passenger.load +0 -3
  122. data/debian.template/passenger.manpages +0 -3
  123. data/debian.template/patches/series +0 -0
  124. data/debian.template/rules.erb +0 -76
  125. data/debian.template/source/format +0 -1
  126. data/ext/common/EventedBufferedInput.h +0 -458
  127. data/packaging/rpm/LICENSE.txt +0 -19
  128. data/packaging/rpm/Makefile +0 -13
  129. data/packaging/rpm/README.md +0 -41
  130. data/packaging/rpm/Vagrantfile +0 -38
  131. data/packaging/rpm/Vagrantfile.centos +0 -30
  132. data/packaging/rpm/build +0 -170
  133. data/packaging/rpm/create_project +0 -41
  134. data/packaging/rpm/git_update +0 -88
  135. data/packaging/rpm/image/Dockerfile +0 -37
  136. data/packaging/rpm/image/Gemfile +0 -3
  137. data/packaging/rpm/image/Gemfile.lock +0 -12
  138. data/packaging/rpm/image/RPM-GPG-KEY-amazon-ga +0 -19
  139. data/packaging/rpm/image/amazon2014-i386.cfg +0 -96
  140. data/packaging/rpm/image/amazon2014-x86_64.cfg +0 -96
  141. data/packaging/rpm/image/site-defaults.cfg +0 -168
  142. data/packaging/rpm/internal/build_tasks.rb +0 -238
  143. data/packaging/rpm/internal/dummygpg +0 -11
  144. data/packaging/rpm/internal/exec_build +0 -42
  145. data/packaging/rpm/internal/get_distro_arch +0 -14
  146. data/packaging/rpm/internal/get_distro_id +0 -10
  147. data/packaging/rpm/internal/git_update +0 -27
  148. data/packaging/rpm/internal/inituidgid +0 -17
  149. data/packaging/rpm/internal/my_init +0 -344
  150. data/packaging/rpm/internal/python27 +0 -3
  151. data/packaging/rpm/internal/repo_update +0 -46
  152. data/packaging/rpm/internal/setuser +0 -26
  153. data/packaging/rpm/internal/tracking_helper +0 -40
  154. data/packaging/rpm/jenkins_release +0 -99
  155. data/packaging/rpm/lib/build_tasks_support.rb +0 -402
  156. data/packaging/rpm/lib/preprocessor.rb +0 -341
  157. data/packaging/rpm/nginx_spec/404.html +0 -119
  158. data/packaging/rpm/nginx_spec/50x.html +0 -119
  159. data/packaging/rpm/nginx_spec/index.html +0 -116
  160. data/packaging/rpm/nginx_spec/nginx-auto-cc-gcc.patch +0 -13
  161. data/packaging/rpm/nginx_spec/nginx-logo.png +0 -0
  162. data/packaging/rpm/nginx_spec/nginx-upgrade +0 -13
  163. data/packaging/rpm/nginx_spec/nginx-upgrade.8 +0 -151
  164. data/packaging/rpm/nginx_spec/nginx.conf +0 -131
  165. data/packaging/rpm/nginx_spec/nginx.init +0 -144
  166. data/packaging/rpm/nginx_spec/nginx.logrotate +0 -13
  167. data/packaging/rpm/nginx_spec/nginx.service +0 -15
  168. data/packaging/rpm/nginx_spec/nginx.spec.template +0 -560
  169. data/packaging/rpm/nginx_spec/nginx.sysconfig +0 -4
  170. data/packaging/rpm/nginx_spec/passenger.conf +0 -9
  171. data/packaging/rpm/nginx_spec/poweredby.png +0 -0
  172. data/packaging/rpm/passenger_spec/apache-passenger.conf.in +0 -26
  173. data/packaging/rpm/passenger_spec/config.json +0 -30
  174. data/packaging/rpm/passenger_spec/passenger.logrotate +0 -7
  175. data/packaging/rpm/passenger_spec/passenger.spec.template +0 -478
  176. data/packaging/rpm/passenger_spec/passenger_dynamic_thread_group.patch +0 -16
  177. data/packaging/rpm/passenger_spec/passenger_tests_default_config_example.patch +0 -44
  178. data/packaging/rpm/passenger_spec/rubygem-passenger-4.0.18-GLIBC_HAVE_LONG_LONG.patch +0 -21
  179. data/packaging/rpm/repo_update +0 -114
  180. data/packaging/rpm/setup-system +0 -61
  181. data/packaging/rpm/shell +0 -10
  182. data/test/.rspec +0 -4
  183. data/test/config.json.example +0 -42
  184. data/test/config.json.rpm-automation +0 -15
  185. data/test/config.json.travis +0 -15
  186. data/test/config.json.vagrant +0 -30
  187. data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +0 -124
  188. data/test/cxx/ApplicationPool2/OptionsTest.cpp +0 -30
  189. data/test/cxx/ApplicationPool2/PoolTest.cpp +0 -2062
  190. data/test/cxx/ApplicationPool2/ProcessTest.cpp +0 -130
  191. data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +0 -243
  192. data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +0 -823
  193. data/test/cxx/BufferedIOTest.cpp +0 -364
  194. data/test/cxx/CachedFileStatTest.cpp +0 -402
  195. data/test/cxx/CxxTestMain.cpp +0 -181
  196. data/test/cxx/DataStructures/LStringTest.cpp +0 -275
  197. data/test/cxx/DataStructures/StringKeyTableTest.cpp +0 -199
  198. data/test/cxx/DateParsingTest.cpp +0 -75
  199. data/test/cxx/DechunkerTest.cpp +0 -250
  200. data/test/cxx/EventedBufferedInputTest.cpp +0 -758
  201. data/test/cxx/EventedClientTest.cpp +0 -523
  202. data/test/cxx/FileChangeCheckerTest.cpp +0 -331
  203. data/test/cxx/FileDescriptorTest.cpp +0 -69
  204. data/test/cxx/FilterSupportTest.cpp +0 -433
  205. data/test/cxx/IOUtilsTest.cpp +0 -861
  206. data/test/cxx/MemoryKit/MbufTest.cpp +0 -213
  207. data/test/cxx/MessageIOTest.cpp +0 -360
  208. data/test/cxx/MessagePassingTest.cpp +0 -81
  209. data/test/cxx/MessageReadersWritersTest.cpp +0 -576
  210. data/test/cxx/MessageServerTest.cpp +0 -393
  211. data/test/cxx/ProcessMetricsCollectorTest.cpp +0 -123
  212. data/test/cxx/RequestHandlerTest.cpp +0 -1463
  213. data/test/cxx/ResponseCacheTest.cpp +0 -322
  214. data/test/cxx/ServerKit/ChannelTest.cpp +0 -1467
  215. data/test/cxx/ServerKit/CookieUtilsTest.cpp +0 -274
  216. data/test/cxx/ServerKit/FileBufferedChannelTest.cpp +0 -992
  217. data/test/cxx/ServerKit/HeaderTableTest.cpp +0 -177
  218. data/test/cxx/ServerKit/HttpServerTest.cpp +0 -1580
  219. data/test/cxx/ServerKit/ServerTest.cpp +0 -408
  220. data/test/cxx/StaticStringTest.cpp +0 -220
  221. data/test/cxx/StringMapTest.cpp +0 -131
  222. data/test/cxx/SystemTimeTest.cpp +0 -37
  223. data/test/cxx/TemplateTest.cpp +0 -118
  224. data/test/cxx/TestSupport.cpp +0 -207
  225. data/test/cxx/TestSupport.h +0 -333
  226. data/test/cxx/UnionStationTest.cpp +0 -741
  227. data/test/cxx/Utils/StrIntUtilsTest.cpp +0 -39
  228. data/test/cxx/UtilsTest.cpp +0 -672
  229. data/test/cxx/VariantMapTest.cpp +0 -191
  230. data/test/gdbinit.example +0 -34
  231. data/test/integration_tests/apache2_tests.rb +0 -585
  232. data/test/integration_tests/downloaded_binaries_tests.rb +0 -185
  233. data/test/integration_tests/native_packaging_spec.rb +0 -368
  234. data/test/integration_tests/nginx_tests.rb +0 -402
  235. data/test/integration_tests/shared/example_webapp_tests.rb +0 -289
  236. data/test/integration_tests/source_packaging_test.rb +0 -201
  237. data/test/integration_tests/spec_helper.rb +0 -22
  238. data/test/integration_tests/standalone_tests.rb +0 -392
  239. data/test/node/line_reader_spec.js +0 -338
  240. data/test/node/spec_helper.js +0 -65
  241. data/test/oxt/backtrace_test.cpp +0 -88
  242. data/test/oxt/counter.hpp +0 -55
  243. data/test/oxt/dynamic_thread_group_test.cpp +0 -131
  244. data/test/oxt/oxt_test_main.cpp +0 -27
  245. data/test/oxt/spin_lock_test.cpp +0 -59
  246. data/test/oxt/syscall_interruption_test.cpp +0 -39
  247. data/test/ruby/debug_logging_spec.rb +0 -145
  248. data/test/ruby/message_channel_spec.rb +0 -196
  249. data/test/ruby/rack/loader_spec.rb +0 -42
  250. data/test/ruby/rack/preloader_spec.rb +0 -48
  251. data/test/ruby/rails3.0/loader_spec.rb +0 -26
  252. data/test/ruby/rails3.0/preloader_spec.rb +0 -32
  253. data/test/ruby/rails3.1/loader_spec.rb +0 -26
  254. data/test/ruby/rails3.1/preloader_spec.rb +0 -32
  255. data/test/ruby/rails3.2/loader_spec.rb +0 -26
  256. data/test/ruby/rails3.2/preloader_spec.rb +0 -32
  257. data/test/ruby/rails4.0/loader_spec.rb +0 -28
  258. data/test/ruby/rails4.0/preloader_spec.rb +0 -34
  259. data/test/ruby/rails4.1/loader_spec.rb +0 -28
  260. data/test/ruby/rails4.1/preloader_spec.rb +0 -34
  261. data/test/ruby/request_handler_spec.rb +0 -747
  262. data/test/ruby/shared/loader_sharedspec.rb +0 -247
  263. data/test/ruby/shared/rails/union_station_extensions_sharedspec.rb +0 -357
  264. data/test/ruby/shared/ruby_loader_sharedspec.rb +0 -55
  265. data/test/ruby/spec_helper.rb +0 -114
  266. data/test/ruby/standalone/runtime_installer_spec.rb +0 -402
  267. data/test/ruby/union_station_spec.rb +0 -288
  268. data/test/ruby/utils/file_system_watcher_spec.rb +0 -229
  269. data/test/ruby/utils/hosts_file_parser.rb +0 -258
  270. data/test/ruby/utils/tee_input_spec.rb +0 -235
  271. data/test/ruby/utils/unseekable_socket_spec.rb +0 -66
  272. data/test/ruby/utils_spec.rb +0 -41
  273. data/test/stub/apache2/httpd.conf.erb +0 -122
  274. data/test/stub/apache2/mime.types +0 -748
  275. data/test/stub/garbage1.dat +0 -0
  276. data/test/stub/garbage2.dat +0 -0
  277. data/test/stub/garbage3.dat +0 -0
  278. data/test/stub/http_request.yml +0 -23
  279. data/test/stub/index.html +0 -1
  280. data/test/stub/nginx/koi-utf +0 -109
  281. data/test/stub/nginx/koi-win +0 -103
  282. data/test/stub/nginx/mime.types +0 -70
  283. data/test/stub/nginx/nginx.conf.erb +0 -70
  284. data/test/stub/nginx/win-utf +0 -126
  285. data/test/stub/node/app.js +0 -133
  286. data/test/stub/node/public/.gitignore +0 -0
  287. data/test/stub/node/tmp/.gitignore +0 -0
  288. data/test/stub/rack/config.ru +0 -95
  289. data/test/stub/rack/library.rb +0 -16
  290. data/test/stub/rack/public/.gitignore +0 -0
  291. data/test/stub/rack/start.rb +0 -52
  292. data/test/stub/rack/tmp/.gitignore +0 -0
  293. data/test/stub/rails3.0/.gitignore +0 -4
  294. data/test/stub/rails3.0/Gemfile +0 -22
  295. data/test/stub/rails3.0/Gemfile.lock +0 -80
  296. data/test/stub/rails3.0/Rakefile +0 -10
  297. data/test/stub/rails3.0/app/controllers/application_controller.rb +0 -4
  298. data/test/stub/rails3.0/app/helpers/application_helper.rb +0 -2
  299. data/test/stub/rails3.0/app/views/layouts/application.html.erb +0 -14
  300. data/test/stub/rails3.0/config.ru +0 -4
  301. data/test/stub/rails3.0/config/application.rb +0 -48
  302. data/test/stub/rails3.0/config/boot.rb +0 -13
  303. data/test/stub/rails3.0/config/database.yml +0 -22
  304. data/test/stub/rails3.0/config/environment.rb +0 -5
  305. data/test/stub/rails3.0/config/environments/development.rb +0 -19
  306. data/test/stub/rails3.0/config/environments/production.rb +0 -48
  307. data/test/stub/rails3.0/config/environments/test.rb +0 -32
  308. data/test/stub/rails3.0/config/initializers/backtrace_silencers.rb +0 -7
  309. data/test/stub/rails3.0/config/initializers/inflections.rb +0 -10
  310. data/test/stub/rails3.0/config/initializers/mime_types.rb +0 -5
  311. data/test/stub/rails3.0/config/initializers/passenger.rb +0 -2
  312. data/test/stub/rails3.0/config/initializers/secret_token.rb +0 -7
  313. data/test/stub/rails3.0/config/initializers/session_store.rb +0 -8
  314. data/test/stub/rails3.0/config/locales/en.yml +0 -5
  315. data/test/stub/rails3.0/config/routes.rb +0 -58
  316. data/test/stub/rails3.0/db/seeds.rb +0 -7
  317. data/test/stub/rails3.0/doc/README_FOR_APP +0 -2
  318. data/test/stub/rails3.0/lib/tasks/.gitkeep +0 -0
  319. data/test/stub/rails3.0/log/.gitignore +0 -0
  320. data/test/stub/rails3.0/public/404.html +0 -26
  321. data/test/stub/rails3.0/public/422.html +0 -26
  322. data/test/stub/rails3.0/public/500.html +0 -26
  323. data/test/stub/rails3.0/public/favicon.ico +0 -0
  324. data/test/stub/rails3.0/public/index.html +0 -279
  325. data/test/stub/rails3.0/public/robots.txt +0 -5
  326. data/test/stub/rails3.0/public/stylesheets/.gitkeep +0 -0
  327. data/test/stub/rails3.0/script/rails +0 -9
  328. data/test/stub/rails3.0/test/performance/browsing_test.rb +0 -9
  329. data/test/stub/rails3.0/test/test_helper.rb +0 -13
  330. data/test/stub/rails3.0/vendor/plugins/.gitkeep +0 -0
  331. data/test/stub/rails3.1/.gitignore +0 -15
  332. data/test/stub/rails3.1/Gemfile +0 -37
  333. data/test/stub/rails3.1/Gemfile.lock +0 -115
  334. data/test/stub/rails3.1/README +0 -261
  335. data/test/stub/rails3.1/Rakefile +0 -7
  336. data/test/stub/rails3.1/app/assets/images/rails.png +0 -0
  337. data/test/stub/rails3.1/app/assets/stylesheets/application.css +0 -7
  338. data/test/stub/rails3.1/app/controllers/application_controller.rb +0 -3
  339. data/test/stub/rails3.1/app/helpers/application_helper.rb +0 -2
  340. data/test/stub/rails3.1/app/mailers/.gitkeep +0 -0
  341. data/test/stub/rails3.1/app/models/.gitkeep +0 -0
  342. data/test/stub/rails3.1/app/views/layouts/application.html.erb +0 -14
  343. data/test/stub/rails3.1/config.ru +0 -4
  344. data/test/stub/rails3.1/config/application.rb +0 -48
  345. data/test/stub/rails3.1/config/boot.rb +0 -6
  346. data/test/stub/rails3.1/config/database.yml +0 -25
  347. data/test/stub/rails3.1/config/environment.rb +0 -5
  348. data/test/stub/rails3.1/config/environments/development.rb +0 -30
  349. data/test/stub/rails3.1/config/environments/production.rb +0 -60
  350. data/test/stub/rails3.1/config/environments/test.rb +0 -39
  351. data/test/stub/rails3.1/config/initializers/backtrace_silencers.rb +0 -7
  352. data/test/stub/rails3.1/config/initializers/inflections.rb +0 -10
  353. data/test/stub/rails3.1/config/initializers/mime_types.rb +0 -5
  354. data/test/stub/rails3.1/config/initializers/passenger.rb +0 -2
  355. data/test/stub/rails3.1/config/initializers/secret_token.rb +0 -7
  356. data/test/stub/rails3.1/config/initializers/session_store.rb +0 -8
  357. data/test/stub/rails3.1/config/initializers/wrap_parameters.rb +0 -14
  358. data/test/stub/rails3.1/config/locales/en.yml +0 -5
  359. data/test/stub/rails3.1/config/routes.rb +0 -58
  360. data/test/stub/rails3.1/db/seeds.rb +0 -7
  361. data/test/stub/rails3.1/doc/README_FOR_APP +0 -2
  362. data/test/stub/rails3.1/lib/assets/.gitkeep +0 -0
  363. data/test/stub/rails3.1/lib/tasks/.gitkeep +0 -0
  364. data/test/stub/rails3.1/log/.gitkeep +0 -0
  365. data/test/stub/rails3.1/public/404.html +0 -26
  366. data/test/stub/rails3.1/public/422.html +0 -26
  367. data/test/stub/rails3.1/public/500.html +0 -26
  368. data/test/stub/rails3.1/public/favicon.ico +0 -0
  369. data/test/stub/rails3.1/public/index.html +0 -241
  370. data/test/stub/rails3.1/public/robots.txt +0 -5
  371. data/test/stub/rails3.1/script/rails +0 -6
  372. data/test/stub/rails3.1/test/fixtures/.gitkeep +0 -0
  373. data/test/stub/rails3.1/test/functional/.gitkeep +0 -0
  374. data/test/stub/rails3.1/test/integration/.gitkeep +0 -0
  375. data/test/stub/rails3.1/test/performance/browsing_test.rb +0 -12
  376. data/test/stub/rails3.1/test/test_helper.rb +0 -13
  377. data/test/stub/rails3.1/test/unit/.gitkeep +0 -0
  378. data/test/stub/rails3.1/vendor/assets/stylesheets/.gitkeep +0 -0
  379. data/test/stub/rails3.1/vendor/plugins/.gitkeep +0 -0
  380. data/test/stub/rails3.2/.gitignore +0 -15
  381. data/test/stub/rails3.2/Gemfile +0 -39
  382. data/test/stub/rails3.2/Gemfile.lock +0 -113
  383. data/test/stub/rails3.2/Rakefile +0 -7
  384. data/test/stub/rails3.2/app/assets/images/rails.png +0 -0
  385. data/test/stub/rails3.2/app/assets/stylesheets/application.css +0 -13
  386. data/test/stub/rails3.2/app/controllers/application_controller.rb +0 -3
  387. data/test/stub/rails3.2/app/helpers/application_helper.rb +0 -2
  388. data/test/stub/rails3.2/app/mailers/.gitkeep +0 -0
  389. data/test/stub/rails3.2/app/models/.gitkeep +0 -0
  390. data/test/stub/rails3.2/app/views/layouts/application.html.erb +0 -14
  391. data/test/stub/rails3.2/config.ru +0 -4
  392. data/test/stub/rails3.2/config/application.rb +0 -62
  393. data/test/stub/rails3.2/config/boot.rb +0 -6
  394. data/test/stub/rails3.2/config/database.yml +0 -25
  395. data/test/stub/rails3.2/config/environment.rb +0 -5
  396. data/test/stub/rails3.2/config/environments/development.rb +0 -37
  397. data/test/stub/rails3.2/config/environments/production.rb +0 -67
  398. data/test/stub/rails3.2/config/environments/test.rb +0 -37
  399. data/test/stub/rails3.2/config/initializers/backtrace_silencers.rb +0 -7
  400. data/test/stub/rails3.2/config/initializers/inflections.rb +0 -15
  401. data/test/stub/rails3.2/config/initializers/mime_types.rb +0 -5
  402. data/test/stub/rails3.2/config/initializers/passenger.rb +0 -2
  403. data/test/stub/rails3.2/config/initializers/secret_token.rb +0 -7
  404. data/test/stub/rails3.2/config/initializers/session_store.rb +0 -8
  405. data/test/stub/rails3.2/config/initializers/wrap_parameters.rb +0 -14
  406. data/test/stub/rails3.2/config/locales/en.yml +0 -5
  407. data/test/stub/rails3.2/config/routes.rb +0 -58
  408. data/test/stub/rails3.2/db/seeds.rb +0 -7
  409. data/test/stub/rails3.2/doc/README_FOR_APP +0 -2
  410. data/test/stub/rails3.2/lib/assets/.gitkeep +0 -0
  411. data/test/stub/rails3.2/lib/tasks/.gitkeep +0 -0
  412. data/test/stub/rails3.2/log/.gitkeep +0 -0
  413. data/test/stub/rails3.2/public/404.html +0 -26
  414. data/test/stub/rails3.2/public/422.html +0 -26
  415. data/test/stub/rails3.2/public/500.html +0 -25
  416. data/test/stub/rails3.2/public/favicon.ico +0 -0
  417. data/test/stub/rails3.2/public/index.html +0 -241
  418. data/test/stub/rails3.2/public/robots.txt +0 -5
  419. data/test/stub/rails3.2/script/rails +0 -6
  420. data/test/stub/rails3.2/test/fixtures/.gitkeep +0 -0
  421. data/test/stub/rails3.2/test/functional/.gitkeep +0 -0
  422. data/test/stub/rails3.2/test/integration/.gitkeep +0 -0
  423. data/test/stub/rails3.2/test/performance/browsing_test.rb +0 -12
  424. data/test/stub/rails3.2/test/test_helper.rb +0 -13
  425. data/test/stub/rails3.2/test/unit/.gitkeep +0 -0
  426. data/test/stub/rails3.2/vendor/assets/stylesheets/.gitkeep +0 -0
  427. data/test/stub/rails3.2/vendor/plugins/.gitkeep +0 -0
  428. data/test/stub/rails4.0/.gitignore +0 -16
  429. data/test/stub/rails4.0/Gemfile +0 -45
  430. data/test/stub/rails4.0/Gemfile.lock +0 -126
  431. data/test/stub/rails4.0/README.rdoc +0 -28
  432. data/test/stub/rails4.0/Rakefile +0 -6
  433. data/test/stub/rails4.0/app/assets/images/.keep +0 -0
  434. data/test/stub/rails4.0/app/assets/javascripts/application.js +0 -16
  435. data/test/stub/rails4.0/app/assets/stylesheets/application.css +0 -13
  436. data/test/stub/rails4.0/app/controllers/application_controller.rb +0 -5
  437. data/test/stub/rails4.0/app/controllers/concerns/.keep +0 -0
  438. data/test/stub/rails4.0/app/helpers/application_helper.rb +0 -2
  439. data/test/stub/rails4.0/app/mailers/.keep +0 -0
  440. data/test/stub/rails4.0/app/models/.keep +0 -0
  441. data/test/stub/rails4.0/app/models/concerns/.keep +0 -0
  442. data/test/stub/rails4.0/app/views/layouts/application.html.erb +0 -14
  443. data/test/stub/rails4.0/bin/bundle +0 -3
  444. data/test/stub/rails4.0/bin/rails +0 -4
  445. data/test/stub/rails4.0/bin/rake +0 -4
  446. data/test/stub/rails4.0/config.ru +0 -4
  447. data/test/stub/rails4.0/config/application.rb +0 -23
  448. data/test/stub/rails4.0/config/boot.rb +0 -4
  449. data/test/stub/rails4.0/config/database.yml +0 -25
  450. data/test/stub/rails4.0/config/environment.rb +0 -5
  451. data/test/stub/rails4.0/config/environments/development.rb +0 -29
  452. data/test/stub/rails4.0/config/environments/production.rb +0 -80
  453. data/test/stub/rails4.0/config/environments/test.rb +0 -36
  454. data/test/stub/rails4.0/config/initializers/backtrace_silencers.rb +0 -7
  455. data/test/stub/rails4.0/config/initializers/filter_parameter_logging.rb +0 -4
  456. data/test/stub/rails4.0/config/initializers/inflections.rb +0 -16
  457. data/test/stub/rails4.0/config/initializers/mime_types.rb +0 -5
  458. data/test/stub/rails4.0/config/initializers/passenger.rb +0 -2
  459. data/test/stub/rails4.0/config/initializers/secret_token.rb +0 -12
  460. data/test/stub/rails4.0/config/initializers/session_store.rb +0 -3
  461. data/test/stub/rails4.0/config/initializers/wrap_parameters.rb +0 -14
  462. data/test/stub/rails4.0/config/locales/en.yml +0 -23
  463. data/test/stub/rails4.0/config/routes.rb +0 -57
  464. data/test/stub/rails4.0/db/seeds.rb +0 -7
  465. data/test/stub/rails4.0/lib/assets/.keep +0 -0
  466. data/test/stub/rails4.0/lib/tasks/.keep +0 -0
  467. data/test/stub/rails4.0/log/.keep +0 -0
  468. data/test/stub/rails4.0/public/404.html +0 -58
  469. data/test/stub/rails4.0/public/422.html +0 -58
  470. data/test/stub/rails4.0/public/500.html +0 -57
  471. data/test/stub/rails4.0/public/favicon.ico +0 -0
  472. data/test/stub/rails4.0/public/robots.txt +0 -5
  473. data/test/stub/rails4.0/test/controllers/.keep +0 -0
  474. data/test/stub/rails4.0/test/fixtures/.keep +0 -0
  475. data/test/stub/rails4.0/test/helpers/.keep +0 -0
  476. data/test/stub/rails4.0/test/integration/.keep +0 -0
  477. data/test/stub/rails4.0/test/mailers/.keep +0 -0
  478. data/test/stub/rails4.0/test/models/.keep +0 -0
  479. data/test/stub/rails4.0/test/test_helper.rb +0 -15
  480. data/test/stub/rails4.0/vendor/assets/javascripts/.keep +0 -0
  481. data/test/stub/rails4.0/vendor/assets/stylesheets/.keep +0 -0
  482. data/test/stub/rails4.1/.gitignore +0 -16
  483. data/test/stub/rails4.1/Gemfile +0 -45
  484. data/test/stub/rails4.1/Gemfile.lock +0 -129
  485. data/test/stub/rails4.1/README.rdoc +0 -28
  486. data/test/stub/rails4.1/Rakefile +0 -6
  487. data/test/stub/rails4.1/app/assets/images/.keep +0 -0
  488. data/test/stub/rails4.1/app/assets/javascripts/application.js +0 -16
  489. data/test/stub/rails4.1/app/assets/stylesheets/application.css +0 -13
  490. data/test/stub/rails4.1/app/controllers/application_controller.rb +0 -5
  491. data/test/stub/rails4.1/app/controllers/concerns/.keep +0 -0
  492. data/test/stub/rails4.1/app/helpers/application_helper.rb +0 -2
  493. data/test/stub/rails4.1/app/mailers/.keep +0 -0
  494. data/test/stub/rails4.1/app/models/.keep +0 -0
  495. data/test/stub/rails4.1/app/models/concerns/.keep +0 -0
  496. data/test/stub/rails4.1/app/views/layouts/application.html.erb +0 -14
  497. data/test/stub/rails4.1/bin/bundle +0 -3
  498. data/test/stub/rails4.1/bin/rails +0 -4
  499. data/test/stub/rails4.1/bin/rake +0 -4
  500. data/test/stub/rails4.1/config.ru +0 -4
  501. data/test/stub/rails4.1/config/application.rb +0 -23
  502. data/test/stub/rails4.1/config/boot.rb +0 -4
  503. data/test/stub/rails4.1/config/database.yml +0 -25
  504. data/test/stub/rails4.1/config/environment.rb +0 -5
  505. data/test/stub/rails4.1/config/environments/development.rb +0 -29
  506. data/test/stub/rails4.1/config/environments/production.rb +0 -80
  507. data/test/stub/rails4.1/config/environments/test.rb +0 -36
  508. data/test/stub/rails4.1/config/initializers/backtrace_silencers.rb +0 -7
  509. data/test/stub/rails4.1/config/initializers/filter_parameter_logging.rb +0 -4
  510. data/test/stub/rails4.1/config/initializers/inflections.rb +0 -16
  511. data/test/stub/rails4.1/config/initializers/mime_types.rb +0 -5
  512. data/test/stub/rails4.1/config/initializers/passenger.rb +0 -5
  513. data/test/stub/rails4.1/config/initializers/secret_token.rb +0 -12
  514. data/test/stub/rails4.1/config/initializers/session_store.rb +0 -3
  515. data/test/stub/rails4.1/config/initializers/wrap_parameters.rb +0 -14
  516. data/test/stub/rails4.1/config/locales/en.yml +0 -23
  517. data/test/stub/rails4.1/config/routes.rb +0 -57
  518. data/test/stub/rails4.1/db/seeds.rb +0 -7
  519. data/test/stub/rails4.1/lib/assets/.keep +0 -0
  520. data/test/stub/rails4.1/lib/tasks/.keep +0 -0
  521. data/test/stub/rails4.1/log/.keep +0 -0
  522. data/test/stub/rails4.1/public/404.html +0 -58
  523. data/test/stub/rails4.1/public/422.html +0 -58
  524. data/test/stub/rails4.1/public/500.html +0 -57
  525. data/test/stub/rails4.1/public/favicon.ico +0 -0
  526. data/test/stub/rails4.1/public/robots.txt +0 -5
  527. data/test/stub/rails4.1/test/controllers/.keep +0 -0
  528. data/test/stub/rails4.1/test/fixtures/.keep +0 -0
  529. data/test/stub/rails4.1/test/helpers/.keep +0 -0
  530. data/test/stub/rails4.1/test/integration/.keep +0 -0
  531. data/test/stub/rails4.1/test/mailers/.keep +0 -0
  532. data/test/stub/rails4.1/test/models/.keep +0 -0
  533. data/test/stub/rails4.1/test/test_helper.rb +0 -15
  534. data/test/stub/rails4.1/vendor/assets/javascripts/.keep +0 -0
  535. data/test/stub/rails4.1/vendor/assets/stylesheets/.keep +0 -0
  536. data/test/stub/start_error.pl +0 -24
  537. data/test/stub/upload_data.txt +0 -494
  538. data/test/stub/wsgi/passenger_wsgi.py +0 -212
  539. data/test/stub/wsgi/public/.gitignore +0 -0
  540. data/test/stub/wsgi/tmp/.gitignore +0 -0
  541. data/test/support/allocate_memory.c +0 -14
  542. data/test/support/apache2_controller.rb +0 -258
  543. data/test/support/multipart.rb +0 -62
  544. data/test/support/nginx_controller.rb +0 -97
  545. data/test/support/placebo-preloader.rb +0 -88
  546. data/test/support/test_helper.rb +0 -455
  547. data/test/support/valgrind.h +0 -2539
  548. data/test/tut/tut.h +0 -1310
  549. data/test/tut/tut_reporter.h +0 -256
  550. data/test/valgrind-osx.supp +0 -7
@@ -1,201 +0,0 @@
1
- # Phusion Passenger - https://www.phusionpassenger.com/
2
- # Copyright (c) 2013-2014 Phusion
3
- #
4
- # "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
5
- #
6
- # Permission is hereby granted, free of charge, to any person obtaining a copy
7
- # of this software and associated documentation files (the "Software"), to deal
8
- # in the Software without restriction, including without limitation the rights
9
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- # copies of the Software, and to permit persons to whom the Software is
11
- # furnished to do so, subject to the following conditions:
12
- #
13
- # The above copyright notice and this permission notice shall be included in
14
- # all copies or substantial portions of the Software.
15
- #
16
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
- # THE SOFTWARE.
23
-
24
- SOURCE_ROOT = File.expand_path("../..", File.dirname(__FILE__))
25
- Dir.chdir(SOURCE_ROOT)
26
- $LOAD_PATH.unshift("#{SOURCE_ROOT}/lib")
27
- require 'phusion_passenger'
28
- PhusionPassenger.locate_directories
29
- PhusionPassenger.require_passenger_lib 'packaging'
30
- require 'rubygems'
31
- require 'tmpdir'
32
- require 'fileutils'
33
- require 'yaml'
34
-
35
- PACKAGE_NAME = PhusionPassenger::PACKAGE_NAME
36
- VERSION = PhusionPassenger::VERSION_STRING
37
- if RUBY_PLATFORM =~ /linux/
38
- TAR = "tar --warning=none"
39
- else
40
- TAR = "tar"
41
- end
42
-
43
- def sh(*command)
44
- if !system(*command)
45
- abort "Command failed: #{command.join(' ')}"
46
- end
47
- end
48
-
49
- shared_examples_for "a proper package" do
50
- it "includes all files in the git repository" do
51
- git_files = `git ls-files`.split("\n")
52
- git_files.reject! { |filename| filename =~ /^Passenger.xcodeproj\// }
53
- git_files.delete(".gitmodules")
54
- git_files.delete("packaging/rpm")
55
- git_files.delete("ext/libeio/eio.3")
56
- git_files.delete("ext/libeio/eio.pod")
57
-
58
- package_files = {}
59
- Dir.chdir(@pkg_contents_dir) do
60
- `find .`.split("\n").each do |filename|
61
- filename.sub!(/^.\//, '')
62
- if !File.directory?(filename)
63
- package_files[filename] = true
64
- end
65
- end
66
- end
67
-
68
- error = false
69
- git_files.each do |filename|
70
- if !package_files[filename]
71
- error = true
72
- puts "File \"#{filename}\" is not in the package"
73
- end
74
- end
75
- raise "Some files are not in the package" if error
76
- end
77
-
78
- it "includes documentation HTML files" do
79
- File.exist?("#{@pkg_contents_dir}/doc/Users guide Apache.html").should be_true
80
- File.exist?("#{@pkg_contents_dir}/doc/Users guide Nginx.html").should be_true
81
- File.exist?("#{@pkg_contents_dir}/doc/Users guide Standalone.html").should be_true
82
- end
83
- end
84
-
85
- shared_examples_for "a user-generated package" do
86
- it "isn't marked official" do
87
- File.exist?("#{@pkg_contents_dir}/resources/release.txt").should be_false
88
- end
89
- end
90
-
91
- shared_examples_for "an official package" do
92
- it "is marked official" do
93
- File.exist?("#{@pkg_contents_dir}/resources/release.txt").should be_true
94
- end
95
- end
96
-
97
- describe "A user-generated gem" do
98
- before :all do
99
- ENV['PKG_DIR'] = @temp_dir = Dir.mktmpdir
100
- basename = "#{PACKAGE_NAME}-#{VERSION}"
101
- @pkg_contents_dir = "#{@temp_dir}/#{basename}"
102
- Dir.chdir(SOURCE_ROOT) do
103
- sh "rake", *PhusionPassenger::Packaging::PREGENERATED_FILES
104
- sh "gem build #{PACKAGE_NAME}.gemspec"
105
- sh "mv #{PACKAGE_NAME}-#{VERSION}.gem #{@temp_dir}/"
106
- end
107
- Dir.chdir(@temp_dir) do
108
- sh "#{TAR} -xf #{basename}.gem"
109
- sh "mkdir #{basename}"
110
- sh "gunzip metadata.gz"
111
- Dir.chdir(basename) do
112
- sh "#{TAR} -xzf ../data.tar.gz"
113
- end
114
- end
115
- end
116
-
117
- after :all do
118
- ENV.delete('PKG_DIR')
119
- FileUtils.remove_entry_secure(@temp_dir)
120
- end
121
-
122
- it_behaves_like "a proper package"
123
- it_behaves_like "a user-generated package"
124
-
125
- it "doesn't invoke the binaries downloader upon gem installation" do
126
- spec = YAML.load_file("#{@temp_dir}/metadata")
127
- spec.extensions.should be_empty
128
- end
129
- end
130
-
131
- describe "A user-generated tarball" do
132
- before :all do
133
- ENV['PKG_DIR'] = @temp_dir = Dir.mktmpdir
134
- basename = "#{PACKAGE_NAME}-#{VERSION}"
135
- @pkg_contents_dir = "#{@temp_dir}/#{basename}"
136
- sh "rake package:tarball"
137
- Dir.chdir(@temp_dir) do
138
- sh "#{TAR} -xzf #{basename}.tar.gz"
139
- end
140
- end
141
-
142
- after :all do
143
- ENV.delete('PKG_DIR')
144
- FileUtils.remove_entry_secure(@temp_dir)
145
- end
146
-
147
- it_behaves_like "a proper package"
148
- it_behaves_like "a user-generated package"
149
- end
150
-
151
- describe "An officially-generated gem" do
152
- before :all do
153
- ENV['PKG_DIR'] = @temp_dir = Dir.mktmpdir
154
- basename = "#{PACKAGE_NAME}-#{VERSION}"
155
- @pkg_contents_dir = "#{@temp_dir}/#{basename}"
156
- Dir.chdir(SOURCE_ROOT) do
157
- sh "rake package:set_official package:gem SKIP_SIGNING=1"
158
- end
159
- Dir.chdir(@temp_dir) do
160
- sh "#{TAR} -xf #{basename}.gem"
161
- sh "mkdir #{basename}"
162
- sh "gunzip metadata.gz"
163
- Dir.chdir(basename) do
164
- sh "#{TAR} -xzf ../data.tar.gz"
165
- end
166
- end
167
- end
168
-
169
- after :all do
170
- ENV.delete('PKG_DIR')
171
- FileUtils.remove_entry_secure(@temp_dir)
172
- end
173
-
174
- it_behaves_like "a proper package"
175
- it_behaves_like "an official package"
176
-
177
- it "invokes the binaries downloader upon gem installation" do
178
- spec = YAML.load_file("#{@temp_dir}/metadata")
179
- spec.extensions.should_not be_empty
180
- end
181
- end
182
-
183
- describe "An officially-generated tarball" do
184
- before :all do
185
- ENV['PKG_DIR'] = @temp_dir = Dir.mktmpdir
186
- basename = "#{PACKAGE_NAME}-#{VERSION}"
187
- @pkg_contents_dir = "#{@temp_dir}/#{basename}"
188
- sh "rake package:set_official package:tarball"
189
- Dir.chdir(@temp_dir) do
190
- sh "#{TAR} -xzf #{basename}.tar.gz"
191
- end
192
- end
193
-
194
- after :all do
195
- ENV.delete('PKG_DIR')
196
- FileUtils.remove_entry_secure(@temp_dir)
197
- end
198
-
199
- it_behaves_like "a proper package"
200
- it_behaves_like "an official package"
201
- end
@@ -1,22 +0,0 @@
1
- source_root = File.expand_path(File.dirname(__FILE__) + "/../..")
2
- Dir.chdir("#{source_root}/test")
3
-
4
- require 'rubygems'
5
- require 'json'
6
- begin
7
- CONFIG = JSON.load(File.read('config.json'))
8
- rescue Errno::ENOENT
9
- STDERR.puts "*** You do not have the file test/config.json. " <<
10
- "Please copy test/config.json.example to " <<
11
- "test/config.json, and edit it."
12
- exit 1
13
- end
14
-
15
- $LOAD_PATH.unshift("#{source_root}/lib")
16
- $LOAD_PATH.unshift("#{source_root}/test")
17
-
18
- require 'phusion_passenger'
19
- PhusionPassenger.locate_directories
20
- require 'support/test_helper'
21
-
22
- include TestHelper
@@ -1,392 +0,0 @@
1
- source_root = File.expand_path("../..", File.dirname(__FILE__))
2
- $LOAD_PATH.unshift("#{source_root}/lib")
3
- require 'phusion_passenger'
4
- PhusionPassenger.locate_directories
5
- PhusionPassenger.require_passenger_lib 'constants'
6
- PhusionPassenger.require_passenger_lib 'platform_info/binary_compatibility'
7
- require 'tmpdir'
8
- require 'fileutils'
9
- require 'webrick'
10
- require 'thread'
11
- require 'open-uri'
12
-
13
- ENV['PATH'] = "#{PhusionPassenger.bin_dir}:#{ENV['PATH']}"
14
- # This environment variable changes Passenger Standalone's behavior,
15
- # so ensure that it's not set.
16
- ENV.delete('PASSENGER_DEBUG')
17
- ENV['PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY'] = '0'
18
- ENV['PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY'] = '0'
19
-
20
- module PhusionPassenger
21
-
22
- describe "Passenger Standalone" do
23
- let(:version) { PhusionPassenger::VERSION_STRING }
24
- let(:nginx_version) { PhusionPassenger::PREFERRED_NGINX_VERSION }
25
- let(:compat_id) { PhusionPassenger::PlatformInfo.cxx_binary_compatibility_id }
26
-
27
- def sh(*command)
28
- if !system(*command)
29
- abort "Command failed: #{command.join(' ')}"
30
- end
31
- end
32
-
33
- def capture_output(command)
34
- output = `#{command} 2>&1`.strip
35
- if $?.exitstatus == 0
36
- return output
37
- else
38
- abort "Command #{command} exited with status #{$?.exitstatus}; output:\n#{output}"
39
- end
40
- end
41
-
42
- def start_server(document_root)
43
- server = WEBrick::HTTPServer.new(:BindAddress => '127.0.0.1',
44
- :Port => 0,
45
- :DocumentRoot => document_root,
46
- :Logger => WEBrick::Log.new("/dev/null"),
47
- :AccessLog => [])
48
- Thread.new do
49
- Thread.current.abort_on_exception = true
50
- server.start
51
- end
52
- [server, "http://127.0.0.1:#{server.config[:Port]}"]
53
- end
54
-
55
- def create_tarball(filename, contents = nil)
56
- filename = File.expand_path(filename)
57
- Dir.mktmpdir("tarball-") do |tarball_dir|
58
- Dir.chdir(tarball_dir) do
59
- if block_given?
60
- yield
61
- else
62
- contents.each do |content_name|
63
- create_file(content_name)
64
- end
65
- end
66
- sh "tar", "-czf", filename, "."
67
- end
68
- end
69
- end
70
-
71
- def create_dummy_support_binaries
72
- Dir.mkdir("support-binaries") if !File.exist?("support-binaries")
73
- File.open("support-binaries/#{AGENT_EXE}", "w") do |f|
74
- f.puts "#!/bin/bash"
75
- f.puts "echo PASS"
76
- end
77
- File.chmod(0755, "support-binaries/#{AGENT_EXE}")
78
- end
79
-
80
- def create_dummy_nginx_binary
81
- File.open("PassengerWebHelper", "w") do |f|
82
- f.puts "#!/bin/bash"
83
- f.puts "echo nginx version: 1.0.0"
84
- end
85
- File.chmod(0755, "PassengerWebHelper")
86
- end
87
-
88
- def create_file(filename, contents = nil)
89
- File.open(filename, "wb") do |f|
90
- f.write(contents) if contents
91
- end
92
- end
93
-
94
- specify "invoking 'passenger' without an argument is equivalent to 'passenger help'" do
95
- output = capture_output("passenger")
96
- output.should == capture_output("passenger help")
97
- end
98
-
99
- specify "'passenger --help' is equivalent to 'passenger help'" do
100
- output = capture_output("passenger")
101
- output.should == capture_output("passenger help")
102
- end
103
-
104
- specify "'passenger --version' displays the version number" do
105
- output = capture_output("passenger --version")
106
- output.should include("version #{PhusionPassenger::VERSION_STRING}\n")
107
- end
108
-
109
- describe "start command" do
110
- AGENT_BINARY_DOWNLOAD_MESSAGE = "--> Downloading a #{PROGRAM_NAME} agent binary for your platform"
111
- AGENT_BINARY_COMPILE_MESSAGE = "Compiling #{PROGRAM_NAME} agent"
112
- NGINX_BINARY_INSTALL_MESSAGE = "Installing Nginx"
113
-
114
- def test_serving_application(passenger_command)
115
- Dir.mktmpdir do |tmpdir|
116
- Dir.chdir(tmpdir) do
117
- File.open("config.ru", "w") do |f|
118
- f.write(%Q{
119
- app = lambda do |env|
120
- [200, { "Content-Type" => "text/plain" }, ["ok"]]
121
- end
122
- run app
123
- })
124
- end
125
- Dir.mkdir("public")
126
- Dir.mkdir("tmp")
127
- sh("#{passenger_command} -p 4000 -d --disable-turbocaching >/dev/null")
128
- begin
129
- open("http://127.0.0.1:4000/") do |f|
130
- f.read.should == "ok"
131
- end
132
- ensure
133
- sh("passenger stop -p 4000")
134
- end
135
- end
136
- end
137
- end
138
-
139
- context "if the runtime is not installed" do
140
- before :each do
141
- @user_dir = File.expand_path("~/#{USER_NAMESPACE_DIRNAME}")
142
- if File.exist?("buildout.old")
143
- raise "buildout.old exists. Please fix this first."
144
- end
145
- if File.exist?("#{@user_dir}.old")
146
- raise "#{@user_dir} exists. Please fix this first."
147
- end
148
- if PhusionPassenger.build_system_dir
149
- FileUtils.mv("#{PhusionPassenger.build_system_dir}/buildout",
150
- "#{PhusionPassenger.build_system_dir}/buildout.old")
151
- end
152
- if File.exist?(@user_dir)
153
- FileUtils.mv(@user_dir, "#{@user_dir}.old")
154
- end
155
- end
156
-
157
- after :each do
158
- FileUtils.rm_rf("#{PhusionPassenger.build_system_dir}/buildout")
159
- FileUtils.rm_rf(@user_dir)
160
- if PhusionPassenger.build_system_dir
161
- FileUtils.mv("#{PhusionPassenger.build_system_dir}/buildout.old",
162
- "#{PhusionPassenger.build_system_dir}/buildout")
163
- end
164
- if File.exist?("#{@user_dir}.old")
165
- FileUtils.mv("#{@user_dir}.old", @user_dir)
166
- end
167
- end
168
-
169
- context "when natively packaged" do
170
- it "tries to install the runtime" do
171
- command = "passenger start --no-install-runtime --runtime-check-only"
172
- `#{command} 2>&1`.should include("Refusing to install")
173
- end
174
-
175
- it "starts a server which serves the application" do
176
- output = capture_output("passenger start --runtime-check-only")
177
- output.should include(AGENT_BINARY_DOWNLOAD_MESSAGE)
178
- output.should include(NGINX_BINARY_INSTALL_MESSAGE)
179
- test_serving_application("passenger start")
180
- end
181
- end
182
-
183
- context "when custom packaged" do
184
- before :each do
185
- @tmpdir = Dir.mktmpdir
186
- sh "passenger-config --make-locations-ini --for-packaging-method=deb " +
187
- "> '#{@tmpdir}/locations.ini'"
188
- ENV['PASSENGER_LOCATION_CONFIGURATION_FILE'] = "#{@tmpdir}/locations.ini"
189
- end
190
-
191
- after :each do
192
- ENV.delete('PASSENGER_LOCATION_CONFIGURATION_FILE')
193
- FileUtils.remove_entry_secure(@tmpdir)
194
- end
195
-
196
- it "tries to install the runtime" do
197
- command = "passenger start --no-install-runtime --runtime-check-only"
198
- `#{command} 2>&1`.should include("Refusing to install")
199
- end
200
-
201
- it "starts a server which serves the application" do
202
- output = capture_output("passenger start --runtime-check-only")
203
- output.should include(AGENT_BINARY_DOWNLOAD_MESSAGE)
204
- output.should include(NGINX_BINARY_INSTALL_MESSAGE)
205
- test_serving_application("passenger start")
206
- end
207
- end
208
-
209
- # TODO: move these tests to config/install_standalone_runtime_command_spec.rb
210
-
211
- # before :each do
212
- # @runtime_dir = Dir.mktmpdir
213
- # @webroot = Dir.mktmpdir
214
- # @server, @base_url = start_server(@webroot)
215
-
216
- # Dir.mkdir("#{@webroot}/#{version}")
217
- # Dir.chdir("#{@webroot}/#{version}") do
218
- # create_tarball("webhelper-#{nginx_version}-#{compat_id}.tar.gz") do
219
- # create_dummy_nginx_binary
220
- # end
221
- # create_tarball("support-#{compat_id}.tar.gz") do
222
- # FileUtils.mkdir_p("support-binaries")
223
- # FileUtils.mkdir_p("common/libpassenger_common/ApplicationPool2")
224
- # create_file("common/libboost_oxt.a")
225
- # create_file("common/libpassenger_common/ApplicationPool2/Implementation.o")
226
- # create_dummy_support_binaries
227
- # end
228
- # end
229
-
230
- # create_file("#{PhusionPassenger.resources_dir}/release.txt")
231
- # end
232
-
233
- # after :each do
234
- # @server.stop
235
- # File.unlink("#{PhusionPassenger.resources_dir}/release.txt")
236
- # FileUtils.remove_entry_secure(@webroot)
237
- # FileUtils.remove_entry_secure(@runtime_dir)
238
- # end
239
-
240
- # context "when originally packaged" do
241
- # it "downloads binaries from the Internet" do
242
- # @output = capture_output("passenger start " +
243
- # "--runtime-dir '#{@runtime_dir}' " +
244
- # "--runtime-check-only " +
245
- # "--binaries-url-root '#{@base_url}'")
246
- # @output.should include(SUPPORT_BINARIES_DOWNLOAD_MESSAGE)
247
- # @output.should include(NGINX_BINARY_DOWNLOAD_MESSAGE)
248
- # @output.should_not include(NGINX_SOURCE_DOWNLOAD_MESSAGE)
249
- # @output.should_not include(COMPILING_MESSAGE)
250
- # end
251
-
252
- # it "builds the runtime if downloading fails" do
253
- # # Yes, we're testing the entire build system here.
254
- # command = "passenger start " +
255
- # "--runtime-dir '#{@runtime_dir}' " +
256
- # "--binaries-url-root '#{@base_url}/wrong'"
257
- # @output = capture_output("#{command} --runtime-check-only")
258
- # @output.should include(SUPPORT_BINARIES_DOWNLOAD_MESSAGE)
259
- # @output.should include(NGINX_BINARY_DOWNLOAD_MESSAGE)
260
- # @output.should include(NGINX_SOURCE_DOWNLOAD_MESSAGE)
261
- # @output.should include(COMPILING_MESSAGE)
262
-
263
- # test_serving_application(command)
264
- # end
265
-
266
- # specify "if the downloaded support binaries work but the downloaded web helper binary doesn't, " +
267
- # "and web helper compilation doesn't succeed the first time, then web helper compilation " +
268
- # "succeeds the second time" do
269
- # Dir.chdir("#{@webroot}/#{version}") do
270
- # create_tarball("support-#{compat_id}.tar.gz") do
271
- # FileUtils.cp_r(Dir["#{PhusionPassenger.build_system_dir}/buildout/*"],
272
- # ".")
273
- # end
274
- # create_tarball("webhelper-#{nginx_version}-#{compat_id}.tar.gz") do
275
- # create_file("PassengerWebHelper",
276
- # "#!/bin/sh\n" +
277
- # "exit 1\n")
278
- # end
279
- # end
280
-
281
- # # Temporarily make Passenger Standalone think our runtime is
282
- # # not compiled.
283
- # File.rename("#{PhusionPassenger.build_system_dir}/buildout",
284
- # "#{PhusionPassenger.build_system_dir}/buildout.renamed")
285
- # begin
286
- # command = "passenger start " +
287
- # "--runtime-dir '#{@runtime_dir}' " +
288
- # "--binaries-url-root '#{@base_url}'"
289
-
290
- # @output = `#{command} --runtime-check-only --no-compile-runtime 2>&1`
291
- # $?.exitstatus.should_not == 0
292
- # @output.should include(SUPPORT_BINARIES_DOWNLOAD_MESSAGE)
293
- # @output.should include("All good\n")
294
- # @output.should include(NGINX_BINARY_DOWNLOAD_MESSAGE)
295
- # @output.should include("Not usable, will compile from source")
296
- # @output.should include("Refusing to compile the Phusion Passenger Standalone runtime")
297
-
298
- # @output = capture_output("#{command} --runtime-check-only")
299
- # @output.should include(NGINX_SOURCE_DOWNLOAD_MESSAGE)
300
- # @output.should include(COMPILING_MESSAGE)
301
- # File.exist?("#{PhusionPassenger.build_system_dir}/buildout").should be_false
302
-
303
- # test_serving_application("#{command} --no-compile-runtime")
304
- # File.exist?("#{PhusionPassenger.build_system_dir}/buildout").should be_false
305
- # ensure
306
- # FileUtils.rm_rf("#{PhusionPassenger.build_system_dir}/buildout")
307
- # File.rename("#{PhusionPassenger.build_system_dir}/buildout.renamed",
308
- # "#{PhusionPassenger.build_system_dir}/buildout")
309
- # end
310
- # end
311
- # end
312
-
313
- # context "when custom packaged" do
314
- # before :each do
315
- # sh "passenger-config --make-locations-ini --for-packaging-method=deb " +
316
- # "> '#{@runtime_dir}/locations.ini'"
317
- # ENV['PASSENGER_LOCATION_CONFIGURATION_FILE'] = "#{@runtime_dir}/locations.ini"
318
- # create_file("#{PhusionPassenger.lib_dir}/PassengerWebHelper")
319
- # end
320
-
321
- # after :each do
322
- # ENV.delete('PASSENGER_LOCATION_CONFIGURATION_FILE')
323
- # File.unlink("#{PhusionPassenger.lib_dir}/PassengerWebHelper")
324
- # end
325
-
326
- # it "downloads only the Nginx binary from the Internet" do
327
- # File.rename("#{@webroot}/#{version}/webhelper-#{nginx_version}-#{compat_id}.tar.gz",
328
- # "#{@webroot}/#{version}/webhelper-0.0.1-#{compat_id}.tar.gz")
329
- # @output = capture_output("passenger start " +
330
- # "--runtime-dir '#{@runtime_dir}' " +
331
- # "--runtime-check-only " +
332
- # "--binaries-url-root '#{@base_url}' " +
333
- # "--nginx-version 0.0.1")
334
- # @output.should_not include(SUPPORT_BINARIES_DOWNLOAD_MESSAGE)
335
- # @output.should include(NGINX_BINARY_DOWNLOAD_MESSAGE)
336
- # @output.should_not include(NGINX_SOURCE_DOWNLOAD_MESSAGE)
337
- # @output.should_not include(COMPILING_MESSAGE)
338
- # end
339
-
340
- # it "only builds Nginx if downloading fails" do
341
- # # Yes, we're testing the build system here.
342
- # command = "passenger start " +
343
- # "--runtime-dir '#{@runtime_dir}' " +
344
- # "--binaries-url-root '#{@base_url}' " +
345
- # "--nginx-version 1.4.1"
346
- # @output = capture_output("#{command} --runtime-check-only")
347
- # @output.should_not include(SUPPORT_BINARIES_DOWNLOAD_MESSAGE)
348
- # @output.should include(NGINX_BINARY_DOWNLOAD_MESSAGE)
349
- # @output.should include(NGINX_SOURCE_DOWNLOAD_MESSAGE)
350
- # @output.should include(COMPILING_MESSAGE)
351
-
352
- # test_serving_application(command)
353
- # end
354
- # end
355
- end
356
-
357
- context "if the runtime is installed" do
358
- before :all do
359
- capture_output("passenger-config compile-nginx-engine")
360
- end
361
-
362
- it "doesn't download the runtime from the Internet" do
363
- command = "passenger start --no-install-runtime --runtime-check-only"
364
- capture_output(command).should_not include(AGENT_BINARY_DOWNLOAD_MESSAGE)
365
- end
366
-
367
- it "doesn't build the runtime" do
368
- command = "passenger start --no-install-runtime --runtime-check-only"
369
- capture_output(command).should_not include(AGENT_BINARY_COMPILE_MESSAGE)
370
- end
371
-
372
- it "starts a server which serves the application" do
373
- test_serving_application("passenger start")
374
- end
375
- end
376
-
377
- it "daemonizes if -d is given" do
378
- # Earlier tests already test this. This empty test here
379
- # is merely to show the intent of the tests, and to
380
- # speed up the test suite by preventing an unnecessary
381
- # compilation.
382
- end
383
- end
384
-
385
- describe "help command" do
386
- it "displays the available commands" do
387
- capture_output("passenger help").should include("Available commands:")
388
- end
389
- end
390
- end
391
-
392
- end # module PhusionPassenger