Mercurial > hg > toybox
annotate scripts/test/expand.test @ 715:3417db95f24b
Add expand command as described in POSIX-2008.
Erratum: Do not handle backspace.
author | Jonathan Clairembault <jonathan@clairembault.fr> |
---|---|
date | Fri, 23 Nov 2012 00:06:28 +0100 |
parents | |
children | 8c10cf7bace0 |
rev | line source |
---|---|
715
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
1 #!/bin/bash |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
2 |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
3 # POSIX 2008 compliant expand tests. |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
4 # Copyright 2012 by Jonathan Clairembault <jonathan@clairembault.fr> |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
5 |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
6 [ -f testing.sh ] && . testing.sh |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
7 |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
8 # some basic tests |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
9 |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
10 testing "expand default" "expand input" " foo bar\n" "\tfoo\tbar\n" "" |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
11 testing "expand default stdin" "expand" " foo bar\n" "" "\tfoo\tbar\n" |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
12 testing "expand single" "expand -t 2 input" " foo bar\n" "\tfoo\tbar\n" "" |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
13 testing "expand tablist" "expand -t 5,10,12 input" " foo bar foo\n" "\tfoo\tbar\tfoo\n" "" |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
14 |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
15 # advanced tests |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
16 |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
17 POW=15 |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
18 TABSTOP=1 |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
19 BIGTAB=" " |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
20 for i in $(seq $POW); do |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
21 BIGTAB=$BIGTAB$BIGTAB |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
22 TABSTOP=$[$TABSTOP*2] |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
23 done |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
24 testing "expand long tab single" "expand -t $TABSTOP input" "${BIGTAB}foo\n" "\tfoo\n" "" |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
25 testing "expand long tab tablist" "expand -t $TABSTOP,$[TABSTOP+5] input" \ |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
26 "${BIGTAB}foo bar\n" "\tfoo\tbar\n" "" |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
27 |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
28 testing "expand multiline single" "expand -t 4 input" "foo \n bar\n" "foo\t\n\tbar\n" "" |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
29 testing "expand multiline tablist" "expand -t 4,8 input" \ |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
30 "foo bar\n bar foo\n" "foo\t\tbar\n\tbar\tfoo\n" "" |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
31 POW=15 |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
32 BIGLINE="foo " |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
33 for i in $(seq $POW); do |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
34 BIGLINE=$BIGLINE$BIGLINE |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
35 done |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
36 if [ $POW -gt 0 ]; then |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
37 EXPANDLINE="${BIGLINE} foo\n" |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
38 else |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
39 EXPANDLINE="${BIGLINE} foo\n" |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
40 fi |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
41 BIGLINE="${BIGLINE}\tfoo\n" |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
42 testing "expand long line single" "expand input" \ |
3417db95f24b
Add expand command as described in POSIX-2008.
Jonathan Clairembault <jonathan@clairembault.fr>
parents:
diff
changeset
|
43 "${EXPANDLINE}" "$BIGLINE" "" |