aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/pointers.sh
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-02-15 00:04:23 +0900
committernsfisis <nsfisis@gmail.com>2026-02-15 00:04:23 +0900
commit2009a26e17ad9dbefee3a5ca4339d754e51ef078 (patch)
tree5c311a1a17f40786f53f4a89c5bbbb72402a6b2d /tests/pointers.sh
parentef0cb4dbdc1c036f70f94a905cbacae9be5abf5e (diff)
downloadducc-2009a26e17ad9dbefee3a5ca4339d754e51ef078.tar.gz
ducc-2009a26e17ad9dbefee3a5ca4339d754e51ef078.tar.zst
ducc-2009a26e17ad9dbefee3a5ca4339d754e51ef078.zip
refactor: write more tests in C
Diffstat (limited to 'tests/pointers.sh')
-rw-r--r--tests/pointers.sh317
1 files changed, 0 insertions, 317 deletions
diff --git a/tests/pointers.sh b/tests/pointers.sh
deleted file mode 100644
index bbd4ed4..0000000
--- a/tests/pointers.sh
+++ /dev/null
@@ -1,317 +0,0 @@
-# pointer basics
-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;
- int* const* const* a25;
- 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
-
-# arrays
-cat <<'EOF' > expected
-42
-EOF
-test_diff <<'EOF'
-int printf();
-void* calloc();
-
-int main() {
- int b;
- int* a = &b;
- a[0] = 42;
- printf("%d\n", *a);
- return 0;
-}
-EOF
-
-cat <<'EOF' > expected
-0 0
-1 1
-2 2
-3 3
-4 4
-5 5
-6 6
-7 7
-8 8
-9 9
-EOF
-test_diff <<'EOF'
-int printf();
-void* calloc();
-
-int main() {
- long* a = calloc(10, sizeof(long));
- long i = 0;
- for (i = 0; i < 10; i = i + 1) {
- a[i] = i;
- }
- for (i = 0; i < 10; i = i + 1) {
- printf("%d %d\n", *(a + i), a[i]);
- }
- return 0;
-}
-EOF
-
-cat <<'EOF' > expected
-65
-65
-66
-67
-68
-EOF
-test_diff <<'EOF'
-void* calloc();
-int printf();
-
-int main() {
- char* source = calloc(4, sizeof(char));
-
- source[0] = 'A';
- source[1] = 'B';
- source[2] = 'C';
- source[3] = 'D';
-
- int a = source[0];
-
- printf("%d\n", a);
- printf("%d\n", source[0]);
- printf("%d\n", source[1]);
- printf("%d\n", source[2]);
- printf("%d\n", source[3]);
-
- return 0;
-}
-EOF
-
-cat <<'EOF' > expected
-0
-1
-4
-9
-16
-25
-36
-49
-64
-81
-EOF
-
-test_diff <<'EOF'
-int printf();
-
-int main() {
- int i;
- int a[10];
- for (i = 0; i < 10; ++i) {
- a[i] = i * i;
- }
- for (i = 0; i < 10; ++i) {
- printf("%d\n", a[i]);
- }
-}
-EOF
-
-cat <<'EOF' > expected
-0
-42
-48
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-123
-EOF
-
-test_diff <<'EOF'
-int printf();
-
-int a;
-int b[12];
-
-int main() {
- printf("%d\n", a);
- a = 42;
- printf("%d\n", a);
- printf("%zu\n", sizeof(b));
- int i;
- for (i = 0; i < 12; ++i) {
- printf("%d\n", b[i]);
- }
- b[11] = 123;
- printf("%d\n", b[11]);
-}
-EOF
-
-cat <<'EOF' > expected
-400
-80
-16
-EOF
-
-test_diff <<'EOF'
-int printf();
-
-int main() {
- int a[10 * 10];
- int b[10 + 10];
- int c[1 << 2];
-
- printf("%zu\n", sizeof(a));
- printf("%zu\n", sizeof(b));
- printf("%zu\n", sizeof(c));
-}
-EOF
-
-# string operations
-> expected
-test_diff <<'EOF'
-int main() {
- "";
- return 0;
-}
-EOF
-
-> expected
-test_diff <<'EOF'
-int main() {
- "abc";
- return 0;
-}
-EOF
-
-> expected
-test_diff <<'EOF'
-int main() {
- "\"foo\"bar\\\n\"";
- return 0;
-}
-EOF
-
-cat <<'EOF' > expected
-abc
-defghijkl
-EOF
-
-test_diff <<'EOF'
-int printf();
-
-int main() {
- printf("abc\n");
- printf("def" "ghi"
- "jkl\n");
-}
-EOF
-
-cat <<'EOF' > expected
-h
-l
-,
-EOF
-
-test_diff <<'EOF'
-int printf();
-
-int main() {
- char* h = " hello,world" + 1;
- printf("%c\n", *h);
- printf("%c\n", h[2]);
- printf("%c\n", *(h + 5));
-}
-EOF
-
-cat <<'EOF' > expected
-105
-0
-EOF
-
-test_diff <<'EOF'
-int printf();
-
-int main() {
- char* s = "hi";
- while (*s++) {
- printf("%d\n", *s);
- }
-}
-EOF