1#!/bin/bash
2#
3# This file is part of util-linux.
4#
5# This file is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation; either version 2 of the License, or
8# (at your option) any later version.
9#
10# This file is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13# GNU General Public License for more details.
14#
15#
16
17TS_TOPDIR="${0%/*}/../.."
18TS_DESC="fromfile"
19
20. $TS_TOPDIR/functions.sh
21ts_init "$*"
22
23TESTPROG="$TS_HELPER_LIBSMARTCOLS_FROMFILE"
24ts_check_test_command "$TESTPROG"
25
26ts_init_subtest "tree"
27ts_run $TESTPROG --nlines 10 \
28	--tree-id-column 1 \
29	--tree-parent-column 2 \
30	--column $TS_SELF/files/col-tree \
31	--column $TS_SELF/files/col-id \
32	--column $TS_SELF/files/col-parent \
33	--column $TS_SELF/files/col-string \
34	$TS_SELF/files/data-string \
35	$TS_SELF/files/data-id \
36	$TS_SELF/files/data-parent \
37	$TS_SELF/files/data-string-long \
38	>> $TS_OUTPUT 2>> $TS_ERRLOG
39ts_finalize_subtest
40
41ts_init_subtest "tree-json"
42ts_run $TESTPROG --nlines 10 --json \
43	--tree-id-column 1 \
44	--tree-parent-column 2 \
45	--column $TS_SELF/files/col-tree \
46	--column $TS_SELF/files/col-id \
47	--column $TS_SELF/files/col-parent \
48	--column $TS_SELF/files/col-string \
49	$TS_SELF/files/data-string \
50	$TS_SELF/files/data-id \
51	$TS_SELF/files/data-parent \
52	$TS_SELF/files/data-string-long \
53	>> $TS_OUTPUT 2>> $TS_ERRLOG
54ts_finalize_subtest
55
56ts_init_subtest "tree-middle"
57ts_run $TESTPROG --nlines 10 \
58	--tree-id-column 0 \
59	--tree-parent-column 1 \
60	--column $TS_SELF/files/col-id \
61	--column $TS_SELF/files/col-parent \
62	--column $TS_SELF/files/col-tree \
63	--column $TS_SELF/files/col-string \
64	$TS_SELF/files/data-id \
65	$TS_SELF/files/data-parent \
66	$TS_SELF/files/data-string \
67	$TS_SELF/files/data-string-long \
68	>> $TS_OUTPUT 2>> $TS_ERRLOG
69ts_finalize_subtest
70
71ts_init_subtest "tree-end"
72ts_run $TESTPROG --nlines 10 \
73	--tree-id-column 0 \
74	--tree-parent-column 1 \
75	--column $TS_SELF/files/col-id \
76	--column $TS_SELF/files/col-parent \
77	--column $TS_SELF/files/col-string \
78	--column $TS_SELF/files/col-tree \
79	$TS_SELF/files/data-id \
80	$TS_SELF/files/data-parent \
81	$TS_SELF/files/data-string-long \
82	$TS_SELF/files/data-string \
83	>> $TS_OUTPUT 2>> $TS_ERRLOG
84ts_finalize_subtest
85
86ts_init_subtest "trunc"
87ts_run $TESTPROG --nlines 10 --width 40 \
88	--column $TS_SELF/files/col-name \
89	--column $TS_SELF/files/col-number \
90	--column $TS_SELF/files/col-trunc \
91	$TS_SELF/files/data-string \
92	$TS_SELF/files/data-number \
93	$TS_SELF/files/data-string-long \
94	>> $TS_OUTPUT 2>> $TS_ERRLOG
95ts_finalize_subtest
96
97ts_init_subtest "right"
98ts_run $TESTPROG --nlines 10 \
99	--column $TS_SELF/files/col-name \
100	--column $TS_SELF/files/col-number \
101	--column $TS_SELF/files/col-string \
102	$TS_SELF/files/data-string \
103	$TS_SELF/files/data-number \
104	$TS_SELF/files/data-string-long \
105	>> $TS_OUTPUT 2>> $TS_ERRLOG
106ts_finalize_subtest
107
108ts_init_subtest "right-maxout"
109ts_run $TESTPROG --nlines 10 --maxout --width 80\
110	--column $TS_SELF/files/col-name \
111	--column $TS_SELF/files/col-number \
112	$TS_SELF/files/data-string \
113	$TS_SELF/files/data-number \
114	>> $TS_OUTPUT 2>> $TS_ERRLOG
115ts_finalize_subtest
116
117ts_init_subtest "padding-default"
118export LIBSMARTCOLS_DEBUG_PADDING=on
119ts_run $TESTPROG --nlines 10 --width 80 \
120	--column $TS_SELF/files/col-name \
121	--column $TS_SELF/files/col-number \
122	--column $TS_SELF/files/col-string \
123	--column $TS_SELF/files/col-string \
124	$TS_SELF/files/data-string \
125	$TS_SELF/files/data-number \
126	$TS_SELF/files/data-string-empty \
127	$TS_SELF/files/data-string-empty \
128	>> $TS_OUTPUT 2> /dev/null
129ts_finalize_subtest
130
131ts_init_subtest "padding-maxout"
132export LIBSMARTCOLS_DEBUG_PADDING=on
133ts_run $TESTPROG --nlines 10 --width 80 \
134	--maxout \
135	--column $TS_SELF/files/col-name \
136	--column $TS_SELF/files/col-number \
137	--column $TS_SELF/files/col-string \
138	--column $TS_SELF/files/col-string \
139	$TS_SELF/files/data-string \
140	$TS_SELF/files/data-number \
141	$TS_SELF/files/data-string-empty \
142	$TS_SELF/files/data-string-empty \
143	>> $TS_OUTPUT 2> /dev/null
144ts_finalize_subtest
145
146ts_init_subtest "padding-minout"
147export LIBSMARTCOLS_DEBUG_PADDING=on
148ts_run $TESTPROG --nlines 10 --width 80 \
149	--minout \
150	--column $TS_SELF/files/col-name \
151	--column $TS_SELF/files/col-number \
152	--column $TS_SELF/files/col-string \
153	--column $TS_SELF/files/col-string \
154	$TS_SELF/files/data-string \
155	$TS_SELF/files/data-number \
156	$TS_SELF/files/data-string-empty \
157	$TS_SELF/files/data-string-empty \
158	>> $TS_OUTPUT 2> /dev/null
159ts_finalize_subtest
160
161unset LIBSMARTCOLS_DEBUG_PADDING
162
163ts_init_subtest "strictwidth"
164ts_run $TESTPROG --nlines 10 \
165	--column $TS_SELF/files/col-name \
166	--column $TS_SELF/files/col-strict \
167	--column $TS_SELF/files/col-number \
168	$TS_SELF/files/data-string \
169	$TS_SELF/files/data-number-tiny \
170	$TS_SELF/files/data-number \
171	>> $TS_OUTPUT 2>> $TS_ERRLOG
172ts_finalize_subtest
173
174ts_init_subtest "noextremes"
175ts_run $TESTPROG --nlines 10 --width 45 \
176	--column $TS_SELF/files/col-name \
177	--column $TS_SELF/files/col-noextremes \
178	--column $TS_SELF/files/col-number \
179	--column $TS_SELF/files/col-name \
180	--column $TS_SELF/files/col-number \
181	$TS_SELF/files/data-string \
182	$TS_SELF/files/data-string-extreme \
183	$TS_SELF/files/data-number \
184	$TS_SELF/files/data-string \
185	$TS_SELF/files/data-number \
186	>> $TS_OUTPUT 2>> $TS_ERRLOG
187ts_finalize_subtest
188
189ts_init_subtest "hidden"
190ts_run $TESTPROG --nlines 10 \
191	--column $TS_SELF/files/col-name \
192	--column $TS_SELF/files/col-hidden \
193	--column $TS_SELF/files/col-number \
194	$TS_SELF/files/data-string \
195	$TS_SELF/files/data-string-long \
196	$TS_SELF/files/data-number \
197	>> $TS_OUTPUT 2>> $TS_ERRLOG
198ts_finalize_subtest
199
200ts_init_subtest "wrap"
201ts_run $TESTPROG --nlines 10 --width 40 \
202	--column $TS_SELF/files/col-name \
203	--column $TS_SELF/files/col-number \
204	--column $TS_SELF/files/col-wrap \
205	$TS_SELF/files/data-string \
206	$TS_SELF/files/data-number \
207	$TS_SELF/files/data-string-long \
208	>> $TS_OUTPUT 2>> $TS_ERRLOG
209ts_finalize_subtest
210
211ts_init_subtest "wrap-tree"
212ts_run $TESTPROG --nlines 10 --width 45 \
213	--tree-id-column 1 \
214	--tree-parent-column 2 \
215	--column $TS_SELF/files/col-tree \
216	--column $TS_SELF/files/col-id \
217	--column $TS_SELF/files/col-parent \
218	--column $TS_SELF/files/col-wrap \
219	$TS_SELF/files/data-string \
220	$TS_SELF/files/data-id \
221	$TS_SELF/files/data-parent \
222	$TS_SELF/files/data-string-long \
223	>> $TS_OUTPUT 2>> $TS_ERRLOG
224ts_finalize_subtest
225
226ts_init_subtest "wrapnl"
227ts_run $TESTPROG --nlines 10 \
228	--column $TS_SELF/files/col-name \
229	--column $TS_SELF/files/col-number \
230	--column $TS_SELF/files/col-wrapnl \
231	$TS_SELF/files/data-string \
232	$TS_SELF/files/data-number \
233	$TS_SELF/files/data-string-nl \
234	>> $TS_OUTPUT 2>> $TS_ERRLOG
235ts_finalize_subtest
236
237ts_init_subtest "wrapnl-tree"
238ts_run $TESTPROG --nlines 10 \
239	--tree-id-column 1 \
240	--tree-parent-column 2 \
241	--column $TS_SELF/files/col-tree \
242	--column $TS_SELF/files/col-id \
243	--column $TS_SELF/files/col-parent \
244	--column $TS_SELF/files/col-wrapnl \
245	$TS_SELF/files/data-string \
246	$TS_SELF/files/data-id \
247	$TS_SELF/files/data-parent \
248	$TS_SELF/files/data-string-nl \
249	>> $TS_OUTPUT 2>> $TS_ERRLOG
250ts_finalize_subtest
251
252ts_init_subtest "raw"
253ts_run $TESTPROG --nlines 10 --raw \
254	--column $TS_SELF/files/col-name \
255	--column $TS_SELF/files/col-number \
256	--column $TS_SELF/files/col-trunc \
257	$TS_SELF/files/data-string \
258	$TS_SELF/files/data-number \
259	$TS_SELF/files/data-string-long \
260	>> $TS_OUTPUT 2>> $TS_ERRLOG
261ts_finalize_subtest
262
263ts_init_subtest "export"
264ts_run $TESTPROG --nlines 10 --export \
265	--column $TS_SELF/files/col-name \
266	--column $TS_SELF/files/col-number \
267	--column $TS_SELF/files/col-trunc \
268	$TS_SELF/files/data-string \
269	$TS_SELF/files/data-number \
270	$TS_SELF/files/data-string-long \
271	>> $TS_OUTPUT 2>> $TS_ERRLOG
272ts_finalize_subtest
273
274ts_init_subtest "column-separator"
275ts_run $TESTPROG --nlines 10 --colsep \| \
276	--column $TS_SELF/files/col-name \
277	--column $TS_SELF/files/col-number \
278	--column $TS_SELF/files/col-trunc \
279	$TS_SELF/files/data-string \
280	$TS_SELF/files/data-number \
281	$TS_SELF/files/data-string-long \
282	>> $TS_OUTPUT 2>> $TS_ERRLOG
283ts_finalize_subtest
284
285ts_log "...done."
286ts_finalize
287