On Thu, Aug 16, 2018 at 12:56:26PM +0200, Simon Kobyda wrote:
For now, there are 5 test cases
- testVshTableNew: Creating table with empty header
- testVshTableHeader: Printing table with/without header
- testVshTableRowAppend: Appending row with various number of cells.
Only row with same number of cells as in header is accepted.
- testVshTableNewUnicode: Printing table with unicode characters.
Checking correct alignment.
- testNTables: Create and print various types of tables - one column,
one row table, table without content, standard table...
Signed-off-by: Simon Kobyda <skobyda(a)redhat.com>
---
tests/Makefile.am | 8 ++
tests/vshtabletest.c | 247 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 255 insertions(+)
create mode 100644 tests/vshtabletest.c
+static int
+testVshTableNew(const void *opaque ATTRIBUTE_UNUSED)
+{
+ int ret = 0;
no need for a 'ret' variable if you don't have a cleanup section.
+
+ if (vshTableNew(NULL)) {
+ fprintf(stderr, "expected failure when passing null to"
+ "vshtablenew\n");
Missing space between 'to' and 'vshtablenew'
+ ret = -1;
+ }
+
+ return ret;
+}
+
+static int
+testVshTableHeader(const void *opaque ATTRIBUTE_UNUSED)
+{
+ int ret = 0;
+ char *out;
+ const char *exp = "\
+ 1 fedora28 running \n\
+ 2 rhel7.5 running \n";
+ const char *exp2 = "\
+ Id Name State \n\
+--------------------------\n\
+ 1 fedora28 running \n\
+ 2 rhel7.5 running \n";
Please use one string literal per line in new code. That way you can align them.
+
+ vshTablePtr table = vshTableNew("Id", "Name", "State",
+ NULL); //to ask about return
+ if (!table)
+ goto cleanup;
+
+ vshTableRowAppend(table, "1", "fedora28", "running",
NULL);
+ vshTableRowAppend(table, "2", "rhel7.5", "running",
+ NULL);
+
[...]
+static int
+testNTables(const void *opaque ATTRIBUTE_UNUSED)
+{
+ int ret = 0;
+ vshTablePtr table1;
+ vshTablePtr table2;
+ vshTablePtr table3;
+ const char *exp1 = "\
+ Id Name Status \n\
+--------------------------\n\
+ 1 fedora28 running \n\
+ 2 rhel7.5 running \n";
+ const char *exp2 = "\
+ Id Name Status \n\
+---------------------\n";
+ const char *exp3 = "\
+ Id \n\
+-----\n\
+ 1 \n\
+ 2 \n\
+ 3 \n\
+ 4 \n";
+ char *out1;
+ char *out2;
+ char *out3;
+
+ table1 = vshTableNew("Id", "Name", "Status", NULL);
+ if (!table1)
+ goto cleanup;
+ vshTableRowAppend(table1, "1", "fedora28", "running",
NULL);
+ vshTableRowAppend(table1, "2", "rhel7.5", "running",
NULL);
+ out1 = vshTablePrintToString(table1, true);
+
+ table2 = vshTableNew("Id", "Name", "Status", NULL);
+ if (!table2)
+ goto cleanup;
out2 and out3 are unitialized if you jump to cleanup here.
Jano
+ out2 = vshTablePrintToString(table2, true);
+
+ table3 = vshTableNew("Id", NULL);