Skip to content

Commit 405d015

Browse files
committed
Move urProgramGetInfo success test from a switch to individual tests.
Replaced LogIsNullTerminated with SuccessLog.
1 parent 9c652ff commit 405d015

6 files changed

+228
-167
lines changed

test/conformance/program/program_adapter_cuda.match

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ urProgramBuildTest.BuildFailure/*
33
{{OPT}}urProgramCreateWithILTest.SuccessWithProperties/*
44
{{OPT}}urProgramCreateWithILTest.BuildInvalidProgram/*
55
# This test flakily fails
6-
{{OPT}}urProgramGetBuildInfoSingleTest.LogIsNullTerminated/*
6+
{{OPT}}urProgramGetBuildInfoTest.SuccessLog/*
77
{{OPT}}urProgramSetSpecializationConstantsTest.Success/*
88
{{OPT}}urProgramSetSpecializationConstantsTest.UseDefaultValue/*
99
urProgramSetSpecializationConstantsTest.InvalidValueSize/*
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
urProgramSetSpecializationConstantsTest.InvalidValueSize/*
22
urProgramSetSpecializationConstantsTest.InvalidValueId/*
33
urProgramSetSpecializationConstantsTest.InvalidValuePtr/*
4-
urProgramGetBuildInfoTest.Success/*UR_PROGRAM_BUILD_INFO_STATUS
4+
urProgramGetBuildInfoTest.SuccessStatus/*
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
urProgramSetSpecializationConstantsTest.InvalidValueSize/*
22
urProgramSetSpecializationConstantsTest.InvalidValueId/*
33
urProgramSetSpecializationConstantsTest.InvalidValuePtr/*
4-
urProgramGetBuildInfoTest.Success/*UR_PROGRAM_BUILD_INFO_STATUS
4+
urProgramGetBuildInfoTest.SuccessStatus/*
55
{{OPT}}urMultiDeviceCommandBufferExpTest.*

test/conformance/program/program_adapter_native_cpu.match

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,12 @@
2424
{{OPT}}urProgramCreateWithNativeHandleTest.Success/*
2525
{{OPT}}urProgramCreateWithNativeHandleTest.InvalidNullHandleContext/*
2626
{{OPT}}urProgramCreateWithNativeHandleTest.InvalidNullPointerProgram/*
27-
{{OPT}}urProgramGetBuildInfoTest.Success/*
2827
{{OPT}}urProgramGetBuildInfoTest.InvalidNullHandleProgram/*
2928
{{OPT}}urProgramGetBuildInfoTest.InvalidNullHandleDevice/*
3029
{{OPT}}urProgramGetBuildInfoTest.InvalidEnumeration/*
31-
{{OPT}}urProgramGetBuildInfoSingleTest.LogIsNullTerminated/*
30+
{{OPT}}urProgramGetBuildInfoTest.SuccessLog/*
31+
{{OPT}}urProgramGetBuildInfoTest.SuccessOptions/*
32+
{{OPT}}urProgramGetBuildInfoTest.SuccessBinaryType/*
3233
{{OPT}}urProgramGetFunctionPointerTest.Success/*
3334
{{OPT}}urProgramGetFunctionPointerTest.InvalidKernelName/*
3435
{{OPT}}urProgramGetFunctionPointerTest.InvalidNullHandleDevice/*
@@ -42,16 +43,24 @@
4243
{{OPT}}urProgramGetGlobalVariablePointerTest.InvalidNullPointerVariableName/*
4344
{{OPT}}urProgramGetGlobalVariablePointerTest.InvalidNullPointerVariablePointer/*
4445
{{OPT}}urProgramGetGlobalVariablePointerTest.InvalidProgramExecutable/*
45-
{{OPT}}urProgramGetInfoTest.Success/*
46+
{{OPT}}urProgramGetInfoTest.SuccessReferenceCount/*
47+
{{OPT}}urProgramGetInfoTest.SuccessContext/*
48+
{{OPT}}urProgramGetInfoTest.SuccessNumDevices/*
49+
{{OPT}}urProgramGetInfoTest.SuccessDevices/*
50+
{{OPT}}urProgramGetInfoTest.SuccessIL/*
51+
{{OPT}}urProgramGetInfoTest.SuccessBinarySizes/*
52+
{{OPT}}urProgramGetInfoTest.SuccessBinaries/*
53+
{{OPT}}urProgramGetInfoTest.SuccessNumKernels/*
54+
{{OPT}}urProgramGetInfoTest.SuccessKernelNames/*
4655
{{OPT}}urProgramGetInfoTest.InvalidNullHandleProgram/*
4756
{{OPT}}urProgramGetInfoTest.InvalidEnumeration/*
4857
{{OPT}}urProgramGetInfoTest.InvalidSizeZero/*
4958
{{OPT}}urProgramGetInfoTest.InvalidSizeSmall/*
5059
{{OPT}}urProgramGetInfoTest.InvalidNullPointerPropValue/*
5160
{{OPT}}urProgramGetInfoTest.InvalidNullPointerPropValueRet/*
52-
{{OPT}}urProgramGetInfoSingleTest.NumDevicesIsNonzero/*
53-
{{OPT}}urProgramGetInfoSingleTest.NumDevicesMatchesDeviceArray/*
54-
{{OPT}}urProgramGetInfoSingleTest.NumDevicesMatchesContextNumDevices/*
61+
{{OPT}}urProgramGetInfoTest.NumDevicesIsNonzero/*
62+
{{OPT}}urProgramGetInfoTest.NumDevicesMatchesDeviceArray/*
63+
{{OPT}}urProgramGetInfoTest.NumDevicesMatchesContextNumDevices/*
5564
{{OPT}}urProgramGetNativeHandleTest.Success/*
5665
{{OPT}}urProgramGetNativeHandleTest.InvalidNullHandleProgram/*
5766
{{OPT}}urProgramGetNativeHandleTest.InvalidNullPointerNativeProgram/*

test/conformance/program/urProgramGetBuildInfo.cpp

Lines changed: 64 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -5,42 +5,76 @@
55

66
#include <uur/fixtures.h>
77

8-
struct urProgramGetBuildInfoTest
9-
: uur::urProgramTestWithParam<ur_program_build_info_t> {
8+
struct urProgramGetBuildInfoTest : uur::urProgramTest {
109
void SetUp() override {
11-
UUR_RETURN_ON_FATAL_FAILURE(
12-
urProgramTestWithParam<ur_program_build_info_t>::SetUp());
10+
UUR_RETURN_ON_FATAL_FAILURE(urProgramTest::SetUp());
1311
ASSERT_SUCCESS(urProgramBuild(this->context, program, nullptr));
1412
}
1513
};
14+
UUR_INSTANTIATE_KERNEL_TEST_SUITE_P(urProgramGetBuildInfoTest);
1615

17-
UUR_TEST_SUITE_P(urProgramGetBuildInfoTest,
18-
::testing::Values(UR_PROGRAM_BUILD_INFO_STATUS,
19-
UR_PROGRAM_BUILD_INFO_OPTIONS,
20-
UR_PROGRAM_BUILD_INFO_LOG,
21-
UR_PROGRAM_BUILD_INFO_BINARY_TYPE),
22-
uur::deviceTestWithParamPrinter<ur_program_build_info_t>);
16+
TEST_P(urProgramGetBuildInfoTest, SuccessStatus) {
17+
size_t size = 0;
18+
auto info_type = UR_PROGRAM_BUILD_INFO_STATUS;
19+
ASSERT_SUCCESS(
20+
urProgramGetBuildInfo(program, device, info_type, 0, nullptr, &size));
21+
ASSERT_EQ(sizeof(ur_program_build_status_t), size);
2322

24-
struct urProgramGetBuildInfoSingleTest : uur::urProgramTest {
25-
void SetUp() override {
26-
UUR_RETURN_ON_FATAL_FAILURE(urProgramTest::SetUp());
27-
ASSERT_SUCCESS(urProgramBuild(this->context, program, nullptr));
28-
}
29-
};
30-
UUR_INSTANTIATE_KERNEL_TEST_SUITE_P(urProgramGetBuildInfoSingleTest);
31-
32-
TEST_P(urProgramGetBuildInfoTest, Success) {
33-
auto property_name = getParam();
34-
size_t property_size = 0;
35-
std::vector<char> property_value;
36-
ASSERT_SUCCESS_OR_OPTIONAL_QUERY(
37-
urProgramGetBuildInfo(program, device, property_name, 0, nullptr,
38-
&property_size),
39-
property_name);
40-
property_value.resize(property_size);
41-
ASSERT_SUCCESS(urProgramGetBuildInfo(program, device, property_name,
42-
property_size, property_value.data(),
43-
nullptr));
23+
ur_program_build_status_t returned_status =
24+
UR_PROGRAM_BUILD_STATUS_FORCE_UINT32;
25+
ASSERT_SUCCESS(urProgramGetBuildInfo(program, device, info_type, size,
26+
&returned_status, nullptr));
27+
28+
ASSERT_GE(returned_status, UR_PROGRAM_BUILD_STATUS_NONE);
29+
ASSERT_LE(returned_status, UR_PROGRAM_BUILD_STATUS_IN_PROGRESS);
30+
}
31+
32+
TEST_P(urProgramGetBuildInfoTest, SuccessOptions) {
33+
size_t size = 0;
34+
auto info_type = UR_PROGRAM_BUILD_INFO_OPTIONS;
35+
ASSERT_SUCCESS(
36+
urProgramGetBuildInfo(program, device, info_type, 0, nullptr, &size));
37+
ASSERT_GT(size, 0);
38+
39+
std::vector<char> returned_options(size);
40+
returned_options[size - 1] = 'x';
41+
ASSERT_SUCCESS(urProgramGetBuildInfo(program, device, info_type, size,
42+
returned_options.data(), nullptr));
43+
44+
ASSERT_EQ(size, returned_options.size());
45+
ASSERT_EQ(returned_options[size - 1], '\0');
46+
}
47+
48+
TEST_P(urProgramGetBuildInfoTest, SuccessLog) {
49+
size_t size = 0;
50+
auto info_type = UR_PROGRAM_BUILD_INFO_LOG;
51+
ASSERT_SUCCESS(
52+
urProgramGetBuildInfo(program, device, info_type, 0, nullptr, &size));
53+
ASSERT_GT(size, 0);
54+
55+
std::vector<char> returned_log(size);
56+
returned_log[size - 1] = 'x';
57+
ASSERT_SUCCESS(urProgramGetBuildInfo(program, device, info_type, size,
58+
returned_log.data(), nullptr));
59+
60+
ASSERT_EQ(size, returned_log.size());
61+
ASSERT_EQ(returned_log[size - 1], '\0');
62+
}
63+
64+
TEST_P(urProgramGetBuildInfoTest, SuccessBinaryType) {
65+
size_t size = 0;
66+
auto info_type = UR_PROGRAM_BUILD_INFO_BINARY_TYPE;
67+
ASSERT_SUCCESS(
68+
urProgramGetBuildInfo(program, device, info_type, 0, nullptr, &size));
69+
ASSERT_EQ(sizeof(ur_program_binary_type_t), size);
70+
71+
ur_program_binary_type_t returned_binary_type =
72+
UR_PROGRAM_BINARY_TYPE_FORCE_UINT32;
73+
ASSERT_SUCCESS(urProgramGetBuildInfo(program, device, info_type, size,
74+
&returned_binary_type, nullptr));
75+
76+
ASSERT_GE(returned_binary_type, UR_PROGRAM_BINARY_TYPE_NONE);
77+
ASSERT_LE(returned_binary_type, UR_PROGRAM_BINARY_TYPE_EXECUTABLE);
4478
}
4579

4680
TEST_P(urProgramGetBuildInfoTest, InvalidNullHandleProgram) {
@@ -70,19 +104,3 @@ TEST_P(urProgramGetBuildInfoTest, InvalidEnumeration) {
70104
UR_PROGRAM_BUILD_INFO_FORCE_UINT32,
71105
0, nullptr, &propSizeOut));
72106
}
73-
74-
TEST_P(urProgramGetBuildInfoSingleTest, LogIsNullTerminated) {
75-
size_t logSize;
76-
std::vector<char> log;
77-
78-
ASSERT_SUCCESS(urProgramGetBuildInfo(
79-
program, device, UR_PROGRAM_BUILD_INFO_LOG, 0, nullptr, &logSize));
80-
// The size should always include the null terminator.
81-
ASSERT_GT(logSize, 0);
82-
log.resize(logSize);
83-
log[logSize - 1] = 'x';
84-
ASSERT_SUCCESS(urProgramGetBuildInfo(program, device,
85-
UR_PROGRAM_BUILD_INFO_LOG, logSize,
86-
log.data(), nullptr));
87-
ASSERT_EQ(log[logSize - 1], '\0');
88-
}

0 commit comments

Comments
 (0)