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
3739BOOST_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
4451namespace {
@@ -58,7 +65,7 @@ void outputTimings(const ComputeContext& c) {
5865
5966BOOST_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
7279BOOST_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
109116BOOST_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
174181BOOST_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