Skip to content

Commit 9759cef

Browse files
committed
allow tests to run on CPU only but fail in TearDownTestSuite to avoid CI passing like that
1 parent b811ac5 commit 9759cef

File tree

3 files changed

+24
-28
lines changed

3 files changed

+24
-28
lines changed

icicle_v3/tests/test_curve_api.cpp

+8-10
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ static inline std::string s_ref_target;
2828
class CurveApiTest : public ::testing::Test
2929
{
3030
public:
31-
static inline std::list<std::string> s_regsitered_devices;
31+
static inline std::list<std::string> s_registered_devices;
3232

3333
// SetUpTestSuite/TearDownTestSuite are called once for the entire test suite
3434
static void SetUpTestSuite()
@@ -38,18 +38,16 @@ class CurveApiTest : public ::testing::Test
3838
#endif
3939
icicle_load_backend_from_env_or_default();
4040

41-
// check targets are loaded and choose main and reference targets
42-
auto regsitered_devices = get_registered_devices_list();
43-
ASSERT_GE(regsitered_devices.size(), 2);
44-
4541
const bool is_cuda_registered = is_device_registered("CUDA");
46-
const bool is_cpu_registered = is_device_registered("CPU");
47-
const bool is_cpu_ref_registered = is_device_registered("CPU_REF");
48-
// if cuda is available, want main="CUDA", ref="CPU", otherwise main="CPU", ref="CPU_REF".
42+
if (!is_cuda_registered) { ICICLE_LOG_ERROR << "CUDA device not found. Testing CPU vs CPU"; }
4943
s_main_target = is_cuda_registered ? "CUDA" : "CPU";
50-
s_ref_target = is_cuda_registered ? "CPU" : "CPU_REF";
44+
s_ref_target = "CPU";
45+
}
46+
static void TearDownTestSuite()
47+
{
48+
// make sure to fail in CI if only have one device
49+
ICICLE_ASSERT(is_device_registered("CUDA")) << "missing CUDA backend";
5150
}
52-
static void TearDownTestSuite() {}
5351

5452
// SetUp/TearDown are called before and after each test
5553
void SetUp() override {}

icicle_v3/tests/test_device_api.cpp

+9-9
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@ using namespace icicle;
1818
class DeviceApiTest : public ::testing::Test
1919
{
2020
public:
21-
static inline std::vector<std::string> s_regsitered_devices;
21+
static inline std::vector<std::string> s_registered_devices;
2222
// SetUpTestSuite/TearDownTestSuite are called once for the entire test suite
2323
static void SetUpTestSuite()
2424
{
2525
#ifdef BACKEND_BUILD_DIR
2626
setenv("ICICLE_BACKEND_INSTALL_DIR", BACKEND_BUILD_DIR, 0 /*=replace*/);
2727
#endif
2828
icicle_load_backend_from_env_or_default();
29-
s_regsitered_devices = get_registered_devices_list();
30-
ASSERT_GT(s_regsitered_devices.size(), 0);
29+
s_registered_devices = get_registered_devices_list();
30+
ASSERT_GT(s_registered_devices.size(), 0);
3131
}
3232
static void TearDownTestSuite() {}
3333

@@ -46,7 +46,7 @@ TEST_F(DeviceApiTest, MemoryCopySync)
4646
{
4747
int input[2] = {1, 2};
4848

49-
for (const auto& device_type : s_regsitered_devices) {
49+
for (const auto& device_type : s_registered_devices) {
5050
int output[2] = {0, 0};
5151

5252
icicle::Device dev = {device_type, 0};
@@ -65,7 +65,7 @@ TEST_F(DeviceApiTest, MemoryCopySync)
6565
TEST_F(DeviceApiTest, MemoryCopyAsync)
6666
{
6767
int input[2] = {1, 2};
68-
for (const auto& device_type : s_regsitered_devices) {
68+
for (const auto& device_type : s_registered_devices) {
6969
int output[2] = {0, 0};
7070

7171
icicle::Device dev = {device_type, 0};
@@ -87,7 +87,7 @@ TEST_F(DeviceApiTest, MemoryCopyAsync)
8787
TEST_F(DeviceApiTest, CopyDeviceInference)
8888
{
8989
int input[2] = {1, 2};
90-
for (const auto& device_type : s_regsitered_devices) {
90+
for (const auto& device_type : s_registered_devices) {
9191
int output[2] = {0, 0};
9292

9393
icicle::Device dev = {device_type, 0};
@@ -105,7 +105,7 @@ TEST_F(DeviceApiTest, CopyDeviceInference)
105105
TEST_F(DeviceApiTest, Memest)
106106
{
107107
char expected[2] = {1, 1};
108-
for (const auto& device_type : s_regsitered_devices) {
108+
for (const auto& device_type : s_registered_devices) {
109109
char host_mem[2] = {0, 0};
110110

111111
// icicle::Device dev = {device_type, 0};
@@ -123,7 +123,7 @@ TEST_F(DeviceApiTest, Memest)
123123

124124
TEST_F(DeviceApiTest, ApiError)
125125
{
126-
for (const auto& device_type : s_regsitered_devices) {
126+
for (const auto& device_type : s_registered_devices) {
127127
icicle::Device dev = {device_type, 0};
128128
icicle_set_device(dev);
129129
void* dev_mem = nullptr;
@@ -149,7 +149,7 @@ TEST_F(DeviceApiTest, AvailableMemory)
149149

150150
TEST_F(DeviceApiTest, InvalidDevice)
151151
{
152-
for (const auto& device_type : s_regsitered_devices) {
152+
for (const auto& device_type : s_registered_devices) {
153153
icicle::Device dev = {device_type, 10}; // no such device-id thus expecting an error
154154
ASSERT_EQ(eIcicleError::INVALID_DEVICE, icicle_set_device(dev));
155155
}

icicle_v3/tests/test_field_api.cpp

+7-9
Original file line numberDiff line numberDiff line change
@@ -39,18 +39,16 @@ class FieldApiTest : public ::testing::Test
3939
#endif
4040
icicle_load_backend_from_env_or_default();
4141

42-
// check targets are loaded and choose main and reference targets
43-
auto regsitered_devices = get_registered_devices_list();
44-
ASSERT_GE(regsitered_devices.size(), 2);
45-
4642
const bool is_cuda_registered = is_device_registered("CUDA");
47-
const bool is_cpu_registered = is_device_registered("CPU");
48-
const bool is_cpu_ref_registered = is_device_registered("CPU_REF");
49-
// if cuda is available, want main="CUDA", ref="CPU", otherwise main="CPU", ref="CPU_REF".
43+
if (!is_cuda_registered) { ICICLE_LOG_ERROR << "CUDA device not found. Testing CPU vs CPU"; }
5044
s_main_target = is_cuda_registered ? "CUDA" : "CPU";
51-
s_reference_target = is_cuda_registered ? "CPU" : "CPU_REF";
45+
s_reference_target = "CPU";
46+
}
47+
static void TearDownTestSuite()
48+
{
49+
// make sure to fail in CI if only have one device
50+
ICICLE_ASSERT(is_device_registered("CUDA")) << "missing CUDA backend";
5251
}
53-
static void TearDownTestSuite() {}
5452

5553
// SetUp/TearDown are called before and after each test
5654
void SetUp() override {}

0 commit comments

Comments
 (0)