BUGFIX - CPI off by a factor of 10 X
[yari.git] / testcases / testgen.c
blob0f492a924022137fef6d44db8803b6e12f27c66b
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <unistd.h>
5 #define NTESTS 200
7 #define TRY(exp) \
8 printf(" a=0x%08x; taint(&b); b=0x%08x; assert((%s) == 0x%08x);\n", a, b, #exp, exp)
10 int main(int argc, char *argv[])
12 int i;
14 printf("#include <assert.h>\n"
15 "void taint(unsigned *x) { asm(\"\" : \"=r\" (x)); } \n"
16 "int main(int argc, char *argv[]) {\n"
17 " unsigned a;\n"
18 " unsigned b;\n");
20 for (i = 0; i < NTESTS; ++i) {
21 unsigned a = random();
22 unsigned b = random();
24 if (random() % 2) {
25 (int) a %= 64;
26 (int) b %= 64;
29 TRY(a + b);
30 TRY(a - b);
31 TRY(a * b);
32 TRY((int) a * (int) b);
33 if (b) {
34 TRY(a / b);
35 TRY(a % b);
36 TRY((int) a / (int) b);
37 TRY((int) a % (int) b);
39 TRY(a & b);
40 TRY(a | b);
41 TRY(a ^ b);
42 TRY(a ^ ~b);
43 TRY(a | ~b);
44 TRY(a << b);
45 TRY(a >> b);
46 TRY((int) a >> (int) b);
47 TRY(a > b);
48 TRY(a >= b);
49 TRY(a < b);
50 TRY(a <= b);
51 TRY(a == b);
52 TRY(a != b);
53 TRY(a < 0);
54 TRY(a <= 0);
55 TRY((int) a > (int) b);
56 TRY((int) a >= (int) b);
57 TRY((int) a < (int) b);
58 TRY((int) a <= (int) b);
59 TRY((int) a == (int) b);
60 TRY((int) a != (int) b);
61 TRY((int) a < (int) 0);
62 TRY((int) a <= (int) 0);
65 printf(" return 0;\n"
66 "}\n");
68 return 0;