Skip to content

Commit bbef46b

Browse files
damienbarkerjenkins
authored andcommitted
QPR-12266 register frameworks in unit tests manually
1 parent 24d42a8 commit bbef46b

1 file changed

Lines changed: 14 additions & 7 deletions

File tree

QuantExt/test/computeenvironment.cpp

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
FITNESS FOR A PARTICULAR PURPOSE. See the license for more details.
1717
*/
1818

19+
#include <qle/math/basiccpuenvironment.hpp>
1920
#include <qle/math/computeenvironment.hpp>
21+
#include <qle/math/openclenvironment.hpp>
2022
#include <qle/math/randomvariable.hpp>
2123
#include <qle/math/randomvariable_io.hpp>
2224
#include <qle/math/randomvariable_opcodes.hpp>
@@ -36,9 +38,14 @@ BOOST_FIXTURE_TEST_SUITE(QuantExtTestSuite, qle::test::TopLevelFixture)
3638

3739
BOOST_AUTO_TEST_SUITE(ComputeEnvironmentTest)
3840

39-
struct ComputeEnvironmentCleanUp {
40-
ComputeEnvironmentCleanUp() {}
41-
~ComputeEnvironmentCleanUp() { ComputeEnvironment::instance().reset(); }
41+
struct ComputeEnvironmentFixture {
42+
ComputeEnvironmentFixture() {
43+
QuantExt::ComputeFrameworkRegistry::instance()
44+
.add("OpenCL", &QuantExt::createComputeFrameworkCreator<QuantExt::OpenClFramework>, true);
45+
QuantExt::ComputeFrameworkRegistry::instance()
46+
.add("BasicCpu", &QuantExt::createComputeFrameworkCreator<QuantExt::BasicCpuFramework>, true);
47+
}
48+
~ComputeEnvironmentFixture() { ComputeEnvironment::instance().reset(); }
4249
};
4350

4451
namespace {
@@ -58,7 +65,7 @@ void outputTimings(const ComputeContext& c) {
5865

5966
BOOST_AUTO_TEST_CASE(testEnvironmentInit) {
6067
BOOST_TEST_MESSAGE("testing enviroment initialization");
61-
ComputeEnvironmentCleanUp cleanUp;
68+
ComputeEnvironmentFixture fixture;
6269
auto init = []() {
6370
for (auto const& d : ComputeEnvironment::instance().getAvailableDevices()) {
6471
ComputeEnvironment::instance().selectContext(d);
@@ -70,7 +77,7 @@ BOOST_AUTO_TEST_CASE(testEnvironmentInit) {
7077
}
7178

7279
BOOST_AUTO_TEST_CASE(testSimpleCalc) {
73-
ComputeEnvironmentCleanUp cleanUp;
80+
ComputeEnvironmentFixture fixture;
7481
const std::size_t n = 1024;
7582
for (auto const& d : ComputeEnvironment::instance().getAvailableDevices()) {
7683
BOOST_TEST_MESSAGE("testing simple calc on device '" << d << "'.");
@@ -107,7 +114,7 @@ BOOST_AUTO_TEST_CASE(testSimpleCalc) {
107114
}
108115

109116
BOOST_AUTO_TEST_CASE(testLargeCalc) {
110-
ComputeEnvironmentCleanUp cleanUp;
117+
ComputeEnvironmentFixture fixture;
111118

112119
const std::size_t n = 65536;
113120
const std::size_t m = 1024;
@@ -172,7 +179,7 @@ BOOST_AUTO_TEST_CASE(testLargeCalc) {
172179
}
173180

174181
BOOST_AUTO_TEST_CASE(testRngGeneration) {
175-
ComputeEnvironmentCleanUp cleanUp;
182+
ComputeEnvironmentFixture fixture;
176183
const std::size_t n = 65536;
177184
for (auto const& d : ComputeEnvironment::instance().getAvailableDevices()) {
178185
BOOST_TEST_MESSAGE("testing rng generation on device '" << d << "'.");

0 commit comments

Comments
 (0)