passenger 5.0.4 → 5.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- checksums.yaml +8 -8
- checksums.yaml.gz.asc +7 -7
- data.tar.gz.asc +7 -7
- data/.editorconfig +10 -0
- data/CHANGELOG +21 -0
- data/build/agents.rb +2 -2
- data/build/apache2.rb +6 -5
- data/build/common_library.rb +22 -7
- data/build/cxx_tests.rb +0 -3
- data/build/misc.rb +1 -1
- data/dev/parse_file_descriptor_log +119 -0
- data/doc/CloudLicensingConfiguration.html +387 -0
- data/doc/Design and Architecture.html +2430 -0
- data/doc/Packaging.html +488 -0
- data/doc/Security of user switching support.html +1833 -0
- data/doc/ServerOptimizationGuide.html +659 -0
- data/doc/ServerOptimizationGuide.txt.md +8 -0
- data/doc/Users guide Apache.html +9116 -0
- data/doc/Users guide Apache.idmap.txt +6 -2
- data/doc/Users guide Apache.txt +26 -7
- data/doc/Users guide Nginx.html +9025 -0
- data/doc/Users guide Nginx.idmap.txt +7 -3
- data/doc/Users guide Nginx.txt +29 -6
- data/doc/Users guide Standalone.html +3983 -0
- data/doc/Users guide.html +1748 -0
- data/doc/users_guide_snippets/installation.txt +4 -4
- data/ext/apache2/Configuration.cpp +16 -5
- data/ext/apache2/Configuration.hpp +4 -2
- data/ext/apache2/Hooks.cpp +44 -19
- data/ext/boost/libs/thread/src/pthread/once.cpp +2 -0
- data/ext/boost/libs/thread/src/pthread/once_atomic.cpp +6 -0
- data/ext/common/AgentsStarter.h +3 -2
- data/ext/common/ApplicationPool2/DirectSpawner.h +14 -4
- data/ext/common/ApplicationPool2/DummySpawner.h +12 -7
- data/ext/common/ApplicationPool2/Implementation.cpp +1 -1
- data/ext/common/ApplicationPool2/Process.h +2 -1
- data/ext/common/ApplicationPool2/Session.h +6 -6
- data/ext/common/ApplicationPool2/SmartSpawner.h +19 -4
- data/ext/common/ApplicationPool2/Socket.h +59 -27
- data/ext/common/ApplicationPool2/Spawner.h +2 -2
- data/ext/common/BackgroundEventLoop.cpp +6 -1
- data/ext/common/Constants.h +1 -1
- data/ext/common/EventedClient.h +1 -1
- data/ext/common/EventedServer.h +2 -2
- data/ext/common/FileDescriptor.h +25 -6
- data/ext/common/Logging.cpp +107 -52
- data/ext/common/Logging.h +146 -19
- data/ext/common/MessageClient.h +2 -2
- data/ext/common/MessageServer.h +3 -2
- data/ext/common/RandomGenerator.h +8 -7
- data/ext/common/SafeLibev.h +5 -1
- data/ext/common/ServerKit/AcceptLoadBalancer.h +9 -4
- data/ext/common/ServerKit/FdSinkChannel.h +5 -2
- data/ext/common/ServerKit/FdSourceChannel.h +5 -2
- data/ext/common/ServerKit/FileBufferedChannel.h +2 -0
- data/ext/common/ServerKit/FileBufferedFdSinkChannel.h +7 -2
- data/ext/common/ServerKit/HttpServer.h +6 -0
- data/ext/common/ServerKit/Server.h +40 -3
- data/ext/common/StaticString.h +20 -0
- data/ext/common/UnionStation/Connection.h +3 -1
- data/ext/common/UnionStation/Core.h +6 -4
- data/ext/common/Utils.cpp +4 -3
- data/ext/common/Utils/DateParsing.h +19 -5
- data/ext/common/Utils/FastStringStream.h +183 -0
- data/ext/common/Utils/IOUtils.cpp +47 -28
- data/ext/common/Utils/IOUtils.h +56 -12
- data/ext/common/Utils/MessagePassing.h +3 -3
- data/ext/common/Utils/ProcessMetricsCollector.h +2 -2
- data/ext/common/Utils/ScopeGuard.h +16 -5
- data/ext/common/Utils/SpeedMeter.h +2 -2
- data/ext/common/Utils/StrIntUtils.cpp +6 -6
- data/ext/common/Utils/StrIntUtils.h +2 -1
- data/ext/common/agents/Base.cpp +56 -4
- data/ext/common/agents/Base.h +2 -1
- data/ext/common/agents/HelperAgent/AdminServer.h +122 -11
- data/ext/common/agents/HelperAgent/Main.cpp +16 -5
- data/ext/common/agents/HelperAgent/OptionParser.h +7 -1
- data/ext/common/agents/HelperAgent/RequestHandler.h +1 -1
- data/ext/common/agents/HelperAgent/RequestHandler/Hooks.cpp +10 -1
- data/ext/common/agents/HelperAgent/RequestHandler/Request.h +8 -0
- data/ext/common/agents/HelperAgent/RequestHandler/TurboCaching.h +4 -3
- data/ext/common/agents/LoggingAgent/AdminServer.h +57 -11
- data/ext/common/agents/LoggingAgent/LoggingServer.h +3 -3
- data/ext/common/agents/LoggingAgent/Main.cpp +11 -3
- data/ext/common/agents/Watchdog/AdminServer.h +53 -11
- data/ext/common/agents/Watchdog/AgentWatcher.cpp +3 -3
- data/ext/common/agents/Watchdog/Main.cpp +13 -6
- data/ext/libeio/ecb.h +1 -1
- data/ext/libev/ev.c +13 -1
- data/ext/libev/ev.h +3 -0
- data/ext/nginx/Configuration.c +28 -6
- data/ext/nginx/Configuration.h +2 -1
- data/ext/nginx/ngx_http_passenger_module.c +5 -4
- data/ext/oxt/dynamic_thread_group.hpp +38 -5
- data/lib/phusion_passenger.rb +1 -1
- data/lib/phusion_passenger/common_library.rb +9 -5
- data/lib/phusion_passenger/config/reopen_logs_command.rb +2 -2
- data/lib/phusion_passenger/packaging.rb +23 -37
- data/passenger.gemspec +21 -21
- metadata +4 -453
- metadata.gz.asc +7 -7
- data/.gitignore +0 -68
- data/.travis.yml +0 -16
- data/Gemfile +0 -17
- data/Gemfile.lock +0 -39
- data/Vagrantfile +0 -54
- data/debian.template/README.Debian +0 -15
- data/debian.template/changelog +0 -316
- data/debian.template/compat +0 -1
- data/debian.template/control.erb +0 -91
- data/debian.template/copyright +0 -385
- data/debian.template/libapache2-mod-passenger.install +0 -3
- data/debian.template/libapache2-mod-passenger.postinst +0 -36
- data/debian.template/libapache2-mod-passenger.prerm +0 -15
- data/debian.template/locations.ini.erb +0 -14
- data/debian.template/passenger-dev.install.erb +0 -3
- data/debian.template/passenger-doc.install.erb +0 -2
- data/debian.template/passenger.conf +0 -6
- data/debian.template/passenger.docs +0 -4
- data/debian.template/passenger.install.erb +0 -14
- data/debian.template/passenger.load +0 -3
- data/debian.template/passenger.manpages +0 -3
- data/debian.template/patches/series +0 -0
- data/debian.template/rules.erb +0 -76
- data/debian.template/source/format +0 -1
- data/ext/common/EventedBufferedInput.h +0 -458
- data/packaging/rpm/LICENSE.txt +0 -19
- data/packaging/rpm/Makefile +0 -13
- data/packaging/rpm/README.md +0 -41
- data/packaging/rpm/Vagrantfile +0 -38
- data/packaging/rpm/Vagrantfile.centos +0 -30
- data/packaging/rpm/build +0 -170
- data/packaging/rpm/create_project +0 -41
- data/packaging/rpm/git_update +0 -88
- data/packaging/rpm/image/Dockerfile +0 -37
- data/packaging/rpm/image/Gemfile +0 -3
- data/packaging/rpm/image/Gemfile.lock +0 -12
- data/packaging/rpm/image/RPM-GPG-KEY-amazon-ga +0 -19
- data/packaging/rpm/image/amazon2014-i386.cfg +0 -96
- data/packaging/rpm/image/amazon2014-x86_64.cfg +0 -96
- data/packaging/rpm/image/site-defaults.cfg +0 -168
- data/packaging/rpm/internal/build_tasks.rb +0 -238
- data/packaging/rpm/internal/dummygpg +0 -11
- data/packaging/rpm/internal/exec_build +0 -42
- data/packaging/rpm/internal/get_distro_arch +0 -14
- data/packaging/rpm/internal/get_distro_id +0 -10
- data/packaging/rpm/internal/git_update +0 -27
- data/packaging/rpm/internal/inituidgid +0 -17
- data/packaging/rpm/internal/my_init +0 -344
- data/packaging/rpm/internal/python27 +0 -3
- data/packaging/rpm/internal/repo_update +0 -46
- data/packaging/rpm/internal/setuser +0 -26
- data/packaging/rpm/internal/tracking_helper +0 -40
- data/packaging/rpm/jenkins_release +0 -99
- data/packaging/rpm/lib/build_tasks_support.rb +0 -402
- data/packaging/rpm/lib/preprocessor.rb +0 -341
- data/packaging/rpm/nginx_spec/404.html +0 -119
- data/packaging/rpm/nginx_spec/50x.html +0 -119
- data/packaging/rpm/nginx_spec/index.html +0 -116
- data/packaging/rpm/nginx_spec/nginx-auto-cc-gcc.patch +0 -13
- data/packaging/rpm/nginx_spec/nginx-logo.png +0 -0
- data/packaging/rpm/nginx_spec/nginx-upgrade +0 -13
- data/packaging/rpm/nginx_spec/nginx-upgrade.8 +0 -151
- data/packaging/rpm/nginx_spec/nginx.conf +0 -131
- data/packaging/rpm/nginx_spec/nginx.init +0 -144
- data/packaging/rpm/nginx_spec/nginx.logrotate +0 -13
- data/packaging/rpm/nginx_spec/nginx.service +0 -15
- data/packaging/rpm/nginx_spec/nginx.spec.template +0 -560
- data/packaging/rpm/nginx_spec/nginx.sysconfig +0 -4
- data/packaging/rpm/nginx_spec/passenger.conf +0 -9
- data/packaging/rpm/nginx_spec/poweredby.png +0 -0
- data/packaging/rpm/passenger_spec/apache-passenger.conf.in +0 -26
- data/packaging/rpm/passenger_spec/config.json +0 -30
- data/packaging/rpm/passenger_spec/passenger.logrotate +0 -7
- data/packaging/rpm/passenger_spec/passenger.spec.template +0 -478
- data/packaging/rpm/passenger_spec/passenger_dynamic_thread_group.patch +0 -16
- data/packaging/rpm/passenger_spec/passenger_tests_default_config_example.patch +0 -44
- data/packaging/rpm/passenger_spec/rubygem-passenger-4.0.18-GLIBC_HAVE_LONG_LONG.patch +0 -21
- data/packaging/rpm/repo_update +0 -114
- data/packaging/rpm/setup-system +0 -61
- data/packaging/rpm/shell +0 -10
- data/test/.rspec +0 -4
- data/test/config.json.example +0 -42
- data/test/config.json.rpm-automation +0 -15
- data/test/config.json.travis +0 -15
- data/test/config.json.vagrant +0 -30
- data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +0 -124
- data/test/cxx/ApplicationPool2/OptionsTest.cpp +0 -30
- data/test/cxx/ApplicationPool2/PoolTest.cpp +0 -2062
- data/test/cxx/ApplicationPool2/ProcessTest.cpp +0 -130
- data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +0 -243
- data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +0 -823
- data/test/cxx/BufferedIOTest.cpp +0 -364
- data/test/cxx/CachedFileStatTest.cpp +0 -402
- data/test/cxx/CxxTestMain.cpp +0 -181
- data/test/cxx/DataStructures/LStringTest.cpp +0 -275
- data/test/cxx/DataStructures/StringKeyTableTest.cpp +0 -199
- data/test/cxx/DateParsingTest.cpp +0 -75
- data/test/cxx/DechunkerTest.cpp +0 -250
- data/test/cxx/EventedBufferedInputTest.cpp +0 -758
- data/test/cxx/EventedClientTest.cpp +0 -523
- data/test/cxx/FileChangeCheckerTest.cpp +0 -331
- data/test/cxx/FileDescriptorTest.cpp +0 -69
- data/test/cxx/FilterSupportTest.cpp +0 -433
- data/test/cxx/IOUtilsTest.cpp +0 -861
- data/test/cxx/MemoryKit/MbufTest.cpp +0 -213
- data/test/cxx/MessageIOTest.cpp +0 -360
- data/test/cxx/MessagePassingTest.cpp +0 -81
- data/test/cxx/MessageReadersWritersTest.cpp +0 -576
- data/test/cxx/MessageServerTest.cpp +0 -393
- data/test/cxx/ProcessMetricsCollectorTest.cpp +0 -123
- data/test/cxx/RequestHandlerTest.cpp +0 -1463
- data/test/cxx/ResponseCacheTest.cpp +0 -322
- data/test/cxx/ServerKit/ChannelTest.cpp +0 -1467
- data/test/cxx/ServerKit/CookieUtilsTest.cpp +0 -274
- data/test/cxx/ServerKit/FileBufferedChannelTest.cpp +0 -992
- data/test/cxx/ServerKit/HeaderTableTest.cpp +0 -177
- data/test/cxx/ServerKit/HttpServerTest.cpp +0 -1580
- data/test/cxx/ServerKit/ServerTest.cpp +0 -408
- data/test/cxx/StaticStringTest.cpp +0 -220
- data/test/cxx/StringMapTest.cpp +0 -131
- data/test/cxx/SystemTimeTest.cpp +0 -37
- data/test/cxx/TemplateTest.cpp +0 -118
- data/test/cxx/TestSupport.cpp +0 -207
- data/test/cxx/TestSupport.h +0 -333
- data/test/cxx/UnionStationTest.cpp +0 -741
- data/test/cxx/Utils/StrIntUtilsTest.cpp +0 -39
- data/test/cxx/UtilsTest.cpp +0 -672
- data/test/cxx/VariantMapTest.cpp +0 -191
- data/test/gdbinit.example +0 -34
- data/test/integration_tests/apache2_tests.rb +0 -585
- data/test/integration_tests/downloaded_binaries_tests.rb +0 -185
- data/test/integration_tests/native_packaging_spec.rb +0 -368
- data/test/integration_tests/nginx_tests.rb +0 -402
- data/test/integration_tests/shared/example_webapp_tests.rb +0 -289
- data/test/integration_tests/source_packaging_test.rb +0 -201
- data/test/integration_tests/spec_helper.rb +0 -22
- data/test/integration_tests/standalone_tests.rb +0 -392
- data/test/node/line_reader_spec.js +0 -338
- data/test/node/spec_helper.js +0 -65
- data/test/oxt/backtrace_test.cpp +0 -88
- data/test/oxt/counter.hpp +0 -55
- data/test/oxt/dynamic_thread_group_test.cpp +0 -131
- data/test/oxt/oxt_test_main.cpp +0 -27
- data/test/oxt/spin_lock_test.cpp +0 -59
- data/test/oxt/syscall_interruption_test.cpp +0 -39
- data/test/ruby/debug_logging_spec.rb +0 -145
- data/test/ruby/message_channel_spec.rb +0 -196
- data/test/ruby/rack/loader_spec.rb +0 -42
- data/test/ruby/rack/preloader_spec.rb +0 -48
- data/test/ruby/rails3.0/loader_spec.rb +0 -26
- data/test/ruby/rails3.0/preloader_spec.rb +0 -32
- data/test/ruby/rails3.1/loader_spec.rb +0 -26
- data/test/ruby/rails3.1/preloader_spec.rb +0 -32
- data/test/ruby/rails3.2/loader_spec.rb +0 -26
- data/test/ruby/rails3.2/preloader_spec.rb +0 -32
- data/test/ruby/rails4.0/loader_spec.rb +0 -28
- data/test/ruby/rails4.0/preloader_spec.rb +0 -34
- data/test/ruby/rails4.1/loader_spec.rb +0 -28
- data/test/ruby/rails4.1/preloader_spec.rb +0 -34
- data/test/ruby/request_handler_spec.rb +0 -747
- data/test/ruby/shared/loader_sharedspec.rb +0 -247
- data/test/ruby/shared/rails/union_station_extensions_sharedspec.rb +0 -357
- data/test/ruby/shared/ruby_loader_sharedspec.rb +0 -55
- data/test/ruby/spec_helper.rb +0 -114
- data/test/ruby/standalone/runtime_installer_spec.rb +0 -402
- data/test/ruby/union_station_spec.rb +0 -288
- data/test/ruby/utils/file_system_watcher_spec.rb +0 -229
- data/test/ruby/utils/hosts_file_parser.rb +0 -258
- data/test/ruby/utils/tee_input_spec.rb +0 -235
- data/test/ruby/utils/unseekable_socket_spec.rb +0 -66
- data/test/ruby/utils_spec.rb +0 -41
- data/test/stub/apache2/httpd.conf.erb +0 -122
- data/test/stub/apache2/mime.types +0 -748
- data/test/stub/garbage1.dat +0 -0
- data/test/stub/garbage2.dat +0 -0
- data/test/stub/garbage3.dat +0 -0
- data/test/stub/http_request.yml +0 -23
- data/test/stub/index.html +0 -1
- data/test/stub/nginx/koi-utf +0 -109
- data/test/stub/nginx/koi-win +0 -103
- data/test/stub/nginx/mime.types +0 -70
- data/test/stub/nginx/nginx.conf.erb +0 -70
- data/test/stub/nginx/win-utf +0 -126
- data/test/stub/node/app.js +0 -133
- data/test/stub/node/public/.gitignore +0 -0
- data/test/stub/node/tmp/.gitignore +0 -0
- data/test/stub/rack/config.ru +0 -95
- data/test/stub/rack/library.rb +0 -16
- data/test/stub/rack/public/.gitignore +0 -0
- data/test/stub/rack/start.rb +0 -52
- data/test/stub/rack/tmp/.gitignore +0 -0
- data/test/stub/rails3.0/.gitignore +0 -4
- data/test/stub/rails3.0/Gemfile +0 -22
- data/test/stub/rails3.0/Gemfile.lock +0 -80
- data/test/stub/rails3.0/Rakefile +0 -10
- data/test/stub/rails3.0/app/controllers/application_controller.rb +0 -4
- data/test/stub/rails3.0/app/helpers/application_helper.rb +0 -2
- data/test/stub/rails3.0/app/views/layouts/application.html.erb +0 -14
- data/test/stub/rails3.0/config.ru +0 -4
- data/test/stub/rails3.0/config/application.rb +0 -48
- data/test/stub/rails3.0/config/boot.rb +0 -13
- data/test/stub/rails3.0/config/database.yml +0 -22
- data/test/stub/rails3.0/config/environment.rb +0 -5
- data/test/stub/rails3.0/config/environments/development.rb +0 -19
- data/test/stub/rails3.0/config/environments/production.rb +0 -48
- data/test/stub/rails3.0/config/environments/test.rb +0 -32
- data/test/stub/rails3.0/config/initializers/backtrace_silencers.rb +0 -7
- data/test/stub/rails3.0/config/initializers/inflections.rb +0 -10
- data/test/stub/rails3.0/config/initializers/mime_types.rb +0 -5
- data/test/stub/rails3.0/config/initializers/passenger.rb +0 -2
- data/test/stub/rails3.0/config/initializers/secret_token.rb +0 -7
- data/test/stub/rails3.0/config/initializers/session_store.rb +0 -8
- data/test/stub/rails3.0/config/locales/en.yml +0 -5
- data/test/stub/rails3.0/config/routes.rb +0 -58
- data/test/stub/rails3.0/db/seeds.rb +0 -7
- data/test/stub/rails3.0/doc/README_FOR_APP +0 -2
- data/test/stub/rails3.0/lib/tasks/.gitkeep +0 -0
- data/test/stub/rails3.0/log/.gitignore +0 -0
- data/test/stub/rails3.0/public/404.html +0 -26
- data/test/stub/rails3.0/public/422.html +0 -26
- data/test/stub/rails3.0/public/500.html +0 -26
- data/test/stub/rails3.0/public/favicon.ico +0 -0
- data/test/stub/rails3.0/public/index.html +0 -279
- data/test/stub/rails3.0/public/robots.txt +0 -5
- data/test/stub/rails3.0/public/stylesheets/.gitkeep +0 -0
- data/test/stub/rails3.0/script/rails +0 -9
- data/test/stub/rails3.0/test/performance/browsing_test.rb +0 -9
- data/test/stub/rails3.0/test/test_helper.rb +0 -13
- data/test/stub/rails3.0/vendor/plugins/.gitkeep +0 -0
- data/test/stub/rails3.1/.gitignore +0 -15
- data/test/stub/rails3.1/Gemfile +0 -37
- data/test/stub/rails3.1/Gemfile.lock +0 -115
- data/test/stub/rails3.1/README +0 -261
- data/test/stub/rails3.1/Rakefile +0 -7
- data/test/stub/rails3.1/app/assets/images/rails.png +0 -0
- data/test/stub/rails3.1/app/assets/stylesheets/application.css +0 -7
- data/test/stub/rails3.1/app/controllers/application_controller.rb +0 -3
- data/test/stub/rails3.1/app/helpers/application_helper.rb +0 -2
- data/test/stub/rails3.1/app/mailers/.gitkeep +0 -0
- data/test/stub/rails3.1/app/models/.gitkeep +0 -0
- data/test/stub/rails3.1/app/views/layouts/application.html.erb +0 -14
- data/test/stub/rails3.1/config.ru +0 -4
- data/test/stub/rails3.1/config/application.rb +0 -48
- data/test/stub/rails3.1/config/boot.rb +0 -6
- data/test/stub/rails3.1/config/database.yml +0 -25
- data/test/stub/rails3.1/config/environment.rb +0 -5
- data/test/stub/rails3.1/config/environments/development.rb +0 -30
- data/test/stub/rails3.1/config/environments/production.rb +0 -60
- data/test/stub/rails3.1/config/environments/test.rb +0 -39
- data/test/stub/rails3.1/config/initializers/backtrace_silencers.rb +0 -7
- data/test/stub/rails3.1/config/initializers/inflections.rb +0 -10
- data/test/stub/rails3.1/config/initializers/mime_types.rb +0 -5
- data/test/stub/rails3.1/config/initializers/passenger.rb +0 -2
- data/test/stub/rails3.1/config/initializers/secret_token.rb +0 -7
- data/test/stub/rails3.1/config/initializers/session_store.rb +0 -8
- data/test/stub/rails3.1/config/initializers/wrap_parameters.rb +0 -14
- data/test/stub/rails3.1/config/locales/en.yml +0 -5
- data/test/stub/rails3.1/config/routes.rb +0 -58
- data/test/stub/rails3.1/db/seeds.rb +0 -7
- data/test/stub/rails3.1/doc/README_FOR_APP +0 -2
- data/test/stub/rails3.1/lib/assets/.gitkeep +0 -0
- data/test/stub/rails3.1/lib/tasks/.gitkeep +0 -0
- data/test/stub/rails3.1/log/.gitkeep +0 -0
- data/test/stub/rails3.1/public/404.html +0 -26
- data/test/stub/rails3.1/public/422.html +0 -26
- data/test/stub/rails3.1/public/500.html +0 -26
- data/test/stub/rails3.1/public/favicon.ico +0 -0
- data/test/stub/rails3.1/public/index.html +0 -241
- data/test/stub/rails3.1/public/robots.txt +0 -5
- data/test/stub/rails3.1/script/rails +0 -6
- data/test/stub/rails3.1/test/fixtures/.gitkeep +0 -0
- data/test/stub/rails3.1/test/functional/.gitkeep +0 -0
- data/test/stub/rails3.1/test/integration/.gitkeep +0 -0
- data/test/stub/rails3.1/test/performance/browsing_test.rb +0 -12
- data/test/stub/rails3.1/test/test_helper.rb +0 -13
- data/test/stub/rails3.1/test/unit/.gitkeep +0 -0
- data/test/stub/rails3.1/vendor/assets/stylesheets/.gitkeep +0 -0
- data/test/stub/rails3.1/vendor/plugins/.gitkeep +0 -0
- data/test/stub/rails3.2/.gitignore +0 -15
- data/test/stub/rails3.2/Gemfile +0 -39
- data/test/stub/rails3.2/Gemfile.lock +0 -113
- data/test/stub/rails3.2/Rakefile +0 -7
- data/test/stub/rails3.2/app/assets/images/rails.png +0 -0
- data/test/stub/rails3.2/app/assets/stylesheets/application.css +0 -13
- data/test/stub/rails3.2/app/controllers/application_controller.rb +0 -3
- data/test/stub/rails3.2/app/helpers/application_helper.rb +0 -2
- data/test/stub/rails3.2/app/mailers/.gitkeep +0 -0
- data/test/stub/rails3.2/app/models/.gitkeep +0 -0
- data/test/stub/rails3.2/app/views/layouts/application.html.erb +0 -14
- data/test/stub/rails3.2/config.ru +0 -4
- data/test/stub/rails3.2/config/application.rb +0 -62
- data/test/stub/rails3.2/config/boot.rb +0 -6
- data/test/stub/rails3.2/config/database.yml +0 -25
- data/test/stub/rails3.2/config/environment.rb +0 -5
- data/test/stub/rails3.2/config/environments/development.rb +0 -37
- data/test/stub/rails3.2/config/environments/production.rb +0 -67
- data/test/stub/rails3.2/config/environments/test.rb +0 -37
- data/test/stub/rails3.2/config/initializers/backtrace_silencers.rb +0 -7
- data/test/stub/rails3.2/config/initializers/inflections.rb +0 -15
- data/test/stub/rails3.2/config/initializers/mime_types.rb +0 -5
- data/test/stub/rails3.2/config/initializers/passenger.rb +0 -2
- data/test/stub/rails3.2/config/initializers/secret_token.rb +0 -7
- data/test/stub/rails3.2/config/initializers/session_store.rb +0 -8
- data/test/stub/rails3.2/config/initializers/wrap_parameters.rb +0 -14
- data/test/stub/rails3.2/config/locales/en.yml +0 -5
- data/test/stub/rails3.2/config/routes.rb +0 -58
- data/test/stub/rails3.2/db/seeds.rb +0 -7
- data/test/stub/rails3.2/doc/README_FOR_APP +0 -2
- data/test/stub/rails3.2/lib/assets/.gitkeep +0 -0
- data/test/stub/rails3.2/lib/tasks/.gitkeep +0 -0
- data/test/stub/rails3.2/log/.gitkeep +0 -0
- data/test/stub/rails3.2/public/404.html +0 -26
- data/test/stub/rails3.2/public/422.html +0 -26
- data/test/stub/rails3.2/public/500.html +0 -25
- data/test/stub/rails3.2/public/favicon.ico +0 -0
- data/test/stub/rails3.2/public/index.html +0 -241
- data/test/stub/rails3.2/public/robots.txt +0 -5
- data/test/stub/rails3.2/script/rails +0 -6
- data/test/stub/rails3.2/test/fixtures/.gitkeep +0 -0
- data/test/stub/rails3.2/test/functional/.gitkeep +0 -0
- data/test/stub/rails3.2/test/integration/.gitkeep +0 -0
- data/test/stub/rails3.2/test/performance/browsing_test.rb +0 -12
- data/test/stub/rails3.2/test/test_helper.rb +0 -13
- data/test/stub/rails3.2/test/unit/.gitkeep +0 -0
- data/test/stub/rails3.2/vendor/assets/stylesheets/.gitkeep +0 -0
- data/test/stub/rails3.2/vendor/plugins/.gitkeep +0 -0
- data/test/stub/rails4.0/.gitignore +0 -16
- data/test/stub/rails4.0/Gemfile +0 -45
- data/test/stub/rails4.0/Gemfile.lock +0 -126
- data/test/stub/rails4.0/README.rdoc +0 -28
- data/test/stub/rails4.0/Rakefile +0 -6
- data/test/stub/rails4.0/app/assets/images/.keep +0 -0
- data/test/stub/rails4.0/app/assets/javascripts/application.js +0 -16
- data/test/stub/rails4.0/app/assets/stylesheets/application.css +0 -13
- data/test/stub/rails4.0/app/controllers/application_controller.rb +0 -5
- data/test/stub/rails4.0/app/controllers/concerns/.keep +0 -0
- data/test/stub/rails4.0/app/helpers/application_helper.rb +0 -2
- data/test/stub/rails4.0/app/mailers/.keep +0 -0
- data/test/stub/rails4.0/app/models/.keep +0 -0
- data/test/stub/rails4.0/app/models/concerns/.keep +0 -0
- data/test/stub/rails4.0/app/views/layouts/application.html.erb +0 -14
- data/test/stub/rails4.0/bin/bundle +0 -3
- data/test/stub/rails4.0/bin/rails +0 -4
- data/test/stub/rails4.0/bin/rake +0 -4
- data/test/stub/rails4.0/config.ru +0 -4
- data/test/stub/rails4.0/config/application.rb +0 -23
- data/test/stub/rails4.0/config/boot.rb +0 -4
- data/test/stub/rails4.0/config/database.yml +0 -25
- data/test/stub/rails4.0/config/environment.rb +0 -5
- data/test/stub/rails4.0/config/environments/development.rb +0 -29
- data/test/stub/rails4.0/config/environments/production.rb +0 -80
- data/test/stub/rails4.0/config/environments/test.rb +0 -36
- data/test/stub/rails4.0/config/initializers/backtrace_silencers.rb +0 -7
- data/test/stub/rails4.0/config/initializers/filter_parameter_logging.rb +0 -4
- data/test/stub/rails4.0/config/initializers/inflections.rb +0 -16
- data/test/stub/rails4.0/config/initializers/mime_types.rb +0 -5
- data/test/stub/rails4.0/config/initializers/passenger.rb +0 -2
- data/test/stub/rails4.0/config/initializers/secret_token.rb +0 -12
- data/test/stub/rails4.0/config/initializers/session_store.rb +0 -3
- data/test/stub/rails4.0/config/initializers/wrap_parameters.rb +0 -14
- data/test/stub/rails4.0/config/locales/en.yml +0 -23
- data/test/stub/rails4.0/config/routes.rb +0 -57
- data/test/stub/rails4.0/db/seeds.rb +0 -7
- data/test/stub/rails4.0/lib/assets/.keep +0 -0
- data/test/stub/rails4.0/lib/tasks/.keep +0 -0
- data/test/stub/rails4.0/log/.keep +0 -0
- data/test/stub/rails4.0/public/404.html +0 -58
- data/test/stub/rails4.0/public/422.html +0 -58
- data/test/stub/rails4.0/public/500.html +0 -57
- data/test/stub/rails4.0/public/favicon.ico +0 -0
- data/test/stub/rails4.0/public/robots.txt +0 -5
- data/test/stub/rails4.0/test/controllers/.keep +0 -0
- data/test/stub/rails4.0/test/fixtures/.keep +0 -0
- data/test/stub/rails4.0/test/helpers/.keep +0 -0
- data/test/stub/rails4.0/test/integration/.keep +0 -0
- data/test/stub/rails4.0/test/mailers/.keep +0 -0
- data/test/stub/rails4.0/test/models/.keep +0 -0
- data/test/stub/rails4.0/test/test_helper.rb +0 -15
- data/test/stub/rails4.0/vendor/assets/javascripts/.keep +0 -0
- data/test/stub/rails4.0/vendor/assets/stylesheets/.keep +0 -0
- data/test/stub/rails4.1/.gitignore +0 -16
- data/test/stub/rails4.1/Gemfile +0 -45
- data/test/stub/rails4.1/Gemfile.lock +0 -129
- data/test/stub/rails4.1/README.rdoc +0 -28
- data/test/stub/rails4.1/Rakefile +0 -6
- data/test/stub/rails4.1/app/assets/images/.keep +0 -0
- data/test/stub/rails4.1/app/assets/javascripts/application.js +0 -16
- data/test/stub/rails4.1/app/assets/stylesheets/application.css +0 -13
- data/test/stub/rails4.1/app/controllers/application_controller.rb +0 -5
- data/test/stub/rails4.1/app/controllers/concerns/.keep +0 -0
- data/test/stub/rails4.1/app/helpers/application_helper.rb +0 -2
- data/test/stub/rails4.1/app/mailers/.keep +0 -0
- data/test/stub/rails4.1/app/models/.keep +0 -0
- data/test/stub/rails4.1/app/models/concerns/.keep +0 -0
- data/test/stub/rails4.1/app/views/layouts/application.html.erb +0 -14
- data/test/stub/rails4.1/bin/bundle +0 -3
- data/test/stub/rails4.1/bin/rails +0 -4
- data/test/stub/rails4.1/bin/rake +0 -4
- data/test/stub/rails4.1/config.ru +0 -4
- data/test/stub/rails4.1/config/application.rb +0 -23
- data/test/stub/rails4.1/config/boot.rb +0 -4
- data/test/stub/rails4.1/config/database.yml +0 -25
- data/test/stub/rails4.1/config/environment.rb +0 -5
- data/test/stub/rails4.1/config/environments/development.rb +0 -29
- data/test/stub/rails4.1/config/environments/production.rb +0 -80
- data/test/stub/rails4.1/config/environments/test.rb +0 -36
- data/test/stub/rails4.1/config/initializers/backtrace_silencers.rb +0 -7
- data/test/stub/rails4.1/config/initializers/filter_parameter_logging.rb +0 -4
- data/test/stub/rails4.1/config/initializers/inflections.rb +0 -16
- data/test/stub/rails4.1/config/initializers/mime_types.rb +0 -5
- data/test/stub/rails4.1/config/initializers/passenger.rb +0 -5
- data/test/stub/rails4.1/config/initializers/secret_token.rb +0 -12
- data/test/stub/rails4.1/config/initializers/session_store.rb +0 -3
- data/test/stub/rails4.1/config/initializers/wrap_parameters.rb +0 -14
- data/test/stub/rails4.1/config/locales/en.yml +0 -23
- data/test/stub/rails4.1/config/routes.rb +0 -57
- data/test/stub/rails4.1/db/seeds.rb +0 -7
- data/test/stub/rails4.1/lib/assets/.keep +0 -0
- data/test/stub/rails4.1/lib/tasks/.keep +0 -0
- data/test/stub/rails4.1/log/.keep +0 -0
- data/test/stub/rails4.1/public/404.html +0 -58
- data/test/stub/rails4.1/public/422.html +0 -58
- data/test/stub/rails4.1/public/500.html +0 -57
- data/test/stub/rails4.1/public/favicon.ico +0 -0
- data/test/stub/rails4.1/public/robots.txt +0 -5
- data/test/stub/rails4.1/test/controllers/.keep +0 -0
- data/test/stub/rails4.1/test/fixtures/.keep +0 -0
- data/test/stub/rails4.1/test/helpers/.keep +0 -0
- data/test/stub/rails4.1/test/integration/.keep +0 -0
- data/test/stub/rails4.1/test/mailers/.keep +0 -0
- data/test/stub/rails4.1/test/models/.keep +0 -0
- data/test/stub/rails4.1/test/test_helper.rb +0 -15
- data/test/stub/rails4.1/vendor/assets/javascripts/.keep +0 -0
- data/test/stub/rails4.1/vendor/assets/stylesheets/.keep +0 -0
- data/test/stub/start_error.pl +0 -24
- data/test/stub/upload_data.txt +0 -494
- data/test/stub/wsgi/passenger_wsgi.py +0 -212
- data/test/stub/wsgi/public/.gitignore +0 -0
- data/test/stub/wsgi/tmp/.gitignore +0 -0
- data/test/support/allocate_memory.c +0 -14
- data/test/support/apache2_controller.rb +0 -258
- data/test/support/multipart.rb +0 -62
- data/test/support/nginx_controller.rb +0 -97
- data/test/support/placebo-preloader.rb +0 -88
- data/test/support/test_helper.rb +0 -455
- data/test/support/valgrind.h +0 -2539
- data/test/tut/tut.h +0 -1310
- data/test/tut/tut_reporter.h +0 -256
- 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
|