2 * Unit tests of table printer
4 * (c) 2014 Robert Kessl <robert.kessl@economia.cz>
9 #include <ucw/table-types.h>
13 enum test_table_cols {
14 TEST_COL0_SIZE, TEST_COL1_TS
17 static struct table test_tbl = {
19 [TEST_COL0_SIZE] = TBL_COL_SIZE_FMT("size", 15, UNIT_BYTE),
20 [TEST_COL1_TS] = TBL_COL_TIMESTAMP("ts", 20),
23 TBL_OUTPUT_HUMAN_READABLE,
26 static void do_test(void)
29 out = bfdopen_shared(1, 4096);
30 struct table *tbl = table_init(&test_tbl);
31 table_start(tbl, out);
33 u64 test_time = 1403685533;
34 s64 test_size = 4LU*(1024LU * 1024LU * 1024LU);
36 table_col_size(tbl, TEST_COL0_SIZE, test_size);
37 table_col_timestamp(tbl, TEST_COL1_TS, test_time);
40 tbl->column_order[TEST_COL0_SIZE].output_type = UNIT_KILOBYTE;
41 table_col_size(tbl, TEST_COL0_SIZE, test_size);
42 table_col_timestamp(tbl, TEST_COL1_TS, test_time);
45 tbl->column_order[TEST_COL0_SIZE].output_type = UNIT_MEGABYTE;
46 table_col_size(tbl, TEST_COL0_SIZE, test_size);
47 table_col_timestamp(tbl, TEST_COL1_TS, test_time);
50 tbl->column_order[TEST_COL0_SIZE].output_type = UNIT_GIGABYTE;
51 tbl->column_order[TEST_COL1_TS].output_type = TIMESTAMP_DATETIME;
52 table_col_size(tbl, TEST_COL0_SIZE, test_size);
53 table_col_timestamp(tbl, TEST_COL1_TS, test_time);
56 test_size = test_size * 1024LU;
57 tbl->column_order[TEST_COL0_SIZE].output_type = UNIT_TERABYTE;
58 tbl->column_order[TEST_COL1_TS].output_type = TIMESTAMP_DATETIME;
59 table_col_size(tbl, TEST_COL0_SIZE, test_size);
60 table_col_timestamp(tbl, TEST_COL1_TS, test_time);
71 static struct table test_tbl2 = {
73 [TEST_COL0_SIZE] = TBL_COL_SIZE_FMT("size", 15, UNIT_BYTE),
74 [TEST_COL1_TS] = TBL_COL_TIMESTAMP("ts", 20),
77 TBL_OUTPUT_HUMAN_READABLE,
80 static void do_test2(void)
83 out = bfdopen_shared(1, 4096);
84 struct table *tbl = table_init(&test_tbl2);
85 table_set_col_order_by_name(tbl, "");
86 const char *err = table_set_option_value(tbl, "cols", "size[kb],size[mb],size[gb],size[tb],ts[datetime],ts[timestamp]");
88 opt_failure("err in table_set_option_value: '%s'.", err);
91 table_start(tbl, out);
93 u64 test_time = 1403685533;
94 s64 test_size = 4LU*(1024LU * 1024LU * 1024LU);
96 table_col_size(tbl, TEST_COL0_SIZE, test_size);
97 table_col_timestamp(tbl, TEST_COL1_TS, test_time);
100 table_col_size(tbl, TEST_COL0_SIZE, test_size);
101 table_col_timestamp(tbl, TEST_COL1_TS, test_time);
104 test_size = test_size * 1024LU;
106 table_col_size(tbl, TEST_COL0_SIZE, test_size);
107 table_col_timestamp(tbl, TEST_COL1_TS, test_time);
116 int main(int argc UNUSED, char **argv UNUSED)