From 4a2b50f2384f8fb6cec941c1483d1c60003671ee Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Fri, 16 Sep 2016 13:49:37 +0200 Subject: [PATCH] tests: add export and raw to libsmartcols test Signed-off-by: Karel Zak --- libsmartcols/samples/fromfile.c | 23 +++++++++++++++++++-- tests/expected/libsmartcols/fromfile-export | 10 +++++++++ tests/expected/libsmartcols/fromfile-raw | 11 ++++++++++ tests/ts/libsmartcols/fromfile | 22 ++++++++++++++++++++ 4 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 tests/expected/libsmartcols/fromfile-export create mode 100644 tests/expected/libsmartcols/fromfile-raw diff --git a/libsmartcols/samples/fromfile.c b/libsmartcols/samples/fromfile.c index e33cb3c9a..6b9748897 100644 --- a/libsmartcols/samples/fromfile.c +++ b/libsmartcols/samples/fromfile.c @@ -17,6 +17,7 @@ #include "nls.h" #include "strutils.h" #include "xalloc.h" +#include "optutils.h" #include "libsmartcols.h" @@ -195,6 +196,8 @@ static void __attribute__ ((__noreturn__)) usage(FILE * out) fputs(" -c, --column column definition\n", out); fputs(" -n, --nlines number of lines\n", out); fputs(" -J, --json JSON output format\n", out); + fputs(" -r, --raw RAW output format\n", out); + fputs(" -E, --export use key=\"value\" output format\n", out); fputs(" -w, --width hardcode terminal width\n", out); fputs(" -p, --tree-parent-column parent column\n", out); fputs(" -i, --tree-id-column id column\n", out); @@ -218,19 +221,29 @@ int main(int argc, char *argv[]) { "tree-parent-column", 1, 0, 'p' }, { "tree-id-column", 1, 0, 'i' }, { "json", 0, 0, 'J' }, + { "raw", 0, 0, 'r' }, + { "export", 0, 0, 'E' }, { "help", 0, 0, 'h' }, { NULL, 0, 0, 0 }, }; - setlocale(LC_ALL, ""); /* just to have enable UTF8 chars */ + static const ul_excl_t excl[] = { /* rows and cols in in ASCII order */ + { 'E', 'J', 'r' }, + { 0 } + }; + int excl_st[ARRAY_SIZE(excl)] = UL_EXCL_STATUS_INIT; + setlocale(LC_ALL, ""); /* just to have enable UTF8 chars */ scols_init_debug(0); tb = scols_new_table(); if (!tb) err(EXIT_FAILURE, "failed to create output table"); - while((c = getopt_long(argc, argv, "hc:i:Jmn:p:w:", longopts, NULL)) != -1) { + while((c = getopt_long(argc, argv, "hc:Ei:Jmn:p:rw:", longopts, NULL)) != -1) { + + err_exclusive_options(c, longopts, excl, excl_st); + switch(c) { case 'c': /* add column from file */ { @@ -259,6 +272,12 @@ int main(int argc, char *argv[]) case 'm': scols_table_enable_maxout(tb, TRUE); break; + case 'r': + scols_table_enable_raw(tb, TRUE); + break; + case 'E': + scols_table_enable_export(tb, TRUE); + break; case 'n': nlines = strtou32_or_err(optarg, "failed to parse number of lines"); break; diff --git a/tests/expected/libsmartcols/fromfile-export b/tests/expected/libsmartcols/fromfile-export new file mode 100644 index 000000000..f63afd882 --- /dev/null +++ b/tests/expected/libsmartcols/fromfile-export @@ -0,0 +1,10 @@ +NAME="aaaa" NUM="0" TRUNC="qqqqqqqqqqqqqqqqqX" +NAME="bbb" NUM="100" TRUNC="dddddddddddddX" +NAME="ccccc" NUM="21" TRUNC="ffffffffffffffffffffffffffffffffffffffffX" +NAME="dddddd" NUM="3" TRUNC="ssssssssssX" +NAME="ee" NUM="411" TRUNC="ddddddddddddddddddddddddddX" +NAME="ffff" NUM="5111" TRUNC="jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjX" +NAME="gggggg" NUM="678993321" TRUNC="mmmmmmmmmmmmmmmmmmmX" +NAME="hhh" NUM="7666666" TRUNC="lllllllllllllllllllllllllllllllllllllX" +NAME="iiiiii" NUM="8765" TRUNC="yyyyyyyyyyyyyyyyyyyyyyyyyyyyX" +NAME="jj" NUM="987456" TRUNC="pppppppppX" diff --git a/tests/expected/libsmartcols/fromfile-raw b/tests/expected/libsmartcols/fromfile-raw new file mode 100644 index 000000000..cc188aaab --- /dev/null +++ b/tests/expected/libsmartcols/fromfile-raw @@ -0,0 +1,11 @@ +NAME NUM TRUNC +aaaa 0 qqqqqqqqqqqqqqqqqX +bbb 100 dddddddddddddX +ccccc 21 ffffffffffffffffffffffffffffffffffffffffX +dddddd 3 ssssssssssX +ee 411 ddddddddddddddddddddddddddX +ffff 5111 jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjX +gggggg 678993321 mmmmmmmmmmmmmmmmmmmX +hhh 7666666 lllllllllllllllllllllllllllllllllllllX +iiiiii 8765 yyyyyyyyyyyyyyyyyyyyyyyyyyyyX +jj 987456 pppppppppX diff --git a/tests/ts/libsmartcols/fromfile b/tests/ts/libsmartcols/fromfile index f9c270a70..c2796f777 100755 --- a/tests/ts/libsmartcols/fromfile +++ b/tests/ts/libsmartcols/fromfile @@ -203,5 +203,27 @@ $TESTPROG --nlines 10 \ >> $TS_OUTPUT 2>&1 ts_finalize_subtest +ts_init_subtest "raw" +$TESTPROG --nlines 10 --raw \ + --column $TS_SELF/files/col-name \ + --column $TS_SELF/files/col-number \ + --column $TS_SELF/files/col-trunc \ + $TS_SELF/files/data-string \ + $TS_SELF/files/data-number \ + $TS_SELF/files/data-string-long \ + >> $TS_OUTPUT 2>&1 +ts_finalize_subtest + +ts_init_subtest "export" +$TESTPROG --nlines 10 --export \ + --column $TS_SELF/files/col-name \ + --column $TS_SELF/files/col-number \ + --column $TS_SELF/files/col-trunc \ + $TS_SELF/files/data-string \ + $TS_SELF/files/data-number \ + $TS_SELF/files/data-string-long \ + >> $TS_OUTPUT 2>&1 +ts_finalize_subtest + ts_log "...done." ts_finalize