diff options
Diffstat (limited to 'tests/test_bitwise_operators.sh')
| -rw-r--r-- | tests/test_bitwise_operators.sh | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/test_bitwise_operators.sh b/tests/test_bitwise_operators.sh new file mode 100644 index 0000000..90f553a --- /dev/null +++ b/tests/test_bitwise_operators.sh @@ -0,0 +1,65 @@ +cat <<'EOF' > expected +123 +460 +EOF + +test_diff <<'EOF' +int printf(); + +int main() { + printf("%d\n", 0 | 123); + printf("%d\n", 12 | 456); +} +EOF + +cat <<'EOF' > expected +8 +336 +EOF +test_diff <<'EOF' +int printf(); +int main() { + printf("%d\n", 1 << 3); + printf("%d\n", 21 << 4); +} +EOF + +cat <<'EOF' > expected +13 +0 +EOF +test_diff <<'EOF' +int printf(); +int main() { + printf("%d\n", 111 >> 3); + printf("%d\n", 15 >> 14); +} +EOF + +cat <<'EOF' > expected +1 +7 +6 +4 +3 2 3 0 +EOF +test_diff <<'EOF' +int printf(); + +int main() { + int a = 5; + int b = 3; + + printf("%d\n", a & b); + printf("%d\n", a | b); + printf("%d\n", a ^ b); + printf("%d\n", 2 + 3 & 4); + + int c = 1 + 2 & 3; + int d = 4 & 5 ^ 6; + int e = 1 ^ 2 | 3; + int f = 0 | 1 & 2; + printf("%d %d %d %d\n", c, d, e, f); +} +EOF + |
