2 * Unit tests of table printer
4 * (c) 2014 Robert Kessl <robert.kessl@economia.cz>
12 enum test_table_cols {
13 test_col0_str, test_col1_int, test_col2_uint, test_col3_bool, test_col4_double
16 static struct table_template test_tbl = {
18 [test_col0_str] = TBL_COL_STR("col0_str", 30 | CELL_ALIGN_LEFT),
19 [test_col1_int] = TBL_COL_INT("col1_int", 8),
20 [test_col2_uint] = TBL_COL_UINT("col2_uint", 9),
21 [test_col3_bool] = TBL_COL_BOOL_FMT("col3_bool", 9 | CELL_ALIGN_LEFT, XTYPE_FMT_PRETTY),
22 [test_col4_double] = TBL_COL_DOUBLE_FMT("col4_double", 11 | CELL_ALIGN_LEFT, XTYPE_FMT_DEFAULT),
25 TBL_FMT_HUMAN_READABLE,
26 TBL_COL_DELIMITER("\t"),
29 static char **cli_table_opts;
31 static struct opt_section table_printer_opts = {
34 OPT_STRING_MULTIPLE('T', "table", cli_table_opts, OPT_REQUIRED_VALUE, "\tSets options for the table."),
40 static void process_command_line_opts(char *argv[], struct table *tbl)
42 GARY_INIT(cli_table_opts, 0);
44 opt_parse(&table_printer_opts, argv+1);
45 table_set_gary_options(tbl, cli_table_opts);
47 GARY_FREE(cli_table_opts);
50 static void print_table(struct table *tbl, struct fastbuf *out)
52 table_start(tbl, out);
54 struct fastbuf *colfb = table_col_fbstart(tbl, test_col0_str);
55 bputs(colfb, "HELLO");
56 bprintf(colfb, ",col_idx:%d", test_col0_str);
59 table_col_int(tbl, test_col1_int, -10);
60 table_col_uint(tbl, test_col2_uint, 10);
61 table_col_bool(tbl, test_col3_bool, 0);
62 table_col_double(tbl, test_col4_double, 3.1415926535897);
67 colfb = table_col_fbstart(tbl, test_col0_str);
69 bprintf(colfb, ",col_idx:%d", test_col0_str);
72 table_col_int(tbl, test_col1_int, -12345);
73 table_col_uint(tbl, test_col2_uint, 0xFF);
74 table_col_bool(tbl, test_col3_bool, 1);
75 table_col_double(tbl, test_col4_double, 1.61803398875);
80 colfb = table_col_fbstart(tbl, test_col0_str);
82 bprintf(colfb, ",col_idx:%d", test_col0_str);
85 table_col_int(tbl, test_col1_int, -54321);
86 table_col_uint(tbl, test_col2_uint, 0xFF00);
87 table_col_bool(tbl, test_col3_bool, 0);
88 table_col_double(tbl, test_col4_double, 2.718281828459045);
95 int main(int argc UNUSED, char **argv)
98 out = bfdopen_shared(1, 4096);
100 struct table *tbl = table_init(&test_tbl);
101 process_command_line_opts(argv, tbl);
103 print_table(tbl, out);