smarter and error test

This commit is contained in:
Yaossg 2024-12-24 11:31:50 +08:00
parent bf7f456967
commit 49ed7c5df5
37 changed files with 83 additions and 36 deletions

34
test/misc/escape.c Normal file
View file

@ -0,0 +1,34 @@
int getchar();
int putchar(int ch);
int fprintf(void* file, char* format, ...);
extern void* stdout;
int main() {
char ch = 0["\t\r\""];;
while ((ch = getchar()) != -1) {
if (ch == '\\') {
ch = getchar();
if (ch == 'n') {
ch = '\n';
} else if (ch == 't') {
ch = '\t';
} else if (ch == 'r') {
ch = '\r';
} else if (ch == '0') {
ch = '\0';
} else if (ch == '\\') {
ch = '\\';
} else if (ch == '\'') {
ch = '\'';
} else if (ch == '\"') {
ch = '\"';
} else {
fprintf(stdout, "unexpected escaped character: '\\%c'\n", ch);
return 1;
}
}
putchar(ch);
}
return 0;
}

1
test/misc/escape.in Normal file
View file

@ -0,0 +1 @@
hello\n\tworld\u

3
test/misc/escape.out Normal file
View file

@ -0,0 +1,3 @@
hello
worldunexpected escaped character: '\u'
1

41
test/misc/overflow.c Normal file
View file

@ -0,0 +1,41 @@
int printf(char* format, ...);
enum {
a = 1
};
int get_20() {
return (a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(- -0)))))))))))))))))))));
}
void dummy(int a0, int a1, int a2, int a3, int a4, int a5, int a6, int a7) {
a0 += a1;
printf("%d\n", a0);
a0 -= a1;
printf("%d\n", a0);
a0 *= a1;
printf("%d\n", a0);
a0 /= a1;
printf("%d\n", a0);
a0 %= a1;
printf("%d\n", a0);
a0 &= a1;
printf("%d\n", a0);
a0 |= a1;
printf("%d\n", a0);
a0 ^= a2;
printf("%d\n", a0);
a0 <<= a1;
printf("%d\n", a0);
a0 >>= a1;
printf("%d\n", a0);
}
int main() {
char placeholder[4096];
int a = 1;
dummy((a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(! !0))))))))))))))))))))), 3, a, a, a, a, a, a);
return (a=(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(a+(~ ~0)))))))))))))))))))))), (a = +a);
}

0
test/misc/overflow.in Normal file
View file

11
test/misc/overflow.out Normal file
View file

@ -0,0 +1,11 @@
23
20
60
20
2
2
3
2
16
2
20