tests: fix portability issue in dd/ascii test
[coreutils.git] / tests / dd / ascii.sh
blob98a57a19751f4e6f72cc8e093cb4a46c93aac1cf
1 #!/bin/sh
2 # test conv=ascii
4 # Copyright (C) 2014 Free Software Foundation, Inc.
6 # This program is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
19 . "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
20 print_ver_ dd
23 # Two lines, EBCDIC " A A" and " A ", followed by all the bytes in order.
24 env printf '\100\301\100\301\100\301\100\100' &&
25 env printf $(env printf '\\%03o' $(seq 0 255));
26 } >in || framework_failure_
29 # The converted lines, with trailing spaces removed.
30 env printf \
31 ' A A\n A\n'\
32 '\000\001\002\003\n\234\011\206\177\n'\
33 '\227\215\216\013\n\014\015\016\017\n'\
34 '\020\021\022\023\n\235\205\010\207\n'\
35 '\030\031\222\217\n\034\035\036\037\n'\
36 '\200\201\202\203\n\204\012\027\033\n'\
37 '\210\211\212\213\n\214\005\006\007\n'\
38 '\220\221\026\223\n\224\225\226\004\n'\
39 '\230\231\232\233\n\024\025\236\032\n'\
40 '\040\240\241\242\n\243\244\245\246\n'\
41 '\247\250\325\056\n\074\050\053\174\n'\
42 '\046\251\252\253\n\254\255\256\257\n'\
43 '\260\261\041\044\n\052\051\073\176\n'\
44 '\055\057\262\263\n\264\265\266\267\n'\
45 '\270\271\313\054\n\045\137\076\077\n'\
46 '\272\273\274\275\n\276\277\300\301\n'\
47 '\302\140\072\043\n\100\047\075\042\n'\
48 '\303\141\142\143\n\144\145\146\147\n'\
49 '\150\151\304\305\n\306\307\310\311\n'\
50 '\312\152\153\154\n\155\156\157\160\n'\
51 '\161\162\136\314\n\315\316\317\320\n'\
52 '\321\345\163\164\n\165\166\167\170\n'\
53 '\171\172\322\323\n\324\133\326\327\n'\
54 '\330\331\332\333\n\334\335\336\337\n'\
55 '\340\341\342\343\n\344\135\346\347\n'\
56 '\173\101\102\103\n\104\105\106\107\n'\
57 '\110\111\350\351\n\352\353\354\355\n'\
58 '\175\112\113\114\n\115\116\117\120\n'\
59 '\121\122\356\357\n\360\361\362\363\n'\
60 '\134\237\123\124\n\125\126\127\130\n'\
61 '\131\132\364\365\n\366\367\370\371\n'\
62 '\060\061\062\063\n\064\065\066\067\n'\
63 '\070\071\372\373\n\374\375\376\377\n';
64 } >exp || framework_failure_
66 dd if=in of=out conv=ascii cbs=4 || fail=1
68 compare exp out \
69 || { od -v -to1 exp > exp2 || framework_failure_;
70 od -v -to1 out > out2 || framework_failure_;
71 compare exp2 out2;
72 fail=1; }
74 Exit $fail