@@ -25,13 +25,31 @@ UUR_TEST_SUITE_P(
2525
2626TEST_P (urProgramGetInfoTest, Success) {
2727 auto property_name = getParam ();
28- size_t property_size = 0 ;
2928 std::vector<char > property_value;
30- ASSERT_SUCCESS (
31- urProgramGetInfo (program, property_name, 0 , nullptr , &property_size));
32- property_value.resize (property_size);
33- ASSERT_SUCCESS (urProgramGetInfo (program, property_name, property_size,
34- property_value.data (), nullptr ));
29+ if (property_name == UR_PROGRAM_INFO_BINARIES) {
30+ size_t binary_sizes_len = 0 ;
31+ ASSERT_SUCCESS (urProgramGetInfo (program, UR_PROGRAM_INFO_BINARY_SIZES,
32+ 0 , nullptr , &binary_sizes_len));
33+ // Due to how the fixtures + env are set up we should only have one
34+ // device associated with program, so one binary.
35+ ASSERT_EQ (binary_sizes_len / sizeof (size_t ), 1 );
36+ size_t binary_sizes[1 ] = {binary_sizes_len};
37+ ASSERT_SUCCESS (urProgramGetInfo (program, UR_PROGRAM_INFO_BINARY_SIZES,
38+ binary_sizes_len, binary_sizes,
39+ nullptr ));
40+ std::vector<char > binary (binary_sizes[0 ]);
41+ char *binaries[1 ] = {binary.data ()};
42+ ASSERT_SUCCESS (urProgramGetInfo (program, UR_PROGRAM_INFO_BINARIES,
43+ sizeof (binaries[0 ]), binaries,
44+ nullptr ));
45+ } else {
46+ size_t property_size = 0 ;
47+ ASSERT_SUCCESS (urProgramGetInfo (program, property_name, 0 , nullptr ,
48+ &property_size));
49+ property_value.resize (property_size);
50+ ASSERT_SUCCESS (urProgramGetInfo (program, property_name, property_size,
51+ property_value.data (), nullptr ));
52+ }
3553}
3654
3755TEST_P (urProgramGetInfoTest, InvalidNullHandleProgram) {
0 commit comments