diff --git a/test/nvexec/CMakeLists.txt b/test/nvexec/CMakeLists.txt index b304800f1..3eca1df94 100644 --- a/test/nvexec/CMakeLists.txt +++ b/test/nvexec/CMakeLists.txt @@ -15,6 +15,7 @@ #============================================================================= set(nvexec_test_sources + continues_on.cpp bulk.cpp ensure_started.cpp start_detached.cpp diff --git a/test/nvexec/continues_on.cpp b/test/nvexec/continues_on.cpp new file mode 100644 index 000000000..8f7375637 --- /dev/null +++ b/test/nvexec/continues_on.cpp @@ -0,0 +1,37 @@ +#include +#include + +#include "nvexec/stream_context.cuh" + +namespace +{ + TEST_CASE("continues on after just", "[cuda][stream][adaptors][continues_on]") + { + nvexec::stream_context ctx; + + auto sndr = STDEXEC::just() | STDEXEC::continues_on(ctx.get_scheduler()); + + STDEXEC::sync_wait(std::move(sndr)); + } + + TEST_CASE("continues on after schedule", "[cuda][stream][adaptors][continues_on]") + { + nvexec::stream_context ctx; + + auto sndr = STDEXEC::schedule(ctx.get_scheduler()) + | STDEXEC::continues_on(ctx.get_scheduler()); + + STDEXEC::sync_wait(std::move(sndr)); + } + + TEST_CASE("continues on twice in a row should work", "[cuda][stream][adaptors][continues_on]") + { + nvexec::stream_context ctx; + + auto sndr = STDEXEC::just() + | STDEXEC::continues_on(ctx.get_scheduler()) + | STDEXEC::continues_on(ctx.get_scheduler()); + + STDEXEC::sync_wait(std::move(sndr)); + } +} // namespace