blob: e8a984d512034aa816637022a553714c1ba5d440 [file] [log] [blame]
<!DOCTYPE html>
<html>
<meta charset=utf-8>
<meta name="timeout" content="long">
<title>Test loops.</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.doWhile = async () =>
{
let program = `
int foo1(int x)
{
int y = 7;
do {
y = 8;
break;
} while (x < 10);
return y;
}
int foo2(int x)
{
int y = 7;
do {
y = 8;
break;
} while (y == 7);
return y;
}
int foo3(int x)
{
int sum = 0;
do {
if (x == 11) {
x = 15;
continue;
}
sum = sum + x;
x = x + 1;
} while (x < 13);
return sum;
}
`;
assert_equals(await callIntFunction(program, "foo1", [makeInt(1)]), 8);
assert_equals(await callIntFunction(program, "foo1", [makeInt(11)]), 8);
assert_equals(await callIntFunction(program, "foo2", [makeInt(1)]), 8);
assert_equals(await callIntFunction(program, "foo3", [makeInt(9)]), 19);
}
whlslTests.simpleWhile = async () =>
{
let program = `
int foo(int x)
{
while (x < 13)
x = x * 2;
return x;
}
`;
assert_equals(await callIntFunction(program, "foo", [makeInt(1)]), 16);
}
runTests(whlslTests);
</script>
</html>