1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#define CATCH_CONFIG_MAIN
#include <catch.hpp>
#include "HeterogeneousCore/AlpakaInterface/interface/Backend.h"
TEST_CASE("Test cms::alpakatools::toBackend", "cms::alpakatools::Backend") {
SECTION("Valid string") {
REQUIRE(cms::alpakatools::toBackend("SerialSync") == cms::alpakatools::Backend::SerialSync);
REQUIRE(cms::alpakatools::toBackend("CudaAsync") == cms::alpakatools::Backend::CudaAsync);
REQUIRE(cms::alpakatools::toBackend("ROCmAsync") == cms::alpakatools::Backend::ROCmAsync);
REQUIRE(cms::alpakatools::toBackend("TbbAsync") == cms::alpakatools::Backend::TbbAsync);
}
SECTION("Invalid string") {
REQUIRE_THROWS_WITH(cms::alpakatools::toBackend("Nonexistent"),
Catch::Contains("EnumNotFound") and Catch::Contains("Invalid backend name"));
}
}
TEST_CASE("Test cms::alpakatools::toString", "cms::alpakatools::Backend") {
SECTION("Valid enum") {
REQUIRE(cms::alpakatools::toString(cms::alpakatools::Backend::SerialSync) == "SerialSync");
REQUIRE(cms::alpakatools::toString(cms::alpakatools::Backend::CudaAsync) == "CudaAsync");
REQUIRE(cms::alpakatools::toString(cms::alpakatools::Backend::ROCmAsync) == "ROCmAsync");
REQUIRE(cms::alpakatools::toString(cms::alpakatools::Backend::TbbAsync) == "TbbAsync");
}
SECTION("Invalid enum") {
REQUIRE_THROWS_WITH(cms::alpakatools::toString(cms::alpakatools::Backend::size),
Catch::Contains("InvalidEnumValue") and Catch::Contains("Invalid backend enum value"));
}
}
|