diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-09-03 19:03:48 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-09-10 23:51:52 +0900 |
| commit | 9a2fbf6f4854b1f2cfd5979b91d5b3d7e183d487 (patch) | |
| tree | 5fc0c3e0c3cd7159119d0560b5061b3545216f35 /tests/test_pointer_basics.sh | |
| parent | b447618c33683b947c1fb26f1e7cd9033e20e5cb (diff) | |
| download | ducc-9a2fbf6f4854b1f2cfd5979b91d5b3d7e183d487.tar.gz ducc-9a2fbf6f4854b1f2cfd5979b91d5b3d7e183d487.tar.zst ducc-9a2fbf6f4854b1f2cfd5979b91d5b3d7e183d487.zip | |
test: merge test scripts
Diffstat (limited to 'tests/test_pointer_basics.sh')
| -rw-r--r-- | tests/test_pointer_basics.sh | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/tests/test_pointer_basics.sh b/tests/test_pointer_basics.sh new file mode 100644 index 0000000..2f34821 --- /dev/null +++ b/tests/test_pointer_basics.sh @@ -0,0 +1,79 @@ +cat <<'EOF' > expected +EOF +test_diff <<'EOF' +int main() { + int a1; + int* a2; + char a3; + char* a4; + long a5; + long* a6; + void* a8; + int** a10; + char** a12; + long** a14; + void** a16; + int*** a18; + char*** a20; + long*** a22; + void*** a24; + return 0; +} +EOF + +cat <<'EOF' > expected +42 42 +EOF +test_diff <<'EOF' +int printf(); + +int main() { + int x; + int* y; + y = &x; + *y = 42; + printf("%d %d\n", x, *y); + return 0; +} +EOF + +cat <<'EOF' > expected +3 +3 +3 +EOF +test_diff <<'EOF' +int printf(); + +int main() { + char c; + int i; + long l; + c = 42; + i = 42*2; + l = 42*3; + + char* cp1; + char* cp2; + int* ip1; + int* ip2; + long* lp1; + long* lp2; + + cp1 = &c; + cp2 = &c + 3; + + ip1 = &i; + ip2 = &i + 3; + + lp1 = &l; + lp2 = &l + 3; + + printf("%d\n", cp2 - cp1); + printf("%d\n", ip2 - ip1); + printf("%d\n", lp2 - lp1); + + return 0; +} +EOF + |
