blob: 288dcf648ae25085b74d868efaf2e3153005277e [file] [log] [blame]
<!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.prefixPlusPlus = async () =>
{
let program = `
int foo(int x)
{
++x;
return x;
}
`;
assert_equals(await callIntFunction(program, "foo", [makeInt(64)]), 65);
}
whlslTests.prefixPlusPlusResult = async () =>
{
let program = `
int foo(int x)
{
return ++x;
}
`;
assert_equals(await callIntFunction(program, "foo", [makeInt(64)]), 65);
}
whlslTests.postfixPlusPlus = async () =>
{
let program = `
int foo(int x)
{
x++;
return x;
}
`;
assert_equals(await callIntFunction(program, "foo", [makeInt(64)]), 65);
}
whlslTests.postfixPlusPlusResult = async () =>
{
let program = `
int foo(int x)
{
return x++;
}
`;
assert_equals(await callIntFunction(program, "foo", [makeInt(64)]), 64);
}
whlslTests.prefixMinusMinus = async () =>
{
let program = `
int foo(int x)
{
--x;
return x;
}
`;
assert_equals(await callIntFunction(program, "foo", [makeInt(64)]), 63);
}
whlslTests.prefixMinusMinusResult = async () =>
{
let program = `
int foo(int x)
{
return --x;
}
`;
assert_equals(await callIntFunction(program, "foo", [makeInt(64)]), 63);
}
whlslTests.postfixMinusMinus = async () =>
{
let program = `
int foo(int x)
{
x--;
return x;
}
`;
assert_equals(await callIntFunction(program, "foo", [makeInt(64)]), 63);
}
whlslTests.postfixMinusMinusResult = async () =>
{
let program = `
int foo(int x)
{
return x--;
}
`;
assert_equals(await callIntFunction(program, "foo", [makeInt(64)]), 64);
}
whlslTests.plusEquals = async () =>
{
let program = `
int foo(int x)
{
x += 42;
return x;
}
`;
assert_equals(await callIntFunction(program, "foo", [makeInt(385)]), 385 + 42);
}
whlslTests.plusEqualsResult = async () =>
{
let program = `
int foo(int x)
{
return x += 42;
}
`;
assert_equals(await callIntFunction(program, "foo", [makeInt(385)]), 385 + 42);
}
whlslTests.minusEquals = async () => {
let program = `
int foo(int x)
{
x -= 42;
return x;
}
`;
assert_equals(await callIntFunction(program, "foo", [makeInt(385)]), 385 - 42);
}
whlslTests.minusEqualsResult = async () => {
let program = `
int foo(int x)
{
return x -= 42;
}
`;
assert_equals(await callIntFunction(program, "foo", [makeInt(385)]), 385 - 42);
}
whlslTests.timesEquals = async () => {
let program = `
int foo(int x)
{
x *= 42;
return x;
}
`;
assert_equals(await callIntFunction(program, "foo", [makeInt(385)]), 385 * 42);
}
whlslTests.timesEqualsResult = async () => {
let program = `
int foo(int x)
{
return x *= 42;
}
`;
assert_equals(await callIntFunction(program, "foo", [makeInt(385)]), 385 * 42);
}
runTests(whlslTests);
</script>
</html>