• Bug#1105727: puma: FTBFS with make --shuffle=random: ERROR: Test "ruby3

    From Lucas Nussbaum@21:1/5 to All on Tue May 13 21:30:17 2025
    Source: puma
    Version: 6.6.0-2
    Severity: minor
    Tags: trixie sid ftbfs
    User: lucas@debian.org
    Usertags: ftbfs-shuffle

    Hi,

    GNU Make now has a --shuffle option that simulates non-deterministic ordering of target prerequisites. See https://trofi.github.io/posts/238-new-make-shuffle-mode.html and also previous work in Debian by Santiago Vila: https://people.debian.org/~sanvila/make-shuffle/

    This package fails to build with make --shuffle=random.
    This is likely to be caused by a missing dependency in
    debian/rules or an upstream Makefile.

    More information about this mass bug filing is available at https://wiki.debian.org/qa.debian.org/FTBFS/Shuffle

    Relevant part (hopefully):
    /usr/bin/ruby3.3 /usr/bin/gem2deb-test-runner

    ┌──────────────────────────────────────────────────────────────────────────────┐
    │ Checking Rubygems dependency resolution on ruby3.3 │
    └──────────────────────────────────────────────────────────────────────────────┘

    RUBYLIB=. GEM_PATH=/build/reproducible-path/puma-6.6.0/debian/puma/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0:/build/reproducible-path/puma-6.6.0/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.3.0:/var/lib/gems/3.3.0:/usr/
    local/lib/ruby/gems/3.3.0:/usr/lib/ruby/gems/3.3.0:/usr/lib/x86_64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0 ruby3.3 -e gem\ \"puma\"

    ┌──────────────────────────────────────────────────────────────────────────────┐
    │ Run tests for ruby3.3 from debian/ruby-tests.rake │
    └──────────────────────────────────────────────────────────────────────────────┘

    RUBYLIB=. GEM_PATH=/build/reproducible-path/puma-6.6.0/debian/puma/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0:/build/reproducible-path/puma-6.6.0/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.3.0:/var/lib/gems/3.3.0:/usr/
    local/lib/ruby/gems/3.3.0:/usr/lib/ruby/gems/3.3.0:/usr/lib/x86_64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0 ruby3.3 -S rake --rakelibdir /
    gem2deb-nonexistent -f debian/ruby-tests.rake
    /usr/bin/ruby3.3 -w -I"test" /usr/share/rubygems-integration/all/gems/rake-13.2.1/lib/rake/rake_test_loader.rb "test/helpers/test_puma.rb" "test/test_app_status.rb" "test/test_binder.rb" "test/test_bundle_pruner.rb" "test/test_busy_worker.rb" "test/
    test_cli.rb" "test/test_config.rb" "test/test_error_logger.rb" "test/test_events.rb" "test/test_example_cert_expiration.rb" "test/test_http10.rb" "test/test_http11.rb" "test/test_integration_pumactl.rb" "test/test_integration_single.rb" "test/test_
    integration_ssl.rb" "test/test_integration_ssl_session.rb" "test/test_iobuffer.rb" "test/test_json_serialization.rb" "test/test_launcher.rb" "test/test_log_writer.rb" "test/test_minissl.rb" "test/test_normalize.rb" "test/test_null_io.rb" "test/test_out_
    of_band_server.rb" "test/test_persistent.rb" "test/test_plugin.rb" "test/test_plugin_systemd.rb" "test/test_plugin_systemd_jruby.rb" "test/test_puma_localhost_authority.rb" "test/test_puma_server.rb" "test/test_puma_server_current.rb" "test/test_puma_
    server_hijack.rb" "test/test_puma_server_ssl.rb" "test/test_pumactl.rb" "test/test_rack_handler.rb" "test/test_rack_server.rb" "test/test_redirect_io.rb" "test/test_request_invalid.rb" "test/test_response_header.rb" "test/test_skip_sigusr2.rb" "test/test_
    skip_systemd.rb" "test/test_state_file.rb" "test/test_thread_pool.rb" "test/test_unix_socket.rb" "test/test_url_map.rb" "test/test_web_concurrency_auto.rb" "test/test_web_server.rb" -v -e'/test_application_logs_are_flushed_on_write|test_hot_restart_does_
    not_drop_connections|test_logs_all_localhost_bindings|test_multiple_requests_waiting_on_less_busy_worker|test_term_not_accepts_new_connections|test_prune_bundler_with_multiple_workers/'
    Run options: -v "-e/test_application_logs_are_flushed_on_write|test_hot_restart_does_not_drop_connections|test_logs_all_localhost_bindings|test_multiple_requests_waiting_on_less_busy_worker|test_term_not_accepts_new_connections|test_prune_bundler_with_
    multiple_workers/" --seed 10260

    # Running:

    TestWebConcurrencyAuto#test_web_concurrency_with_concurrent_ruby_available = TestWebConcurrencyAuto#test_web_concurrency_with_concurrent_ruby_available = TestWebConcurrencyAuto#test_web_concurrency_with_concurrent_ruby_available = libfakeroot internal
    error: payload not recognized!
    0.83 s = .
    0.83 s = .
    0.83 s = .
    TestPumaControlCli#test_app_env_precedence = TestPumaControlCli#test_app_env_precedence = TestPumaControlCli#test_app_env_precedence = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestPumaControlCli#test_blank_command = TestPumaControlCli#test_blank_command = TestPumaControlCli#test_blank_command = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestPumaControlCli#test_environment_without_rack_env = TestPumaControlCli#test_environment_without_rack_env = TestPumaControlCli#test_environment_without_rack_env = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestPumaControlCli#test_control_no_token = TestPumaControlCli#test_control_no_token = TestPumaControlCli#test_control_no_token = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestPumaControlCli#test_environment_without_app_env = TestPumaControlCli#test_environment_without_app_env = TestPumaControlCli#test_environment_without_app_env = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestPumaControlCli#test_default_config_file_exist = TestPumaControlCli#test_default_config_file_exist = TestPumaControlCli#test_default_config_file_exist = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestPumaControlCli#test_control_aunix = TestPumaControlCli#test_control_aunix = TestPumaControlCli#test_control_aunix = 0.05 s = .
    0.05 s = .
    0.05 s = .
    TestPumaControlCli#test_control_ipv6 = TestPumaControlCli#test_control_ipv6 = TestPumaControlCli#test_control_ipv6 = 0.08 s = .
    0.08 s = .
    0.08 s = .
    TestPumaControlCli#test_control_url_with_signal_only_cmd = TestPumaControlCli#test_control_url_with_signal_only_cmd = TestPumaControlCli#test_control_url_with_signal_only_cmd = 0.02 s = .
    0.02 s = .
    0.02 s = .
    TestPumaControlCli#test_rack_env_without_environment = TestPumaControlCli#test_rack_env_without_environment = TestPumaControlCli#test_rack_env_without_environment = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestPumaControlCli#test_config_file = TestPumaControlCli#test_config_file = TestPumaControlCli#test_config_file = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestPumaControlCli#test_environment_specific_config_file_exist = TestPumaControlCli#test_environment_specific_config_file_exist = TestPumaControlCli#test_environment_specific_config_file_exist = 0.02 s = .
    0.02 s = .
    0.02 s = .
    TestPumaControlCli#test_control_url_and_status = TestPumaControlCli#test_control_url_and_status = TestPumaControlCli#test_control_url_and_status = 0.12 s = .
    0.12 s = .
    0.12 s = .
    TestPumaControlCli#test_environment_with_rack_env = TestPumaControlCli#test_environment_with_rack_env = TestPumaControlCli#test_environment_with_rack_env = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestPumaControlCli#test_invalid_command = TestPumaControlCli#test_invalid_command = TestPumaControlCli#test_invalid_command = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestPumaControlCli#test_app_env_without_environment = TestPumaControlCli#test_app_env_without_environment = TestPumaControlCli#test_app_env_without_environment = 0.00 s = .
    0.00 s = .
    0.00 s = . TestConfigEnvVariables#test_config_does_not_preload_app_if_not_using_workers = TestConfigEnvVariables#test_config_does_not_preload_app_if_not_using_workers = TestConfigEnvVariables#test_config_does_not_preload_app_if_not_using_workers = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestConfigEnvVariables#test_config_preloads_app_if_using_workers = TestConfigEnvVariables#test_config_preloads_app_if_using_workers = TestConfigEnvVariables#test_config_preloads_app_if_using_workers = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestConfigEnvVariables#test_config_loads_correct_max_threads = TestConfigEnvVariables#test_config_loads_correct_max_threads = TestConfigEnvVariables#test_config_loads_correct_max_threads = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestConfigEnvVariables#test_config_loads_workers_from_env = TestConfigEnvVariables#test_config_loads_workers_from_env = TestConfigEnvVariables#test_config_loads_workers_from_env = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestConfigEnvVariables#test_config_loads_correct_min_threads = TestConfigEnvVariables#test_config_loads_correct_min_threads = TestConfigEnvVariables#test_config_loads_correct_min_threads = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestConfigEnvVariables#test_config_ignores_blank_workers_from_env = TestConfigEnvVariables#test_config_ignores_blank_workers_from_env = TestConfigEnvVariables#test_config_ignores_blank_workers_from_env = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestBusyWorker#test_multiple_requests_processing_in_parallel = TestBusyWorker#test_multiple_requests_processing_in_parallel = TestBusyWorker#test_multiple_requests_processing_in_parallel = 0.15 s = .
    0.15 s = .
    0.15 s = .
    TestBusyWorker#test_wait_for_less_busy_worker = TestBusyWorker#test_wait_for_less_busy_worker = TestBusyWorker#test_wait_for_less_busy_worker = 0.02 s = .
    0.02 s = .
    0.02 s = .
    TestBusyWorker#test_not_wait_for_less_busy_worker = TestBusyWorker#test_not_wait_for_less_busy_worker = TestBusyWorker#test_not_wait_for_less_busy_worker = 0.06 s = .
    0.06 s = .
    0.06 s = .
    TestSkipSystemd#test_systemd_plugin_not_loaded = TestSkipSystemd#test_systemd_plugin_not_loaded = TestSkipSystemd#test_systemd_plugin_not_loaded = 0.55 s = .
    0.55 s = .
    0.55 s = .
    TestPumaLocalhostAuthority#test_localhost_authority_file_generated = TestPumaLocalhostAuthority#test_localhost_authority_file_generated = TestPumaLocalhostAuthority#test_localhost_authority_file_generated = 0.09 s = .
    0.09 s = .
    0.09 s = .
    TestRequestInvalid#test_transfer_encoding_chunked_multiple = TestRequestInvalid#test_transfer_encoding_chunked_multiple = TestRequestInvalid#test_transfer_encoding_chunked_multiple = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestRequestInvalid#test_transfer_encoding_invalid_single = TestRequestInvalid#test_transfer_encoding_invalid_single = TestRequestInvalid#test_transfer_encoding_invalid_single = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestRequestInvalid#test_chunked_size_bad_characters_4 = TestRequestInvalid#test_chunked_size_bad_characters_4 = TestRequestInvalid#test_chunked_size_bad_characters_4 = 0.03 s = .
    0.03 s = .
    0.03 s = .
    TestRequestInvalid#test_chunked_size_bad_characters_1 = TestRequestInvalid#test_chunked_size_bad_characters_1 = TestRequestInvalid#test_chunked_size_bad_characters_1 = 0.02 s = .
    0.02 s = .
    0.02 s = .
    TestRequestInvalid#test_chunked_size_bad_characters_3 = TestRequestInvalid#test_chunked_size_bad_characters_3 = TestRequestInvalid#test_chunked_size_bad_characters_3 = 0.06 s = .
    0.06 s = .
    0.06 s = .
    TestRequestInvalid#test_oversize_path = TestRequestInvalid#test_oversize_path = TestRequestInvalid#test_oversize_path = 0.02 s = .
    0.02 s = .
    0.02 s = .
    TestRequestInvalid#test_transfer_encoding_chunked_not_last = TestRequestInvalid#test_transfer_encoding_chunked_not_last = TestRequestInvalid#test_transfer_encoding_chunked_not_last = 0.04 s = .
    0.04 s = .
    0.04 s = .
    TestRequestInvalid#test_transfer_encoding_invalid_multiple = TestRequestInvalid#test_transfer_encoding_invalid_multiple = TestRequestInvalid#test_transfer_encoding_invalid_multiple = 0.02 s = .
    0.02 s = .
    0.02 s = .
    TestRequestInvalid#test_oversize_path_keep_alive = TestRequestInvalid#test_oversize_path_keep_alive = TestRequestInvalid#test_oversize_path_keep_alive = 0.02 s = .
    0.02 s = .
    0.02 s = .
    TestRequestInvalid#test_content_length_multiple = TestRequestInvalid#test_content_length_multiple = TestRequestInvalid#test_content_length_multiple = 0.05 s = .
    0.05 s = .
    0.05 s = .
    TestRequestInvalid#test_underscore_header_1 = TestRequestInvalid#test_underscore_header_1 = TestRequestInvalid#test_underscore_header_1 = 0.03 s = .
    0.03 s = .
    0.03 s = .
    TestRequestInvalid#test_content_length_bad_characters_1 = TestRequestInvalid#test_content_length_bad_characters_1 = TestRequestInvalid#test_content_length_bad_characters_1 = 0.02 s = .
    0.02 s = .
    0.02 s = .
    TestRequestInvalid#test_transfer_encoding_single_not_chunked = TestRequestInvalid#test_transfer_encoding_single_not_chunked = TestRequestInvalid#test_transfer_encoding_single_not_chunked = 0.02 s = .
    0.02 s = .
    0.02 s = .
    TestRequestInvalid#test_chunked_size_mismatch_1 = TestRequestInvalid#test_chunked_size_mismatch_1 = TestRequestInvalid#test_chunked_size_mismatch_1 = 0.04 s = .
    0.04 s = .
    0.04 s = .
    TestRequestInvalid#test_chunked_size_mismatch_2 = TestRequestInvalid#test_chunked_size_mismatch_2 = TestRequestInvalid#test_chunked_size_mismatch_2 = 0.06 s = .
    0.06 s = .
    0.06 s = .
    TestRequestInvalid#test_content_length_bad_characters_2 = TestRequestInvalid#test_content_length_bad_characters_2 = TestRequestInvalid#test_content_length_bad_characters_2 = 0.04 s = .
    0.04 s = .
    0.04 s = .
    TestRequestInvalid#test_content_length_bad_characters_3 = TestRequestInvalid#test_content_length_bad_characters_3 = TestRequestInvalid#test_content_length_bad_characters_3 = 0.06 s = .
    0.06 s = .
    0.06 s = .
    TestRequestInvalid#test_underscore_header_2 = TestRequestInvalid#test_underscore_header_2 = TestRequestInvalid#test_underscore_header_2 = 0.04 s = .
    0.04 s = .
    0.04 s = .
    TestRequestInvalid#test_content_length_bad_characters_1_keep_alive = TestRequestInvalid#test_content_length_bad_characters_1_keep_alive = TestRequestInvalid#test_content_length_bad_characters_1_keep_alive = 0.01 s = .
    0.01 s = .
    0.01 s = .
    TestRequestInvalid#test_chunked_size_bad_characters_2 = TestRequestInvalid#test_chunked_size_bad_characters_2 = TestRequestInvalid#test_chunked_size_bad_characters_2 = 0.01 s = .
    0.01 s = .
    0.01 s = .
    TestPluginSystemdJruby#test_systemd_plugin_not_loaded = TestPluginSystemdJruby#test_systemd_plugin_not_loaded = TestPluginSystemdJruby#test_systemd_plugin_not_loaded = 0.00 s = S
    0.00 s = S
    0.00 s = S
    TestMiniSSL#test_raises_with_invalid_cert_file = TestMiniSSL#test_raises_with_invalid_cert_file = TestMiniSSL#test_raises_with_invalid_cert_file = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestMiniSSL#test_raises_with_invalid_key_pem = TestMiniSSL#test_raises_with_invalid_key_pem = TestMiniSSL#test_raises_with_invalid_key_pem = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestMiniSSL#test_raises_with_unreadable_key_file = TestMiniSSL#test_raises_with_unreadable_key_file = TestMiniSSL#test_raises_with_unreadable_key_file = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestMiniSSL#test_raises_with_unreadable_ca_file = TestMiniSSL#test_raises_with_unreadable_ca_file = TestMiniSSL#test_raises_with_unreadable_ca_file = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestMiniSSL#test_raises_with_invalid_key_file = TestMiniSSL#test_raises_with_invalid_key_file = TestMiniSSL#test_raises_with_invalid_key_file = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestMiniSSL#test_raises_with_invalid_key_password_command = TestMiniSSL#test_raises_with_invalid_key_password_command = TestMiniSSL#test_raises_with_invalid_key_password_command = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestMiniSSL#test_raises_with_unreadable_cert_file = TestMiniSSL#test_raises_with_unreadable_cert_file = TestMiniSSL#test_raises_with_unreadable_cert_file = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestMiniSSL#test_raises_with_invalid_cert_pem = TestMiniSSL#test_raises_with_invalid_cert_pem = TestMiniSSL#test_raises_with_invalid_cert_pem = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestErrorLogger#test_debug_backtrace_logging = TestErrorLogger#test_debug_backtrace_logging = TestErrorLogger#test_debug_backtrace_logging = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestErrorLogger#test_info_with_request = TestErrorLogger#test_info_with_request = TestErrorLogger#test_info_with_request = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestErrorLogger#test_stdio_respects_sync = TestErrorLogger#test_stdio_respects_sync = TestErrorLogger#test_stdio_respects_sync = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestErrorLogger#test_info_with_text = TestErrorLogger#test_info_with_text = TestErrorLogger#test_info_with_text = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestErrorLogger#test_debug_without_debug_mode = TestErrorLogger#test_debug_without_debug_mode = TestErrorLogger#test_debug_without_debug_mode = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestErrorLogger#test_info_with_only_error = TestErrorLogger#test_info_with_only_error = TestErrorLogger#test_info_with_only_error = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestErrorLogger#test_stdio = TestErrorLogger#test_stdio = TestErrorLogger#test_stdio = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestErrorLogger#test_debug_with_debug_mode = TestErrorLogger#test_debug_with_debug_mode = TestErrorLogger#test_debug_with_debug_mode = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestExampleCertExpiration#test_certs_not_expired = TestExampleCertExpiration#test_certs_not_expired = TestExampleCertExpiration#test_certs_not_expired = 0.00 s = .
    0.00 s = .
    0.00 s = . TestPumaServerSSLWithCertPemAndKeyPem#test_server_ssl_with_cert_pem_and_key_pem = TestPumaServerSSLWithCertPemAndKeyPem#test_server_ssl_with_cert_pem_and_key_pem = TestPumaServerSSLWithCertPemAndKeyPem#test_server_ssl_with_cert_pem_and_key_pem = 0.25 s
    = .
    0.25 s = .
    0.25 s = .
    TestBinderMRI#test_binder_parses_ssl_cipher_filter = TestBinderMRI#test_binder_parses_ssl_cipher_filter = TestBinderMRI#test_binder_parses_ssl_cipher_filter = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestBinderMRI#test_binder_parses_ssl_verification_flags_one = TestBinderMRI#test_binder_parses_ssl_verification_flags_one = TestBinderMRI#test_binder_parses_ssl_verification_flags_one = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestBinderMRI#test_binder_parses_ssl_verification_flags_multiple = TestBinderMRI#test_binder_parses_ssl_verification_flags_multiple = TestBinderMRI#test_binder_parses_ssl_verification_flags_multiple = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestBinderMRI#test_binder_parses_ssl_ciphersuites = TestBinderMRI#test_binder_parses_ssl_ciphersuites = TestBinderMRI#test_binder_parses_ssl_ciphersuites = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestConfigFileWithFakeEnv#test_config_files_with_app_env = TestConfigFileWithFakeEnv#test_config_files_with_app_env = TestConfigFileWithFakeEnv#test_config_files_with_app_env = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestConfigFileWithFakeEnv#test_enable_keep_alives_by_default = TestConfigFileWithFakeEnv#test_enable_keep_alives_by_default = TestConfigFileWithFakeEnv#test_enable_keep_alives_by_default = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestConfigFileWithFakeEnv#test_enable_keep_alives_true = TestConfigFileWithFakeEnv#test_enable_keep_alives_true = TestConfigFileWithFakeEnv#test_enable_keep_alives_true = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestConfigFileWithFakeEnv#test_enable_keep_alives_false = TestConfigFileWithFakeEnv#test_enable_keep_alives_false = TestConfigFileWithFakeEnv#test_enable_keep_alives_false = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestConfigFileWithFakeEnv#test_config_files_with_rails_env = TestConfigFileWithFakeEnv#test_config_files_with_rails_env = TestConfigFileWithFakeEnv#test_config_files_with_rails_env = 0.00 s = .
    0.00 s = .
    0.00 s = . TestConfigFileWithFakeEnv#test_config_files_with_specified_environment = TestConfigFileWithFakeEnv#test_config_files_with_specified_environment = TestConfigFileWithFakeEnv#test_config_files_with_specified_environment = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestConfigFileWithFakeEnv#test_config_files_with_rack_env = TestConfigFileWithFakeEnv#test_config_files_with_rack_env = TestConfigFileWithFakeEnv#test_config_files_with_rack_env = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestCLI#test_log_formatter_default_clustered = TestCLI#test_log_formatter_default_clustered = TestCLI#test_log_formatter_default_clustered = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestCLI#test_silent = TestCLI#test_silent = TestCLI#test_silent = 0.01 s = . 0.01 s = .
    0.01 s = .
    TestCLI#test_control_requests_count = TestCLI#test_control_requests_count = TestCLI#test_control_requests_count = 0.05 s = .
    0.05 s = .
    0.05 s = .
    TestCLI#test_control_for_ssl = TestCLI#test_control_for_ssl = TestCLI#test_control_for_ssl = 0.06 s = .
    0.06 s = .
    0.06 s = .
    TestCLI#test_control_for_unix = TestCLI#test_control_for_unix = TestCLI#test_control_for_unix = 0.04 s = .
    0.04 s = .
    0.04 s = .
    TestCLI#test_log_formatter_custom_clustered = TestCLI#test_log_formatter_custom_clustered = TestCLI#test_log_formatter_custom_clustered = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestCLI#test_log_formatter_default_single = TestCLI#test_log_formatter_default_single = TestCLI#test_log_formatter_default_single = 0.01 s = .
    0.01 s = .
    0.01 s = .
    TestCLI#test_plugins = TestCLI#test_plugins = TestCLI#test_plugins = 0.03 s = .
    0.03 s = .
    0.03 s = .
    TestCLI#test_log_formatter_custom_single = TestCLI#test_log_formatter_custom_single = TestCLI#test_log_formatter_custom_single = 0.01 s = .
    0.01 s = .
    0.01 s = .
    TestCLI#test_load_path = TestCLI#test_load_path = TestCLI#test_load_path = 0.01 s = .
    0.01 s = .
    0.01 s = .
    TestCLI#test_state_file_callback_filtering = TestCLI#test_state_file_callback_filtering = TestCLI#test_state_file_callback_filtering = 0.01 s = .
    0.01 s = .
    0.01 s = .
    TestCLI#test_environment_app_env = TestCLI#test_environment_app_env = TestCLI#test_environment_app_env = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestCLI#test_state = TestCLI#test_state = TestCLI#test_state = 0.01 s = . 0.01 s = .
    0.01 s = .
    TestCLI#test_control_stop = TestCLI#test_control_stop = TestCLI#test_control_stop = 0.05 s = .
    0.05 s = .
    0.05 s = .
    TestCLI#test_control_thread_backtraces = TestCLI#test_control_thread_backtraces = TestCLI#test_control_thread_backtraces = 0.08 s = .
    0.08 s = .
    0.08 s = .
    TestCLI#test_environment_rails_env = TestCLI#test_environment_rails_env = TestCLI#test_environment_rails_env = 0.01 s = .
    0.01 s = .
    0.01 s = .
    TestCLI#test_extra_runtime_dependencies = TestCLI#test_extra_runtime_dependencies = TestCLI#test_extra_runtime_dependencies = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestCLI#test_tmp_control = TestCLI#test_tmp_control = TestCLI#test_tmp_control = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestCLI#test_environment_rack_env = TestCLI#test_environment_rack_env = TestCLI#test_environment_rack_env = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestCLI#test_control_for_tcp = TestCLI#test_control_for_tcp = TestCLI#test_control_for_tcp = 0.04 s = .
    0.04 s = .
    0.04 s = . TestRackUp::TestUserSuppliedOptionsPortIsSet#test_port_wins_over_config = TestRackUp::TestUserSuppliedOptionsPortIsSet#test_port_wins_over_config = TestRackUp::TestUserSuppliedOptionsPortIsSet#test_port_wins_over_config = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestPumaUnixSocket#test_server_aunix = TestPumaUnixSocket#test_server_aunix = TestPumaUnixSocket#test_server_aunix = 0.02 s = .
    0.02 s = .
    0.02 s = .
    TestPumaUnixSocket#test_server_unix = TestPumaUnixSocket#test_server_unix = TestPumaUnixSocket#test_server_unix = 0.03 s = .
    0.03 s = .
    0.03 s = .
    TestLogWriter#test_null_log_does_nothing = TestLogWriter#test_null_log_does_nothing = TestLogWriter#test_null_log_does_nothing = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestLogWriter#test_debug_writes_to_stdout_if_env_is_present = TestLogWriter#test_debug_writes_to_stdout_if_env_is_present = TestLogWriter#test_debug_writes_to_stdout_if_env_is_present = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestLogWriter#test_strings = TestLogWriter#test_strings = TestLogWriter#test_strings = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestLogWriter#test_ssl_error = TestLogWriter#test_ssl_error = TestLogWriter#test_ssl_error = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestLogWriter#test_log_writes_to_stdout = TestLogWriter#test_log_writes_to_stdout = TestLogWriter#test_log_writes_to_stdout = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestLogWriter#test_null = TestLogWriter#test_null = TestLogWriter#test_null = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestLogWriter#test_custom_log_formatter = TestLogWriter#test_custom_log_formatter = TestLogWriter#test_custom_log_formatter = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestLogWriter#test_pid_formatter = TestLogWriter#test_pid_formatter = TestLogWriter#test_pid_formatter = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestLogWriter#test_write_writes_to_stdout = TestLogWriter#test_write_writes_to_stdout = TestLogWriter#test_write_writes_to_stdout = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestLogWriter#test_error_writes_to_stderr_and_exits = TestLogWriter#test_error_writes_to_stderr_and_exits = TestLogWriter#test_error_writes_to_stderr_and_exits = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestLogWriter#test_stdio = TestLogWriter#test_stdio = TestLogWriter#test_stdio = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestLogWriter#test_parse_error = TestLogWriter#test_parse_error = TestLogWriter#test_parse_error = 0.12 s = .
    0.12 s = .
    0.12 s = .
    TestLogWriter#test_stdio_respects_sync = TestLogWriter#test_stdio_respects_sync = TestLogWriter#test_stdio_respects_sync = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestLogWriter#test_debug_not_write_to_stdout_if_env_is_not_present = TestLogWriter#test_debug_not_write_to_stdout_if_env_is_not_present = TestLogWriter#test_debug_not_write_to_stdout_if_env_is_not_present = 0.00 s = .
    0.00 s = .
    0.00 s = . TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_config_wins_over_default = TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_config_wins_over_default = TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_config_wins_over_default = 0.00 s = .
    0.00 s = .
    0.00 s = . TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_user_log_requests_wins_over_file_config = TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_user_log_requests_wins_over_file_config = TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_user_log_
    requests_wins_over_file_config = 0.00 s = .
    0.00 s = .
    0.00 s = . TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_user_port_wins_over_default_when_user_supplied_is_blank = TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_user_port_wins_over_default_when_user_supplied_is_blank = TestRackUp::
    TestUserSuppliedOptionsIsNotPresent#test_user_port_wins_over_default_when_user_supplied_is_blank = 0.00 s = .
    0.00 s = .
    0.00 s = . TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_user_port_wins_over_config = TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_user_port_wins_over_config = TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_user_port_wins_over_config = 0.00 s
    = .
    0.00 s = .
    0.00 s = . TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_default_port_when_no_config_file = TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_default_port_when_no_config_file = TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_default_port_when_no_
    config_file = 0.00 s = .
    0.00 s = .
    0.00 s = . TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_file_log_requests_wins_over_default_config = TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_file_log_requests_wins_over_default_config = TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_
    file_log_requests_wins_over_default_config = 0.00 s = .
    0.00 s = .
    0.00 s = . TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_user_port_wins_over_default = TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_user_port_wins_over_default = TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_user_port_wins_over_default = 0.
    00 s = .
    0.00 s = .
    0.00 s = . TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_default_log_request_when_no_config_file = TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_default_log_request_when_no_config_file = TestRackUp::TestUserSuppliedOptionsIsNotPresent#test_default_
    log_request_when_no_config_file = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestRackUp::TestPathHandler#test_handler_boots = TestRackUp::TestPathHandler#test_handler_boots = TestRackUp::TestPathHandler#test_handler_boots = 0.52 s = .
    0.52 s = .
    0.52 s = .
    TestConfigFileSingle#test_custom_logger_from_DSL = TestConfigFileSingle#test_custom_logger_from_DSL = TestConfigFileSingle#test_custom_logger_from_DSL = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestBundlePruner#test_extra_runtime_deps_paths_is_correctly_built = TestBundlePruner#test_extra_runtime_deps_paths_is_correctly_built = TestBundlePruner#test_extra_runtime_deps_paths_is_correctly_built = 0.00 s = S
    0.00 s = S
    0.00 s = S
    TestBundlePruner#test_puma_wild_path_is_an_absolute_path = TestBundlePruner#test_puma_wild_path_is_an_absolute_path = TestBundlePruner#test_puma_wild_path_is_an_absolute_path = 0.00 s = S
    0.00 s = S
    0.00 s = S TestBundlePruner#test_paths_to_require_after_prune_is_correctly_built_with_extra_deps = TestBundlePruner#test_paths_to_require_after_prune_is_correctly_built_with_extra_deps = TestBundlePruner#test_paths_to_require_after_prune_is_correctly_built_with_
    extra_deps = 0.00 s = S
    0.00 s = S
    0.00 s = S TestBundlePruner#test_paths_to_require_after_prune_is_correctly_built_for_no_extra_deps = TestBundlePruner#test_paths_to_require_after_prune_is_correctly_built_for_no_extra_deps = TestBundlePruner#test_paths_to_require_after_prune_is_correctly_built_
    for_no_extra_deps = 0.00 s = S
    0.00 s = S
    0.00 s = S TestBundlePruner#test_extra_runtime_deps_paths_is_empty_for_no_config = TestBundlePruner#test_extra_runtime_deps_paths_is_empty_for_no_config = TestBundlePruner#test_extra_runtime_deps_paths_is_empty_for_no_config = 0.02 s = .
    0.02 s = .
    0.02 s = .
    TestLauncher#test_puma_stats = TestLauncher#test_puma_stats = TestLauncher#test_puma_stats = 0.01 s = .
    0.01 s = .
    0.01 s = .
    TestLauncher#test_prints_thread_traces = TestLauncher#test_prints_thread_traces = TestLauncher#test_prints_thread_traces = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestLauncher#test_fire_on_stopped = TestLauncher#test_fire_on_stopped = TestLauncher#test_fire_on_stopped = 0.04 s = .
    0.04 s = .
    0.04 s = .
    TestLauncher#test_pid_file = TestLauncher#test_pid_file = TestLauncher#test_pid_file = 0.03 s = .
    0.03 s = .
    0.03 s = .
    TestLauncher#test_state_permission_nil = TestLauncher#test_state_permission_nil = TestLauncher#test_state_permission_nil = 0.04 s = .
    0.04 s = .
    0.04 s = .
    TestLauncher#test_no_state_permission = TestLauncher#test_no_state_permission = TestLauncher#test_no_state_permission = 0.01 s = .
    0.01 s = .
    0.01 s = .
    TestLauncher#test_log_config_enabled = TestLauncher#test_log_config_enabled = TestLauncher#test_log_config_enabled = 0.00 s = .
    0.00 s = .
    0.00 s = .
    TestLauncher#test_state_permission_0640 = TestLauncher#test_state_permission_0640 = TestLauncher#test_state_permission_0640 = 0.01 s = .
    0.01 s = .
    0.01 s = .

    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)