diff --git a/sycl/unittests/queue/CMakeLists.txt b/sycl/unittests/queue/CMakeLists.txt index e284c07766903..4092a144d4fcd 100644 --- a/sycl/unittests/queue/CMakeLists.txt +++ b/sycl/unittests/queue/CMakeLists.txt @@ -5,4 +5,5 @@ add_sycl_unittest(QueueTests OBJECT Wait.cpp GetProfilingInfo.cpp ShortcutFunctions.cpp + InOrderQueue.cpp ) diff --git a/sycl/unittests/queue/InOrderQueue.cpp b/sycl/unittests/queue/InOrderQueue.cpp new file mode 100644 index 0000000000000..0279dbf4dfc12 --- /dev/null +++ b/sycl/unittests/queue/InOrderQueue.cpp @@ -0,0 +1,28 @@ +#include +#include +#include +#include + +using namespace sycl; + +static bool InOrderFlagSeen = false; +pi_result piQueueCreateRedefineBefore(pi_context context, pi_device device, + pi_queue_properties properties, + pi_queue *queue) { + InOrderFlagSeen = !(properties & PI_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE); + return PI_SUCCESS; +} + +TEST(InOrderQueue, CheckFlagIsPassed) { + unittest::PiMock Mock; + platform Plt = Mock.getPlatform(); + + Mock.redefineBefore( + piQueueCreateRedefineBefore); + + EXPECT_FALSE(InOrderFlagSeen); + queue q1{}; + EXPECT_FALSE(InOrderFlagSeen); + queue q2{property::queue::in_order{}}; + EXPECT_TRUE(InOrderFlagSeen); +}