Skip to content

Cudf_streaming dedup tests from rapidsmpf - #22858

Merged
rapids-bot[bot] merged 8 commits into
NVIDIA:mainfrom
nirandaperera:cudf-streaming-dedup-tests
Jun 17, 2026
Merged

Cudf_streaming dedup tests from rapidsmpf #22858
rapids-bot[bot] merged 8 commits into
NVIDIA:mainfrom
nirandaperera:cudf-streaming-dedup-tests

Conversation

@nirandaperera

Copy link
Copy Markdown
Contributor

Description

Remove duplicated tests

Checklist

  • I am familiar with the Contributing Guidelines.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

Signed-off-by: niranda perera <niranda.perera@gmail.com>
Signed-off-by: niranda perera <niranda.perera@gmail.com>
@github-actions github-actions Bot added libcudf Affects libcudf (C++/CUDA) code. CMake CMake build issue labels Jun 11, 2026
@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 30956430-e84a-404a-9e7a-e934a906761d

📥 Commits

Reviewing files that changed from the base of the PR and between 326c916 and 0e02176.

📒 Files selected for processing (1)
  • cpp/libcudf_streaming/tests/CMakeLists.txt
💤 Files with no reviewable changes (1)
  • cpp/libcudf_streaming/tests/CMakeLists.txt

📝 Walkthrough

Summary by CodeRabbit

  • Tests
    • Removed multiple streaming test cases and deleted whole test files, including shuffler “many streams” and allgather coverage; the test target now includes a reduced set of streaming sources.
    • Simplified shuffler streaming and fixture setup/teardown, and inlined the end-to-end test flow for clearer, more direct execution.
    • Refocused partition and leaf-actor test coverage by dropping selected scenarios while keeping core round-trip and push/pull validations.
    • Streamlined additional shuffler test drivers to interact with the shuffler API directly.

Walkthrough

This PR removes streaming test files (AllGather and ManyStreams), prunes additional test cases from leaf and partition tests, simplifies StreamingShuffler fixture hierarchy to inherit directly from BaseStreamingFixture, and refactors test_shuffler to call rapidsmpf::shuffler::Shuffler APIs directly instead of accepting callback functors.

Changes

Test suite cleanup and refactoring

Layer / File(s) Summary
Build wiring cleanup
cpp/libcudf_streaming/tests/CMakeLists.txt
Build configuration removes streaming/test_allgather.cpp and test_shuffler_many_streams.cpp from compiled test sources.
Streaming test case consolidation
cpp/libcudf_streaming/tests/streaming/test_leaf_actor.cpp, cpp/libcudf_streaming/tests/streaming/test_partition.cpp
Test files retain only core test cases: PushAndPullChunks in leaf_actor and PackUnpackRoundTrip in partition; removes throttling adaptor, bounded queue, and partition mapping test coverage.
Streaming shuffler fixture and test refactor
cpp/libcudf_streaming/tests/streaming/test_shuffler.cpp
StreamingShuffler now inherits directly from BaseStreamingFixture; SetUp/TearDown delegate to base class thread-aware methods. basic_shuffler test is inlined and instantiates actor::shuffler(...) directly.
Test_shuffler helper signature and call-site updates
cpp/libcudf_streaming/tests/test_shuffler.cpp
test_shuffler signature simplified to accept communicator and Shuffler& reference, removing templated InsertFn/InsertFinishedFn parameters. Insertions now call shuffler.insert(...) and shuffler.insert_finished(). Header includes for cudf_test and finish_counter removed.
Concurrent shuffle test restructuring
cpp/libcudf_streaming/tests/test_shuffler.cpp
Removes RunTest/RunTestTemplate helper templates; rewrites ConcurrentShuffleTest.round_trip to construct per-thread Shuffler instances and invoke test_shuffler directly with explicit async task synchronization.
Standalone test case removals
cpp/libcudf_streaming/tests/test_shuffler.cpp
Removes FinishCounterTests and related unit-test blocks; deletes ExtractEmptyPartitionsTest fixture and ShufflerTest.multiple_shutdowns case.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related issues

