| <!DOCTYPE html> |
| <html> |
| <meta charset=utf-8> |
| <meta name="timeout" content="long"> |
| <title>Bad add.</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.casts = async () => |
| { |
| let program = ` |
| struct Foo { |
| int x; |
| } |
| struct Bar { |
| int y; |
| } |
| operator Bar(Foo foo) { |
| Bar b; |
| b.y = foo.x + 7; |
| return b; |
| } |
| int baz(int z) { |
| Foo foo; |
| foo.x = z; |
| Bar b = Bar(foo); |
| return b.y; |
| } |
| `; |
| assert_equals(await callIntFunction(program, "baz", [makeInt(6)]), 13); |
| } |
| |
| whlslTests.selfCasts = async () => |
| { |
| let program = ` |
| struct Foo { |
| int x; |
| } |
| int foo() |
| { |
| Foo foo; |
| foo.x = 21; |
| Foo bar = Foo(foo); |
| bar.x = 42; |
| return foo.x + bar.x; |
| } |
| `; |
| assert_equals(await callIntFunction(program, "foo", []), 21 + 42); |
| } |
| |
| runTests(whlslTests); |
| </script> |
| </html> |
| |