1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#include <assert.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include "gate.h"
#include "parser.h"
char *failures[] = {
"input"
"input\n",
"input \n",
"input aa aa\n",
"module",
" module ",
"\tmodule ",
" moudle \t\n ",
"expr ",
" expr ",
"expr",
"expr asdf xor a b",
"expr asdf: xor b",
"expr asdf: foo b",
"expr asdf: foo a b",
};
char *passes[] = {
"input aa",
"input a\n",
"input aaaaaaaa\n",
"module test",
"module test",
"module test ",
"module test ",
" \tmodule \ttest \t",
"expr asdf: xor aa a",
"expr asdf: not aa",
" expr asdf: not aa ",
"\n",
"\n\n",
"\r",
"\r\r",
"\r\n",
"\n\r",
"\n\n\r",
"\r\n\r",
"",
"\t"
};
int main(void) {
size_t i = 0;
char *string = NULL;
for (i = 0; i < sizeof(failures)/sizeof(failures[0]); i++) {
string = strdup(failures[i]);
if (string == NULL) {
perror("strdup");
return 1;
}
fprintf(stderr, "Testing xfail '%s'\n", string);
assert(0 != parse_line(string));
free(string);
}
for (i = 0; i < sizeof(passes)/sizeof(passes[0]); i++) {
string = strdup(passes[i]);
if (string == NULL) {
perror("strdup");
return 1;
}
fprintf(stderr, "Testing xpass '%s'\n", string);
assert(0 == parse_line(string));
free(string);
}
return 0;
}
|