[libvirt] [PATCH v3 3/3] vsh: Added tests

Ján Tomko jtomko at redhat.com
Thu Aug 16 12:11:58 UTC 2018


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 at 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);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20180816/79cc2f8a/attachment-0001.sig>


More information about the libvir-list mailing list