blob: 92ea3567a3b9a75e424e718b54cd6e1728bcf028 [file] [log] [blame]
#define CATCH_CONFIG_RUNNER
#include "catch_utils.hpp"
#include <torch/cuda.h>
#include <iostream>
// Custom main to disable CUDA tests when they are not available.
// https://github.com/catchorg/Catch2/blob/master/docs/own-main.md
int main(int argc, char* argv[]) {
Catch::Session session;
const auto return_code = session.applyCommandLine(argc, argv);
if (return_code != 0) {
return return_code;
}
// ~ disables tags.
if (!torch::cuda::is_available()) {
std::cerr << "CUDA not available. Disabling [cuda] and [multi-cuda] tests"
<< std::endl;
session.configData().testsOrTags.emplace_back("~[cuda]");
session.configData().testsOrTags.emplace_back("~[multi-cuda]");
} else if (torch::cuda::device_count() < 2) {
std::cerr << "Only one CUDA device detected. Disabling [multi-cuda] tests"
<< std::endl;
session.configData().testsOrTags.emplace_back("~[multi-cuda]");
}
return session.run();
}