diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile.am | 1 | ||||
-rwxr-xr-x | tests/dd/bytes | 57 |
2 files changed, 58 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index c951f69a1..7b5368195 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -369,6 +369,7 @@ TESTS = \ dd/reblock \ dd/skip-seek \ dd/skip-seek2 \ + dd/bytes \ dd/skip-seek-past-file \ dd/stderr \ dd/unblock \ diff --git a/tests/dd/bytes b/tests/dd/bytes new file mode 100755 index 000000000..603874290 --- /dev/null +++ b/tests/dd/bytes @@ -0,0 +1,57 @@ +#!/bin/sh + +# Copyright (C) 2012 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +. "${srcdir=.}/init.sh"; path_prepend_ ../src +print_ver_ dd + +# count_bytes +echo 0123456789abcdefghijklm > in || framework_failure_ +dd count=14 conv=swab iflag=count_bytes < in > out 2> /dev/null || fail=1 +case `cat out` in + 1032547698badc) ;; + *) fail=1 ;; +esac + +# skip_bytes +echo 0123456789abcdefghijklm > in || framework_failure_ +dd skip=10 iflag=skip_bytes < in > out 2> /dev/null || fail=1 +case `cat out` in + abcdefghijklm) ;; + *) fail=1 ;; +esac + +# skip records and bytes from pipe +echo 0123456789abcdefghijklm | + dd skip=10 bs=2 iflag=skip_bytes > out 2> /dev/null || fail=1 +case `cat out` in + abcdefghijklm) ;; + *) fail=1 ;; +esac + +# seek bytes +echo abcdefghijklm | + dd bs=5 seek=8 oflag=seek_bytes > out 2> /dev/null || fail=1 +echo abcdefghijklm | + dd bs=4 seek=2 > expected 2> /dev/null || fail=1 +compare expected out || fail=1 + +# seek bytes on empty file +echo abcdefghijklm | + dd bs=5 seek=8 oflag=seek_bytes > out2 2> /dev/null || fail=1 +compare expected out2 || fail=1 + +Exit $fail |