@@ -32,6 +32,54 @@ TEST_P(urProgramGetInfoTest, Success) {
3232 property_value.resize (property_size);
3333 ASSERT_SUCCESS (urProgramGetInfo (program, property_name, property_size,
3434 property_value.data (), nullptr ));
35+ switch (property_name) {
36+ case UR_PROGRAM_INFO_REFERENCE_COUNT: {
37+ auto returned_reference_count =
38+ reinterpret_cast <uint32_t *>(property_value.data ());
39+ ASSERT_GT (*returned_reference_count, 0U );
40+ break ;
41+ }
42+ case UR_PROGRAM_INFO_CONTEXT: {
43+ auto returned_context =
44+ reinterpret_cast <ur_context_handle_t *>(property_value.data ());
45+ ASSERT_EQ (context, *returned_context);
46+ break ;
47+ }
48+ case UR_PROGRAM_INFO_NUM_DEVICES: {
49+ auto returned_num_of_devices =
50+ reinterpret_cast <uint32_t *>(property_value.data ());
51+ ASSERT_GE (uur::DevicesEnvironment::instance->devices .size (),
52+ *returned_num_of_devices);
53+ break ;
54+ }
55+ case UR_PROGRAM_INFO_DEVICES: {
56+ auto returned_devices =
57+ reinterpret_cast <ur_device_handle_t *>(property_value.data ());
58+ size_t devices_count = property_size / sizeof (ur_device_handle_t );
59+ ASSERT_GT (devices_count, 0 );
60+ for (uint32_t i = 0 ; i < devices_count; i++) {
61+ auto &devices = uur::DevicesEnvironment::instance->devices ;
62+ auto queried_device =
63+ std::find (devices.begin (), devices.end (), returned_devices[i]);
64+ EXPECT_TRUE (queried_device != devices.end ());
65+ }
66+ break ;
67+ }
68+ case UR_PROGRAM_INFO_NUM_KERNELS: {
69+ auto returned_num_of_kernels =
70+ reinterpret_cast <uint32_t *>(property_value.data ());
71+ ASSERT_GT (*returned_num_of_kernels, 0U );
72+ break ;
73+ }
74+ case UR_PROGRAM_INFO_KERNEL_NAMES: {
75+ auto returned_kernel_names =
76+ reinterpret_cast <char *>(property_value.data ());
77+ ASSERT_STRNE (returned_kernel_names, " " );
78+ break ;
79+ }
80+ default :
81+ break ;
82+ }
3583}
3684
3785TEST_P (urProgramGetInfoTest, InvalidNullHandleProgram) {
0 commit comments