busybox/testsuite/od.tests
Denys Vlasenko e2287f99fe od: for !DESKTOP, match output more closely to GNU coreutils 9.1, implement -s
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2023-05-25 17:40:20 +02:00

264 lines
4.2 KiB
Bash
Executable file

#!/bin/sh
# Copyright 2008 by Denys Vlasenko
# Licensed under GPLv2, see file LICENSE in this source tree.
. ./testing.sh
# testing "test name" "commands" "expected result" "file input" "stdin"
input="$(printf '\001\002\003\nABC\xfe')"
le=false
{ printf '\0\1' | od -s | grep -q 256; } && le=true
readonly le
# NB:
# sed 's/ *$//' truncates trailing spaces.
# This needs to be fixed properly (not output them).
# For now, the tests ignore them (does not require a match).
optional !DESKTOP
testing "od -a (!DESKTOP)" \
"od -a | sed 's/ *$//'" \
"\
0000000 soh stx etx lf A B C fe
0000010
" \
"" "$input"
SKIP=
optional !DESKTOP
testing "od -B (!DESKTOP)" \
"od -B | sed 's/ *$//'" \
"\
0000000 001001 005003 041101 177103
0000010
" \
"" "$input"
SKIP=
optional !DESKTOP
$le || SKIP=1
testing "od -o (!DESKTOP little-endian)" \
"od -o | sed 's/ *$//'" \
"\
0000000 001001 005003 041101 177103
0000010
" \
"" "$input"
SKIP=
optional !DESKTOP
testing "od -b (!DESKTOP)" \
"od -b | sed 's/ *$//'" \
"\
0000000 001 002 003 012 101 102 103 376
0000010
" \
"" "$input"
SKIP=
optional !DESKTOP
testing "od -c (!DESKTOP)" \
"od -c | sed 's/ *$//'" \
"\
0000000 001 002 003 \\\\n A B C 376
0000010
" \
"" "$input"
SKIP=
optional !DESKTOP
$le || SKIP=1
testing "od -d (!DESKTOP little-endian)" \
"od -d | sed 's/ *$//'" \
"\
0000000 513 2563 16961 65091
0000010
" \
"" "$input"
SKIP=
optional !DESKTOP
$le || SKIP=1
testing "od -D (!DESKTOP little-endian)" \
"od -D | sed 's/ *$//'" \
"\
0000000 167969281 4265820737
0000010
" \
"" "$input"
SKIP=
optional !DESKTOP
$le || SKIP=1
testing "od -e (!DESKTOP little-endian)" \
"od -e | sed 's/ *$//'" \
"\
0000000 -1.61218556514036e+300
0000010
" \
"" "$input"
SKIP=
optional !DESKTOP
$le || SKIP=1
testing "od -F (!DESKTOP little-endian)" \
"od -F | sed 's/ *$//'" \
"\
0000000 -1.61218556514036e+300
0000010
" \
"" "$input"
optional !DESKTOP
$le || SKIP=1
testing "od -f (!DESKTOP little-endian)" \
"od -f | sed 's/ *$//'" \
"\
0000000 6.3077975e-33 -6.4885867e+37
0000010
" \
"" "$input"
SKIP=
optional !DESKTOP
$le || SKIP=1
testing "od -H (!DESKTOP little-endian)" \
"od -H | sed 's/ *$//'" \
"\
0000000 0a030201 fe434241
0000010
" \
"" "$input"
SKIP=
optional !DESKTOP
$le || SKIP=1
testing "od -X (!DESKTOP little-endian)" \
"od -X | sed 's/ *$//'" \
"\
0000000 0a030201 fe434241
0000010
" \
"" "$input"
SKIP=
optional !DESKTOP
$le || SKIP=1
testing "od -h (!DESKTOP little-endian)" \
"od -h | sed 's/ *$//'" \
"\
0000000 0201 0a03 4241 fe43
0000010
" \
"" "$input"
SKIP=
optional !DESKTOP
$le || SKIP=1
testing "od -x (!DESKTOP little-endian)" \
"od -x | sed 's/ *$//'" \
"\
0000000 0201 0a03 4241 fe43
0000010
" \
"" "$input"
SKIP=
optional !DESKTOP
$le || SKIP=1
testing "od -I (!DESKTOP little-endian)" \
"od -I | sed 's/ *$//'" \
"\
0000000 -125183517527965183
0000010
" \
"" "$input"
SKIP=
optional !DESKTOP
$le || SKIP=1
testing "od -L (!DESKTOP little-endian)" \
"od -L | sed 's/ *$//'" \
"\
0000000 -125183517527965183
0000010
" \
"" "$input"
SKIP=
optional !DESKTOP
$le || SKIP=1
testing "od -i (!DESKTOP little-endian)" \
"od -i | sed 's/ *$//'" \
"\
0000000 167969281 -29146559
0000010
" \
"" "$input"
SKIP=
optional !DESKTOP
$le || SKIP=1
testing "od -O (!DESKTOP little-endian)" \
"od -O | sed 's/ *$//'" \
"\
0000000 01200601001 37620641101
0000010
" \
"" "$input"
SKIP=
optional !DESKTOP
$le || SKIP=1
testing "od -l (!DESKTOP little-endian)" \
"od -l | sed 's/ *$//'" \
"\
0000000 -125183517527965183
0000010
" \
"" "$input"
SKIP=
optional DESKTOP
testing "od -b" \
"od -b" \
"\
0000000 110 105 114 114 117
0000005
" \
"" "HELLO"
SKIP=
optional DESKTOP
testing "od -f" \
"od -f" \
"\
0000000 0.0000000e+00 0.0000000e+00
0000010
" \
"" "\x00\x00\x00\x00\x00\x00\x00\x00"
SKIP=
optional DESKTOP LONG_OPTS
testing "od -b --traditional" \
"od -b --traditional" \
"\
0000000 110 105 114 114 117
0000005
" \
"" "HELLO"
SKIP=
optional DESKTOP LONG_OPTS
testing "od -b --traditional FILE" \
"od -b --traditional input" \
"\
0000000 110 105 114 114 117
0000005
" \
"HELLO" ""
SKIP=
exit $FAILCOUNT