From 94fbed6335a0c225e9c42cbd3ab3fcc444188afd Mon Sep 17 00:00:00 2001 From: Chris LaRose Date: Wed, 16 Dec 2020 19:45:03 -0800 Subject: [PATCH] Add tests to ensure that nio4r is not loaded into the puma master --- .../config/prune_bundler_print_nio_defined.rb | 4 ++++ test/test_integration_cluster.rb | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 test/config/prune_bundler_print_nio_defined.rb diff --git a/test/config/prune_bundler_print_nio_defined.rb b/test/config/prune_bundler_print_nio_defined.rb new file mode 100644 index 00000000..8e2b65dd --- /dev/null +++ b/test/config/prune_bundler_print_nio_defined.rb @@ -0,0 +1,4 @@ +prune_bundler true +before_fork do + puts "defined?(::NIO): #{defined?(::NIO).inspect}" +end diff --git a/test/test_integration_cluster.rb b/test/test_integration_cluster.rb index b4f4f0b6..e5bca389 100644 --- a/test/test_integration_cluster.rb +++ b/test/test_integration_cluster.rb @@ -283,6 +283,25 @@ RUBY assert_match(/defined\?\(::JSON\): nil/, line) end + def test_nio4r_gem_not_required_in_master_process + cli_server "-w #{workers} -C test/config/prune_bundler_print_nio_defined.rb test/rackup/hello.ru" + + line = @server.gets + assert_match(/defined\?\(::NIO\): nil/, line) + end + + def test_nio4r_gem_not_required_in_master_process_when_using_control_server + @control_tcp_port = UniquePort.call + control_opts = "--control-url tcp://#{HOST}:#{@control_tcp_port} --control-token #{TOKEN}" + cli_server "-w #{workers} #{control_opts} -C test/config/prune_bundler_print_nio_defined.rb test/rackup/hello.ru" + + line = @server.gets + assert_match(/Starting control server/, line) + + line = @server.gets + assert_match(/defined\?\(::NIO\): nil/, line) + end + def test_application_is_loaded_exactly_once_if_using_preload_app cli_server "-w #{workers} --preload test/rackup/write_to_stdout_on_boot.ru"