| <!DOCTYPE html> |
| <html> |
| <meta charset=utf-8> |
| <meta name="timeout" content="long"> |
| <title>Test the WHLSL test harness.</title> |
| <script src="js/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> |