[WHLSL] Move WHLSL tests to their own folder
[WebKit-https.git] / LayoutTests / webgpu / whlsl / bitwise-bool-ops.html
1 <!DOCTYPE html>
2 <html>
3 <meta charset=utf-8>
4 <meta name="timeout" content="long">
5 <title>Test the WHLSL test harness.</title>
6 <script src="js/test-harness.js"></script>
7 <script src="../../resources/testharness.js"></script>
8 <script src="../../resources/testharnessreport.js"></script>
9 <script>
10 const epsilon = 0.0001;
11
12 const whlslTests = {};
13
14 whlslTests.boolBitAnd = async () => {
15     const source = `
16         bool foo(bool a, bool b)
17         {
18             return a & b;
19         }
20     `;
21
22     {
23         let result = await callBoolFunction(source, "foo", [makeBool(true), makeBool(true)]);
24         assert_equals(result, true, "Test returned expected value.");
25     }
26
27     {
28         let result = await callBoolFunction(source, "foo", [makeBool(false), makeBool(false)]);
29         assert_equals(result, false, "Test returned expected value.");
30     }
31
32     {
33         let result = await callBoolFunction(source, "foo", [makeBool(true), makeBool(false)]);
34         assert_equals(result, false, "Test returned expected value.");
35     }
36
37     {
38         let result = await callBoolFunction(source, "foo", [makeBool(false), makeBool(true)]);
39         assert_equals(result, false, "Test returned expected value.");
40     }
41 };
42
43 whlslTests.boolBitOr = async () => {
44     const source = `
45         bool foo(bool a, bool b)
46         {
47             return a | b;
48         }
49     `;
50
51     {
52         let result = await callBoolFunction(source, "foo", [makeBool(true), makeBool(true)]);
53         assert_equals(result, true, "Test returned expected value.");
54     }
55
56     {
57         let result = await callBoolFunction(source, "foo", [makeBool(false), makeBool(false)]);
58         assert_equals(result, false, "Test returned expected value.");
59     }
60
61     {
62         let result = await callBoolFunction(source, "foo", [makeBool(true), makeBool(false)]);
63         assert_equals(result, true, "Test returned expected value.");
64     }
65
66     {
67         let result = await callBoolFunction(source, "foo", [makeBool(false), makeBool(true)]);
68         assert_equals(result, true, "Test returned expected value.");
69     }
70 };
71
72 whlslTests.boolBitXor = async () => {
73     const source = `
74         bool foo(bool a, bool b)
75         {
76             return a ^ b;
77         }
78     `;
79
80     {
81         let result = await callBoolFunction(source, "foo", [makeBool(true), makeBool(true)]);
82         assert_equals(result, false, "Test returned expected value.");
83     }
84
85     {
86         let result = await callBoolFunction(source, "foo", [makeBool(false), makeBool(false)]);
87         assert_equals(result, false, "Test returned expected value.");
88     }
89
90     {
91         let result = await callBoolFunction(source, "foo", [makeBool(true), makeBool(false)]);
92         assert_equals(result, true, "Test returned expected value.");
93     }
94
95     {
96         let result = await callBoolFunction(source, "foo", [makeBool(false), makeBool(true)]);
97         assert_equals(result, true, "Test returned expected value.");
98     }
99 };
100
101 whlslTests.boolBitNot = async () => {
102     const source = `
103         bool foo(bool a)
104         {
105             return ~a;
106         }
107     `;
108
109     {
110         let result = await callBoolFunction(source, "foo", [makeBool(true)]);
111         assert_equals(result, false, "Test returned expected value.");
112     }
113
114     {
115         let result = await callBoolFunction(source, "foo", [makeBool(false)]);
116         assert_equals(result, true, "Test returned expected value.");
117     }
118 };
119
120 runTests(whlslTests);
121 </script>
122 </html>