Add a runtime-disabled dialog element skeleton
[WebKit-https.git] / LayoutTests / webgpu / whlsl-if-statement.html
1 <!DOCTYPE html>
2 <html>
3 <meta charset=utf-8>
4 <meta name="timeout" content="long">
5 <title>Test int bit math.</title>
6 <script src="js/whlsl-test-harness.js"></script>
7 <script src="js/webgpu-functions.js"></script>
8 <script src="../resources/testharness.js"></script>
9 <script src="../resources/testharnessreport.js"></script>
10 <script>
11 const whlslTests = {};
12
13 whlslTests.ifStatement = async () =>
14 {
15     let program = `
16         int foo(int x)
17         {
18             int y = 6;
19             if (x == 7) {
20                 y = 8;
21             }
22             return y;
23         }
24     `;
25     assert_equals(await callIntFunction(program, "foo", [makeInt(3)]), 6);
26     assert_equals(await callIntFunction(program, "foo", [makeInt(4)]), 6);
27     assert_equals(await callIntFunction(program, "foo", [makeInt(5)]), 6);
28     assert_equals(await callIntFunction(program, "foo", [makeInt(6)]), 6);
29     assert_equals(await callIntFunction(program, "foo", [makeInt(7)]), 8);
30     assert_equals(await callIntFunction(program, "foo", [makeInt(8)]), 6);
31     assert_equals(await callIntFunction(program, "foo", [makeInt(9)]), 6);
32 }
33
34 whlslTests.ifElseStatement = async () =>
35 {
36     let program = `
37         int foo(int x)
38         {
39             int y = 6;
40             if (x == 7) {
41                 y = 8;
42             } else {
43                 y = 9;
44             }
45             return y;
46         }
47     `;
48     assert_equals(await callIntFunction(program, "foo", [makeInt(3)]), 9);
49     assert_equals(await callIntFunction(program, "foo", [makeInt(4)]), 9);
50     assert_equals(await callIntFunction(program, "foo", [makeInt(5)]), 9);
51     assert_equals(await callIntFunction(program, "foo", [makeInt(6)]), 9);
52     assert_equals(await callIntFunction(program, "foo", [makeInt(7)]), 8);
53     assert_equals(await callIntFunction(program, "foo", [makeInt(8)]), 9);
54     assert_equals(await callIntFunction(program, "foo", [makeInt(9)]), 9);
55 }
56
57 whlslTests.ifElseIfStatement = async () =>
58 {
59     let program = `
60         int foo(int x)
61         {
62             int y = 6;
63             if (x == 7) {
64                 y = 8;
65             } else if (x == 8) {
66                 y = 9;
67             }
68             return y;
69         }
70     `;
71     assert_equals(await callIntFunction(program, "foo", [makeInt(3)]), 6);
72     assert_equals(await callIntFunction(program, "foo", [makeInt(4)]), 6);
73     assert_equals(await callIntFunction(program, "foo", [makeInt(5)]), 6);
74     assert_equals(await callIntFunction(program, "foo", [makeInt(6)]), 6);
75     assert_equals(await callIntFunction(program, "foo", [makeInt(7)]), 8);
76     assert_equals(await callIntFunction(program, "foo", [makeInt(8)]), 9);
77     assert_equals(await callIntFunction(program, "foo", [makeInt(9)]), 6);
78 }
79
80 whlslTests.ifElseIfElseStatement = async () =>
81 {
82     let program = `
83         int foo(int x)
84         {
85             int y = 6;
86             if (x == 7) {
87                 y = 8;
88             } else if (x == 8) {
89                 y = 9;
90             } else {
91                 y = 10;
92             }
93             return y;
94         }
95     `;
96     assert_equals(await callIntFunction(program, "foo", [makeInt(3)]), 10);
97     assert_equals(await callIntFunction(program, "foo", [makeInt(4)]), 10);
98     assert_equals(await callIntFunction(program, "foo", [makeInt(5)]), 10);
99     assert_equals(await callIntFunction(program, "foo", [makeInt(6)]), 10);
100     assert_equals(await callIntFunction(program, "foo", [makeInt(7)]), 8);
101     assert_equals(await callIntFunction(program, "foo", [makeInt(8)]), 9);
102     assert_equals(await callIntFunction(program, "foo", [makeInt(9)]), 10);
103 }
104
105 runTests(whlslTests);
106 </script>
107 </html>