]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
tests: add export and raw to libsmartcols test
authorKarel Zak <kzak@redhat.com>
Fri, 16 Sep 2016 11:49:37 +0000 (13:49 +0200)
committerKarel Zak <kzak@redhat.com>
Fri, 16 Sep 2016 11:49:37 +0000 (13:49 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
libsmartcols/samples/fromfile.c
tests/expected/libsmartcols/fromfile-export [new file with mode: 0644]
tests/expected/libsmartcols/fromfile-raw [new file with mode: 0644]
tests/ts/libsmartcols/fromfile

index e33cb3c9aaf1153d1225462f2c12ec28c1ccd88e..6b9748897beb8347c526e2a48cb49f3377021406 100644 (file)
@@ -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 <file>            column definition\n", out);
        fputs(" -n, --nlines <num>             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 <num>              hardcode terminal width\n", out);
        fputs(" -p, --tree-parent-column <n>   parent column\n", out);
        fputs(" -i, --tree-id-column <n>       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 (file)
index 0000000..f63afd8
--- /dev/null
@@ -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 (file)
index 0000000..cc188aa
--- /dev/null
@@ -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
index f9c270a70e08ad40449b6be3f9183a20f6771405..c2796f777bcb91422e70ab165081f99a2cfcf929 100755 (executable)
@@ -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