01e0674afb6bfb04ab3d7e636f452892b8d89511
[blktrace.git] / verify_blkparse.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <fcntl.h>
4 #include <unistd.h>
5
6 int main(int argc, char *argv[])
7 {
8         double this_time, last_time;
9         char line[256], *p;
10         int major, minor, cpu, seq, nr, alias, last_seq;
11         FILE *f;
12
13         if (argc < 2) {
14                 fprintf(stderr, "%s: file\n", argv[0]);
15                 return 1;
16         }
17
18         f = fopen(argv[1], "r");
19         if (!f) {
20                 perror("fopen");
21                 return 1;
22         }
23
24         last_time = 0;
25         last_seq = alias = nr = 0;
26         while ((p = fgets(line, sizeof(line), f)) != NULL) {
27                 if (sscanf(p, "%3d,%3d %2d %8d %lf", &major, &minor, &cpu, &seq, &this_time) != 5)
28                         break;
29
30                 if (this_time < last_time) {
31                         fprintf(stdout, "%s", p);
32                         nr++;
33                 } else
34                         last_time = this_time;
35
36                 if (last_seq == seq) {
37                         fprintf(stdout, "alias on sequence %u\n", seq);
38                         alias++;
39                 }
40
41                 last_seq = seq;
42         }
43
44         fprintf(stdout, "%d unordered events, %d aliases\n", nr, alias);
45         fclose(f);
46
47         return nr != 0;
48 }