Files
ruby/tool/rbs_skip_tests
Takashi Kokubun db1bde0969 Skip rbs DirSingletonTest#test_for_fd to stop flaky EBADF (#19542)
test_for_fd in rbs 4.2.0 calls Dir.for_fd twice with the fd of a Dir it
then closes, and never closes the two Dirs Dir.for_fd returned. Both
still own that fd number. When GC later finalizes them, closedir()
closes whatever file has since been given the same number, and the
owner of that file fails on close with:

    Errno::EBADF: Bad file descriptor @ fptr_finalize_flush

In test-bundled-gems this usually hits FileTestSingletonTest, which
runs right after Dir_test.rb and opens files in every test. Whether it
fails depends on GC timing, so it shows up as a flake.

https://github.com/ruby/rbs/pull/3191 fixes the test upstream, but no released rbs has it yet.
Skip the test until the bundled rbs includes that fix.
2026-10-26 16:30:08 -07:00

94 lines
4.6 KiB
Plaintext

# Running tests of RBS gem may fail because of various reasons.
# You can skip tests of RBS gem using this file, instead of pushing a new commit to `ruby/rbs` repository.
#
# The most frequently seen reason is the incompatibilities introduced to the unreleased version, including
#
# * Strict argument type check is introduced
# * A required method parameter is added
# * A method/class is removed
#
# Feel free to skip the tests with this file for that case.
#
# Syntax:
#
# $(test-case-name) ` ` $(optional comment) # Skipping single test case
# $(test-class-name) ` ` $(optional comment) # Skipping a test class
#
## Failed tests because of testing environment
test_collection_install(RBS::CliTest) running tests without Bundler
test_collection_install__mutex_m__bundled(RBS::CliTest) running tests without Bundler
test_collection_install__mutex_m__config__bundled(RBS::CliTest) running tests without Bundler
test_collection_install__mutex_m__config__no_bundled(RBS::CliTest) running tests without Bundler
test_collection_install__mutex_m__config__stdlib_source(RBS::CliTest) running tests without Bundler
test_collection_install__mutex_m__dependency_no_bundled(RBS::CliTest) running tests without Bundler
test_collection_install__mutex_m__no_bundled(RBS::CliTest) running tests without Bundler
test_collection_install__mutex_m__rbs_dependency_and__gem_dependency(RBS::CliTest) running tests without Bundler
test_collection_install__nongem_stdlib_no_warning(RBS::CliTest) running tests without Bundler
test_collection_install_frozen(RBS::CliTest) running tests without Bundler
test_collection_install_gemspec(RBS::CliTest) running tests without Bundler
test_collection_update(RBS::CliTest) running tests without Bundler
NetSingletonTest depending on external resources
NetInstanceTest depending on external resources
TestHTTPRequest depending on external resources
TestSingletonNetHTTPResponse depending on external resources
TestInstanceNetHTTPResponse depending on external resources
test_URI_open(OpenURISingletonTest) depending on external resources
test_TOPDIR(RbConfigSingletonTest) `TOPDIR` is `nil` during CI while RBS type is declared as `String`
# Failing because ObjectSpace.count_nodes has been removed
test_count_nodes(ObjectSpaceTest)
# Class#initialize has been removed
test_initialize(ClassInstanceTest)
## Unknown failures
# NoMethodError: undefined method 'inspect' for an instance of RBS::UnitTest::Convertibles::ToInt
test_compile(RegexpSingletonTest)
test_linear_time?(RegexpSingletonTest)
test_new(RegexpSingletonTest)
# Errno::ENOENT: No such file or directory - bundle
test_collection_install__pathname_set(RBS::CliTest)
test_collection_install__set_pathname__manifest(RBS::CliTest)
# json-schema passes the obsolete `quirks_mode` parameter, but json gem v3 rejects it
RBS::SchemaTest
# RBS 4.0.3's JSON tests use APIs removed or changed in json gem v3
test_dump(JSONInstanceTest)
test_parse(JSONInstanceTest)
test_parse!(JSONInstanceTest)
test_create_id(JSONSingletonTest)
test_create_id_eq(JSONSingletonTest)
test_dump(JSONSingletonTest)
test_load(JSONSingletonTest)
test_load_file(JSONSingletonTest)
test_load_file!(JSONSingletonTest)
test_parse(JSONSingletonTest)
test_parse!(JSONSingletonTest)
# RBS 4.0.3's RDoc plugin is incompatible with the RDoc 7.2.0 development revision
test_attr_decl_1(RDocPluginParserTest)
test_attr_decl_2(RDocPluginParserTest)
test_instance_method_1(RDocPluginParserTest)
test_instance_method_comment_and_tokens(RDocPluginParserTest)
test_instance_method_generic(RDocPluginParserTest)
test_instance_method_with_block(RDocPluginParserTest)
test_method_alias_decl_1(RDocPluginParserTest)
test_method_alias_decl_2(RDocPluginParserTest)
## Restore-state bug in the test itself (fixed in ruby/rbs after 4.0.3)
test_enable(GCSingletonTest) leaves GC disabled for the rest of the process (GC.enable return value misread); every later stdlib test then runs with GC off and the process peaks multi-GB (NoMemoryError on Windows CI)
test_stress_and_stress=(GCSingletonTest) runs assert_send_type with GC.stress enabled; the type check allocates heavily and cannot finish in CI time (was hidden while test_enable left GC disabled)
test_reachable_objects_from_root(ObjectSpaceTest) assert_send_type eagerly builds trace.inspect of the whole roots hash; with per-Ractor GC roots the inspect is huge and the process peaks multi-GB (NoMemoryError on Windows CI)
## Descriptor leak in the test itself (fixed in ruby/rbs#3191, not in rbs 4.2.0)
test_for_fd(DirSingletonTest) passes the same fd to Dir.for_fd twice and never closes the returned Dirs; once their finalizers run, closedir closes whatever file reused that fd, and a later test fails with Errno::EBADF (e.g. FileTestSingletonTest)