Suggested reviewers

  • pentschev
  • madsbk
  • vyasr
  • bdice
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 27.27% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly indicates the PR removes duplicated tests from cudf_streaming relative to rapidsmpf, which aligns with the changeset.
Description check ✅ Passed The description directly states the purpose is to remove duplicated tests, which matches the changeset's removal of multiple test files and test cases.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@cpp/libcudf_streaming/tests/test_shuffler.cpp`:
- Around line 234-236: The loop over futures in test_shuffler.cpp currently
calls f.wait(), which won't rethrow exceptions from asynchronous workers;
replace the wait() calls with ASSERT_NO_THROW(f.get()) so any exceptions from
the async tasks (the futures in the futures container) are surfaced and cause
the test to fail. Locate the loop that iterates "for (auto& f : futures)" and
change the body to call get() on each future inside ASSERT_NO_THROW rather than
calling wait().
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: e0148017-db23-45d9-94cd-fe61c8d32e23

📥 Commits

Reviewing files that changed from the base of the PR and between b5588b6 and 4e870e6.

📒 Files selected for processing (7)
  • cpp/libcudf_streaming/tests/CMakeLists.txt
  • cpp/libcudf_streaming/tests/streaming/test_allgather.cpp
  • cpp/libcudf_streaming/tests/streaming/test_leaf_actor.cpp
  • cpp/libcudf_streaming/tests/streaming/test_partition.cpp
  • cpp/libcudf_streaming/tests/streaming/test_shuffler.cpp
  • cpp/libcudf_streaming/tests/test_shuffler.cpp
  • cpp/libcudf_streaming/tests/test_shuffler_many_streams.cpp
💤 Files with no reviewable changes (5)
  • cpp/libcudf_streaming/tests/test_shuffler_many_streams.cpp
  • cpp/libcudf_streaming/tests/CMakeLists.txt
  • cpp/libcudf_streaming/tests/streaming/test_allgather.cpp
  • cpp/libcudf_streaming/tests/streaming/test_leaf_actor.cpp
  • cpp/libcudf_streaming/tests/streaming/test_partition.cpp

Comment thread cpp/libcudf_streaming/tests/test_shuffler.cpp
@nirandaperera nirandaperera added improvement Improvement / enhancement to an existing function non-breaking Non-breaking change labels Jun 11, 2026

@pentschev pentschev left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a lot of cuDF-specific testing being removed here, that's not what we agreed previously. In RapidsMPF we added various generic-tests, but we should keep testing cuDF-specific stuff here, therefore I don't see why several of the tests are being removed, especially not under a test deduplication justification.

Comment thread cpp/libcudf_streaming/tests/streaming/test_shuffler.cpp
Comment thread cpp/libcudf_streaming/tests/test_shuffler.cpp
Comment thread cpp/libcudf_streaming/tests/test_shuffler.cpp
@nirandaperera
nirandaperera requested a review from pentschev June 11, 2026 20:35

@pentschev pentschev left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright, if you confirm my comment/question in cpp/libcudf_streaming/tests/streaming/test_shuffler.cpp is correct, then I think we're good. Most of my comments were noise on my part, sorry about that! There's also a CodeRabbit comment that seems relevant, would be good to get addressed. Thanks Niranda.

Comment thread cpp/libcudf_streaming/tests/streaming/test_shuffler.cpp
Comment thread cpp/libcudf_streaming/tests/test_shuffler.cpp
Comment thread cpp/libcudf_streaming/tests/test_shuffler.cpp
Comment thread cpp/libcudf_streaming/tests/test_shuffler_many_streams.cpp Outdated
Removed 'test_shuffler_many_streams.cpp' from the test list.
@nirandaperera

Copy link
Copy Markdown
Contributor Author

/ok to test 0e02176

@pentschev

Copy link
Copy Markdown
Contributor

/merge

@rapids-bot
rapids-bot Bot merged commit 96896b1 into NVIDIA:main Jun 17, 2026
257 of 259 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CMake CMake build issue improvement Improvement / enhancement to an existing function libcudf Affects libcudf (C++/CUDA) code. non-breaking Non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants