@@ -23,7 +23,7 @@ UUR_TEST_SUITE_P(urQueueGetInfoTestWithInfoParam,
2323 UR_QUEUE_INFO_DEVICE_DEFAULT,
2424 UR_QUEUE_INFO_FLAGS,
2525 UR_QUEUE_INFO_REFERENCE_COUNT,
26- UR_QUEUE_INFO_SIZE, UR_QUEUE_INFO_EMPTY),
26+ UR_QUEUE_INFO_EMPTY),
2727 uur::deviceTestWithParamPrinter<ur_queue_info_t>);
2828
2929TEST_P (urQueueGetInfoTestWithInfoParam, Success) {
@@ -70,6 +70,59 @@ TEST_P(urQueueGetInfoTestWithInfoParam, Success) {
7070 }
7171}
7272
73+ struct urQueueGetInfoDeviceQueueTestWithInfoParam
74+ : public uur::urContextTestWithParam<ur_queue_info_t > {
75+ void SetUp () {
76+ urContextTestWithParam<ur_queue_info_t >::SetUp ();
77+ ur_queue_flags_t deviceQueueCapabilities;
78+ ASSERT_SUCCESS (
79+ urDeviceGetInfo (device, UR_DEVICE_INFO_QUEUE_ON_DEVICE_PROPERTIES,
80+ sizeof (deviceQueueCapabilities),
81+ &deviceQueueCapabilities, nullptr ));
82+ if (!deviceQueueCapabilities) {
83+ GTEST_SKIP () << " Queue on device is not supported." ;
84+ }
85+ ASSERT_SUCCESS (
86+ urQueueCreate (context, device, &queueProperties, &queue));
87+ }
88+
89+ void TearDown () {
90+ if (queue) {
91+ ASSERT_SUCCESS (urQueueRelease (queue));
92+ }
93+ urContextTestWithParam<ur_queue_info_t >::TearDown ();
94+ }
95+
96+ ur_queue_handle_t queue = nullptr ;
97+ ur_queue_properties_t queueProperties = {
98+ UR_STRUCTURE_TYPE_QUEUE_PROPERTIES, nullptr ,
99+ UR_QUEUE_FLAG_ON_DEVICE | UR_QUEUE_FLAG_OUT_OF_ORDER_EXEC_MODE_ENABLE};
100+ };
101+
102+ UUR_TEST_SUITE_P (urQueueGetInfoDeviceQueueTestWithInfoParam,
103+ ::testing::Values (UR_QUEUE_INFO_CONTEXT, UR_QUEUE_INFO_DEVICE,
104+ UR_QUEUE_INFO_DEVICE_DEFAULT,
105+ UR_QUEUE_INFO_FLAGS,
106+ UR_QUEUE_INFO_REFERENCE_COUNT,
107+ UR_QUEUE_INFO_SIZE, UR_QUEUE_INFO_EMPTY),
108+ uur::deviceTestWithParamPrinter<ur_queue_info_t>);
109+
110+ TEST_P (urQueueGetInfoDeviceQueueTestWithInfoParam, Success) {
111+ ur_queue_info_t info_type = getParam ();
112+ size_t size = 0 ;
113+ ASSERT_SUCCESS (urQueueGetInfo (queue, info_type, 0 , nullptr , &size));
114+ ASSERT_NE (size, 0 );
115+
116+ if (const auto expected_size = queue_info_size_map.find (info_type);
117+ expected_size != queue_info_size_map.end ()) {
118+ ASSERT_EQ (expected_size->second , size);
119+ }
120+
121+ std::vector<uint8_t > data (size);
122+ ASSERT_SUCCESS (
123+ urQueueGetInfo (queue, info_type, size, data.data (), nullptr ));
124+ }
125+
73126using urQueueGetInfoTest = uur::urQueueTest;
74127UUR_INSTANTIATE_DEVICE_TEST_SUITE_P (urQueueGetInfoTest);
75128
0 commit comments