diff --git a/.gitignore b/.gitignore index e69de29b..d6b130cf 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +.claude/settings.local.json diff --git a/ruby/lib/ci/queue/grind.rb b/ruby/lib/ci/queue/grind.rb index 1b93317b..12db730b 100644 --- a/ruby/lib/ci/queue/grind.rb +++ b/ruby/lib/ci/queue/grind.rb @@ -10,6 +10,12 @@ def from_uri(uri, config) end end + # Grind always eagerly loads test files and populates @index via + # Static#populate, so poll uses the @index path. Bypass entry_resolver + # to avoid JSON-formatting overhead on potentially millions of entries. + def entry_resolver; nil; end + def entry_resolver=(_); end + def initialize(path, config) io = path == '-' ? STDIN : ::File.open(path) diff --git a/ruby/test/ci/queue/redis_test.rb b/ruby/test/ci/queue/redis_test.rb index 0a1d4643..18339a55 100644 --- a/ruby/test/ci/queue/redis_test.rb +++ b/ruby/test/ci/queue/redis_test.rb @@ -510,11 +510,12 @@ def test_resolve_entry_falls_back_to_resolver def test_resolve_entry_returns_unresolved_entry_without_index_or_resolver queue = worker(1, populate: false) - result = queue.send(:resolve_entry, "MissingTest#test_bar#{DELIMITER}/tmp/missing.rb") + entry = CI::Queue::QueueEntry.format("MissingTest#test_bar", "/tmp/missing.rb") + result = queue.send(:resolve_entry, entry) assert_instance_of CI::Queue::Redis::UnresolvedEntry, result assert_equal "MissingTest#test_bar", result.id - assert_equal "MissingTest#test_bar#{DELIMITER}/tmp/missing.rb", result.queue_entry + assert_equal entry, result.queue_entry end def test_continuously_timing_out_tests