blob: a56ab9bd051320ba30d3ea3ad1410ea2a6c3af50 [file] [log] [blame]
<!DOCTYPE html>
<html>
<meta charset=utf-8>
<meta name="timeout" content="long">
<title>Test the WHLSL test harness.</title>
<script src="js/whlsl-test-harness.js"></script>
<script src="js/webgpu-functions.js"></script>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script>
const whlslTests = {};
whlslTests.enumDuplicates = async () => {
await checkFail(`
enum Foo {
War = 42,
Famine = 0,
Pestilence = 23,
Death = 42
}
`);
};
whlslTests.defaultEnumConstructor = async () => {
const program = `
enum Weekday {
Monday,
Tuesday,
Wednesday,
Thursday,
Pizzaday
}
int foo()
{
Weekday x = Weekday();
return 42;
}
`;
assert_equals(await callIntFunction(program, "foo", []), 42);
};
whlslTests.enumArrayRefBase = async () => {
await checkFail(
`
enum Foo : thread int[] {
Bar
}
`);
}
whlslTests.enumFloatBase = async () => {
await checkFail(
`
enum Foo : float {
Bar
}
`);
}
whlslTests.enumPtrBase = async () => {
await checkFail(
`
enum Foo : thread int* {
Bar
}
`);
}
whlslTests.enumStructBase = async () => {
await checkFail(
`
struct Thingy { }
enum Foo : Thingy {
Bar
}
`);
};
whlslTests.enumNoMembers = async () => {
await checkFail(
`
enum Foo { }
`);
};
runTests(whlslTests);
</script>
</html>