diff --git a/test/val/pptest1.c b/test/val/pptest1.c new file mode 100644 index 000000000..52b381b0b --- /dev/null +++ b/test/val/pptest1.c @@ -0,0 +1,27 @@ + +/* preprocessor test #1 */ + +#define hash_hash # ## # +#define mkstr(a) # a +#define in_between(a) mkstr(a) +#define join(c, d) in_between(c hash_hash d) + +#define x "first" +#define y "second" + +char p[] = join(x, y); // Comment + +#include +#include +#include + +int main(void) +{ + printf("expected: %s\n", "\"first\" ## \"second\""); + printf("p: %s\n", p); + if (!strcmp(p, "\"first\" ## \"second\"")) { + return EXIT_SUCCESS; + } + printf("all fine\n"); + return EXIT_FAILURE; +} diff --git a/test/val/pptest4.c b/test/val/pptest4.c new file mode 100644 index 000000000..827be7200 --- /dev/null +++ b/test/val/pptest4.c @@ -0,0 +1,24 @@ + +/* preprocessor test #4 */ + +#define t(x,y,z) x ## y ## z +int j[] = { t(1,2,3), t(,4,5), t(6,,7), t(8,9,), + t(10,,), t(,11,), t(,,12), t(,,) }; + +int e[] = { 123, 45, 67, 89, 10, 11, 12, }; + +#include +#include +#include + +unsigned char i; + +int main(void) +{ + for (i = 0; i < 7; ++i) { + printf("j: %d expect: %d\n", j[i], e[i]); + if (j[i] != e[i]) return EXIT_FAILURE; + } + printf("all fine\n"); + return EXIT_SUCCESS; +} diff --git a/test/val/pptest5.c b/test/val/pptest5.c new file mode 100644 index 000000000..82f642c8e --- /dev/null +++ b/test/val/pptest5.c @@ -0,0 +1,24 @@ + +/* preprocessor test #5 */ + +#define t(x,y,z) x ## y ## z +int j[] = { t(1,2,3), t(,4,5), t(6,,7), t(8,9,), + t(10,,), t(,11,), t(,,12), t(,,) }; + +int e[] = { 123, 45, 67, 89, 10, 11, 12, }; + +#include +#include +#include + +unsigned char i; + +int main(void) +{ + for (i = 0; i < 7; ++i) { + printf("j: %d expect: %d\n", j[i], e[i]); + if (j[i] != e[i]) return EXIT_FAILURE; + } + printf("all fine\n"); + return EXIT_SUCCESS; +} diff --git a/testcode/compiler/pptest1.c b/testcode/compiler/pptest1.c deleted file mode 100644 index e42135688..000000000 --- a/testcode/compiler/pptest1.c +++ /dev/null @@ -1,6 +0,0 @@ -#define hash_hash # ## # -#define mkstr(a) # a -#define in_between(a) mkstr(a) -#define join(c, d) in_between(c hash_hash d) - -char p[] = join(x, y); // Comment diff --git a/testcode/compiler/pptest4.c b/testcode/compiler/pptest4.c deleted file mode 100644 index b8540b5c5..000000000 --- a/testcode/compiler/pptest4.c +++ /dev/null @@ -1,3 +0,0 @@ -#define t(x,y,z) x ## y ## z -int j[] = { t(1,2,3), t(,4,5), t(6,,7), t(8,9,), - t(10,,), t(,11,), t(,,12), t(,,) }; diff --git a/testcode/compiler/pptest5.c b/testcode/compiler/pptest5.c deleted file mode 100644 index 1f0bd4328..000000000 --- a/testcode/compiler/pptest5.c +++ /dev/null @@ -1,3 +0,0 @@ -#define t(x,y,z) x ## y ## z -int j[] = { t(1,2,3), t(,4,5), t(6,,7), t(8,9,), - t(10,,), t(,11,), t(,,12), t(,,) };