1#include <stdlib.h>
2#include <stdio.h>
3
4#include "util/u_prim.h"
5
6struct test_info {
7   enum pipe_prim_type prim_type;
8   uint32_t count;
9   uint32_t expected;
10};
11
12struct test_info tests[] = {
13   { PIPE_PRIM_POINTS, 0, 0 },
14   { PIPE_PRIM_POINTS, 1, 1 },
15   { PIPE_PRIM_POINTS, 2, 2 },
16
17   { PIPE_PRIM_LINES, 0, 0 },
18   { PIPE_PRIM_LINES, 1, 2 },
19   { PIPE_PRIM_LINES, 2, 4 },
20
21   { PIPE_PRIM_TRIANGLES, 0, 0 },
22   { PIPE_PRIM_TRIANGLES, 1, 3 },
23   { PIPE_PRIM_TRIANGLES, 2, 6 },
24
25   { PIPE_PRIM_QUADS, 0, 0 },
26   { PIPE_PRIM_QUADS, 1, 4 },
27   { PIPE_PRIM_QUADS, 2, 8 },
28};
29
30int
31main(int argc, char **argv)
32{
33   for(int i = 0; i < ARRAY_SIZE(tests); i++) {
34      struct test_info *info = &tests[i];
35      uint32_t n = u_vertices_for_prims(info->prim_type, info->count);
36      if (n != info->expected) {
37         printf("Failure! Expected %u vertices for %u x %s, but got %u.\n",
38                info->expected, info->count, u_prim_name(info->prim_type), n);
39         return 1;
40      }
41   }
42
43   printf("Success!\n");
44   return 0;
45}
46