| <!DOCTYPE html> |
| <html> |
| <meta charset=utf-8> |
| <meta name="timeout" content="long"> |
| <title>Test prefix/postfix.</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.duplicateFunctions = async () => { |
| await checkFail(` |
| void foo() { } |
| void foo() { } |
| `); |
| |
| await checkFail(` |
| void foo(int x) { } |
| typedef A = int; |
| void foo(A x) { } |
| `); |
| |
| const program = ` |
| int bar() { |
| return 42; |
| } |
| int bar(int x) { |
| return x; |
| } |
| int foo() |
| { |
| return bar(); |
| } |
| int baz() |
| { |
| return bar(3); |
| } |
| `; |
| assert_equals(await callIntFunction(program, "foo", []), 42); |
| assert_equals(await callIntFunction(program, "baz", []), 3); |
| |
| await checkFail(` |
| int operator&[](thread int[] a, uint b) { |
| return 4; |
| } |
| `); |
| |
| await checkFail(` |
| uint operator.length(thread int[] a) { |
| return 4; |
| } |
| `); |
| |
| await checkFail(` |
| bool operator==(thread int[] a, thread int[] b) { |
| return true; |
| } |
| `); |
| |
| await checkFail(` |
| bool operator==(thread int* a, thread int* b) { |
| return true; |
| } |
| `); |
| }; |
| |
| runTests(whlslTests); |
| </script> |
| </html> |