blob: 59e8f3d21694815fea8f039c0236d5023099243d [file]
// REQUIRES: any-device
// RUN: %clangxx -fsycl %s -o %t.out
// RUN: %t.out
#include <iostream>
#include <sycl/sycl.hpp>
using namespace sycl;
void return_fail() {
std::cout << "Failed" << std::endl;
exit(1);
}
void dummyAsyncHandler(sycl::exception_list) {}
void check(const context &ctx) {
auto devices = ctx.get_devices();
auto plt = ctx.get_platform();
for (const auto &dev : devices) {
if (dev.get_platform() != plt) {
std::cout << "Device platform does not match context platform"
<< std::endl;
return_fail();
}
}
auto backend = ctx.get_backend();
for (const auto &dev : devices) {
if (dev.get_backend() != backend) {
std::cout << "Device backend does not match context backend" << std::endl;
return_fail();
}
}
}
int main() {
context ctx;
check(ctx);
device dev;
context ctx2(dev);
check(ctx2);
device dev2;
platform plt = dev.get_platform();
context ctx3(plt);
check(ctx3);
context ctx4({dev, dev2}, dummyAsyncHandler, {});
check(ctx4);
std::cout << "Passed" << std::endl;
return 0;
}