From 2009a26e17ad9dbefee3a5ca4339d754e51ef078 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 15 Feb 2026 00:04:23 +0900 Subject: refactor: write more tests in C --- tests/pointers.sh | 317 ------------------------------------------------------ 1 file changed, 317 deletions(-) delete mode 100644 tests/pointers.sh (limited to 'tests/pointers.sh') 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 -- cgit v1.3-1-g0d28