aboutsummaryrefslogtreecommitdiffstats
path: root/tests/od (follow)
AgeCommit message (Collapse)AuthorFilesLines
2025-08-12maint: use short form bug URLsPádraig Brady1-2/+2
* cfg.mk (sc_prohibit-long-form-bug-urls): Disallow long form in code. * scripts/git-hooks/commit-msg: Disallow long form in commit messages. * NEWS: Shorten long urls. * bootstrap.conf: Likewise. * configure.ac: Likewise. * scripts/git-hooks/commit-msg: Likewise. * src/csplit.c: Likewise. * src/fmt.c: Likewise. * src/make-prime-list.c: Likewise. * src/nohup.c: Likewise. * tests/od/od-float.sh: Likewise. * tests/rm/r-root.sh: Likewise. * tests/tail/inotify-race.sh: Likewise. * tests/tail/inotify-race2.sh: Likewise.
2025-07-01tests: avoid false failure due to varied ERANGE errorsPádraig Brady1-3/+6
* tests/od/od.pl: Use the system error string for ERANGE, rather than hardcoding a particular one. Fixes https://bugs.gnu.org/78934
2025-06-29od: add test cases for recent fixPaul Eggert1-0/+18
* tests/od/od.pl: New tests for the offset issues
2025-06-28od: fix '+N.' bugPaul Eggert1-0/+4
* src/od.c (parse_old_offset): First arg is now char *, not char const *. If a decimal number, temporarily modify the string so that xstrtoumax does not complain about the '.'. * tests/od/od.pl: Test for the bug.
2025-06-28od: fix some unlikely integer overflowsPaul Eggert1-0/+43
* src/od.c (print_n_spaces, pad_at, pad_at_overflow): New static functions. (struct tspec, PRINT_FIELDS, print_named_ascii, print_ascii) (decode_one_format, write_block, main): Use idx_t, not int, for counts that depend on the number of bytes in an object. (decode_one_format): Use print_n_spaces to output spaces. (PRINT_FIELDS, print_named_ascii, print_ascii): Use pad_at to avoid integer overflow. (write_block): Do not use %*s to pad, as the total pad might exceed INT_MAX. Instead, pad by hand with putchar (' '). (main): Use pad_at_overflow to report integer overflow due to oversize -w. Use better way to tell whether -w is used, without needing IF_LINT. * tests/od/big-w.sh: New test. * tests/local.mk (all_tests): Add it.
2025-06-24od: output standard diagnostics for invalid -w argumentsPádraig Brady1-1/+11
* src/od.c (main): Don't pass LONGINT_OK to xstrtol_fatal(), as otherwise it will abort(). * tests/od/od.pl: Add test cases. * NEWS: Mention the bug fix. Addresses https://bugs.gnu.org/78879
2025-06-24od: fix various off-by-one issues with --strings with -NPádraig Brady1-2/+27
* src/od.c (dump_strings): There are three related issues here due to not accounting for the terminating NUL char appropriately. 1. Ensure BUF always has enough space for the terminating NUL. This avoids CWE-122: Heap-based Buffer Overflow, where we wrote a single NUL byte directly after the allocated buffer. I.e., there should be no buffer overflow with: printf '%100s' | od -N100 -S1 2. Ensure we support -S == -N (END_OFFSET - STRING_MIN == ADDRESS): I.e., there should be output with: printf '%100s' | od -N10 -S10 3. Ensure we always output a valid address by ensuring the ADDRESS and I variables are kept in sync. I.e., this should output address 0000000 not 1777777777777777777777: printf '%100s' | od -N10 -S1 As well as fixing these we simplify by using a single loop to read the data, rather than two. * doc/coreutils.texi (od invocation): Clarify that -N implicitly NUL terminates strings. * tests/od/od-N.sh: Add test cases. * NEWS: Mention the bug fixes. Fixes https://bugs.gnu.org/78880
2025-01-01maint: update all copyright year number rangesPádraig Brady7-7/+7
Update to latest gnulib with new copyright year. Run "make update-copyright" and then... * gnulib: Update included in this commit as copyright years are the only change from the previous gnulib commit. * tests/init.sh: Sync with gnulib to pick up copyright year. * bootstrap: Likewise. * tests/sample-test: Adjust to use the single most recent year.
2024-03-27tests: od: avoid outputting undefined floating point valuesBruno Haible1-1/+1
od was seen to abort() on glibc on ia64 and m68k with the error: Fatal glibc error: printf_fp.c:501 (__printf_fp_buffer_1): assertion failed: cy == 1 || (p.frac[p.fracsize - 2] == 0 && p.frac[0] == 0) * tests/od/od-multiple-t.sh: Avoid outputting long double floats to avoid undefined behavior. 'float' and 'double' are standardized by IEEE 754 (except on Linux/m68k) and don't have undefined values.
2024-02-07build: fix od build on clang < 17Pádraig Brady1-5/+5
* configure.ac: Ensure the compiler can promote 16 bit floating point types to float, before enabling that code in od. This was an issue with clang 16 at least. * src/od.c: Adjust for the new defines. * tests/od/od-float.sh: Likewise. Also port to the dash shell, whose inbuilt printf doesn't support hex escapes.
2024-02-05od: support half precision floating pointPádraig Brady1-0/+21
Rely on compiler support for _Float16 and __bf16 to support -fH and -fB formats respectively. I.e. IEEE 16 bit, and brain 16 bit floats respectively. Modern GCC and LLVM compilers support both types. clang-sect=half-precision-floating-point https://gcc.gnu.org/onlinedocs/gcc/Half-Precision.html https://clang.llvm.org/docs/LanguageExtensions.html#$clang-sect https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0192r4.html https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1467r9.html This was tested on: gcc 13, clang 17 x86 (Both types supported) gcc 7 aarch64 (Only -fH supported) gcc 13 ppc(be) (Neither supported. Both will be with GCC 14) * src/od.c: Support -tf2 or -tfH to print IEEE 16 bit floating point, or -tfB to print Brain 16 bit floating point. * configure.ac: Check for _Float16 and __bf16 types. * doc/coreutils.texi (od invocation): Mention the new -f types. * tests/od/od-float.sh: Add test cases. * NEWS: Mention the new feature. Addresses https://bugs.gnu.org/68871
2024-01-01maint: update all copyright year number rangesPádraig Brady7-7/+7
Update to latest gnulib with new copyright year. Run "make update-copyright" and then... * gnulib: Update included in this commit as copyright years are the only change from the previous gnulib commit. * tests/init.sh: Sync with gnulib to pick up copyright year. * bootstrap: Manually update copyright year, until we fully sync with gnulib at a later stage. * tests/sample-test: Adjust to use the single most recent year.
2023-06-19tests: move tests to a directory per utilitySylvestre Ledru7-0/+351
* cfg.mk: Adjust syntax check exclusion paths. * tests/local.mk: Adjust for renamed tests.
2007-09-15Move all tests from test/{od,sha1sum,shred,stty} to tests/misc/.Jim Meyering3-125/+0
Reflect these renamings: od/od-N misc/od-N od/x8 misc/od-x8 sha1sum/basic-1 misc/sha1sum sha1sum/sample-vec misc/sha1sum-vec shred/exact misc/shred-exact shred/remove misc/shred-remove stty/basic-1 misc/stty stty/invalid misc/stty-invalid stty/row-col-1 misc/stty-row-col * tests/misc/Makefile.am (TESTS): Add the new files. * tests/Makefile.am (SUBDIRS): Remove the dir names. * tests/od, tests/sha1sum, tests/shred, tests/stty: Remove the directories. * configure.ac (AC_CONFIG_FILES): Remove the corresponding Makefile names.
2007-08-25Remove all .cvsignore files from version control.Jim Meyering1-2/+0
2007-07-23Update all copyright notices to use the newer form.Jim Meyering2-10/+6
2007-07-10Change "version 2" to "version 3" in all copyright notices.Jim Meyering2-2/+2
2007-01-13Put CU_TEST_NAME in the environment for each test run by "make check".Jim Meyering1-0/+1
* Transform all Makefile.am files so that when running "make check", CU_TEST_NAME is set to the name of the test. This is so that when I run valgrind-enabled (--log-file-qualifier=CU_TEST_NAME) "make check" on the entire package it is more convenient to map a leak or error found in a valgrind log file back to the offending test. Use this command: (echo tests/Makefile.am.in; find tests -name Makefile.am) \ |xargs perl -pi -e '/^(\s*)PATH=...VG_PATH_PREFIX/ and ' \ -e 'print $1,q|CU_TEST_NAME=`basename $(abs_srcdir)`,$$tst |,"\\\n"'
2006-10-22* tests/sample-test: Quote variables containing absolute buildJim Meyering2-4/+4
tree paths. In the cleanup trap, make sure `cd' succeeds before `chmod'ing and `rm'ing the temporary files. * tests/chgrp/basic: Likewise. * tests/chgrp/deref: Likewise. * tests/chgrp/no-x: Likewise. * tests/chgrp/posix-H: Likewise. * tests/chgrp/recurse: Likewise. * tests/chmod/c-option: Likewise. * tests/chmod/equal-x: Likewise. * tests/chmod/equals: Likewise. * tests/chmod/inaccessible: Likewise. * tests/chmod/no-x: Likewise. * tests/chmod/octal: Likewise. * tests/chmod/setgid: Likewise. * tests/chmod/umask-x: Likewise. * tests/chmod/usage: Likewise. * tests/chown/basic: Likewise. * tests/chown/deref: Likewise. * tests/chown/separator: Likewise. * tests/cp/acl: Likewise. * tests/cp/backup-1: Likewise. * tests/cp/backup-dir: Likewise. * tests/cp/backup-is-src: Likewise. * tests/cp/cp-HL: Likewise. * tests/cp/cp-deref: Likewise. * tests/cp/cp-i: Likewise. * tests/cp/cp-mv-backup: Likewise. * tests/cp/cp-parents: Likewise. * tests/cp/deref-slink: Likewise. * tests/cp/dir-rm-dest: Likewise. * tests/cp/dir-slash: Likewise. * tests/cp/dir-vs-file: Likewise. * tests/cp/fail-perm: Likewise. * tests/cp/into-self: Likewise. * tests/cp/link: Likewise. * tests/cp/link-no-deref: Likewise. * tests/cp/link-preserve: Likewise. * tests/cp/no-deref-link1: Likewise. * tests/cp/no-deref-link2: Likewise. * tests/cp/no-deref-link3: Likewise. * tests/cp/perm: Likewise. * tests/cp/preserve-2: Likewise. * tests/cp/r-vs-symlink: Likewise. * tests/cp/same-file: Likewise. * tests/cp/slink-2-slink: Likewise. * tests/cp/sparse: Likewise. * tests/cp/special-bits: Likewise. * tests/cp/src-base-dot: Likewise. * tests/cp/symlink-slash: Likewise. * tests/dd/not-rewound: Likewise. * tests/dd/skip-seek2: Likewise. * tests/dd/unblock-sync: Likewise. * tests/du/2g: Likewise. * tests/du/8gb: Likewise. * tests/du/basic: Likewise. * tests/du/deref: Likewise. * tests/du/deref-args: Likewise. * tests/du/exclude: Likewise. * tests/du/fd-leak: Likewise. * tests/du/hard-link: Likewise. * tests/du/inaccessible-cwd: Likewise. * tests/du/long-from-unreadable: Likewise. * tests/du/long-sloop: Likewise. * tests/du/no-deref: Likewise. * tests/du/no-x: Likewise. * tests/du/restore-wd: Likewise. * tests/du/slash: Likewise. * tests/du/slink: Likewise. * tests/du/trailing-slash: Likewise. * tests/du/two-args: Likewise. * tests/fmt/long-line: Likewise. * tests/install/basic-1: Likewise. * tests/install/create-leading: Likewise. * tests/install/d-slashdot: Likewise. * tests/install/trap: Likewise. * tests/ln/misc: Likewise. * tests/ln/target-1: Likewise. * tests/ls/color-dtype-dir: Likewise. * tests/ls/dangle: Likewise. * tests/ls/dired: Likewise. * tests/ls/file-type: Likewise. * tests/ls/follow-slink: Likewise. * tests/ls/infloop: Likewise. * tests/ls/inode: Likewise. * tests/ls/m-option: Likewise. * tests/ls/no-arg: Likewise. * tests/ls/recursive: Likewise. * tests/ls/rt-1: Likewise. * tests/ls/stat-dtype: Likewise. * tests/ls/stat-failed: Likewise. * tests/ls/stat-vs-dirent: Likewise. * tests/misc/cat-proc: Likewise. * tests/misc/close-stdout: Likewise. * tests/misc/csplit: Likewise. * tests/misc/date-sec: Likewise. * tests/misc/false-status: Likewise. * tests/misc/head-c: Likewise. * tests/misc/head-pos: Likewise. * tests/misc/mknod: Likewise. * tests/misc/nl: Likewise. * tests/misc/nohup: Likewise. * tests/misc/pathchk1: Likewise. * tests/misc/printf: Likewise. * tests/misc/printf-hex: Likewise. * tests/misc/pwd-long: Likewise. * tests/misc/shuf: Likewise. * tests/misc/sort-rand: Likewise. * tests/misc/split-a: Likewise. * tests/misc/split-fail: Likewise. * tests/misc/split-l: Likewise. * tests/misc/stat-fmt: Likewise. * tests/misc/tac-continue: Likewise. * tests/misc/wc-files0: Likewise. * tests/mkdir/concurrent-1: Likewise. * tests/mkdir/p-1: Likewise. * tests/mkdir/p-2: Likewise. * tests/mkdir/p-3: Likewise. * tests/mkdir/p-slashdot: Likewise. * tests/mkdir/p-thru-slink: Likewise. * tests/mkdir/p-v: Likewise. * tests/mkdir/parents: Likewise. * tests/mkdir/perm: Likewise. * tests/mkdir/t-slash: Likewise. * tests/mv/acl: Likewise. * tests/mv/atomic: Likewise. * tests/mv/backup-dir: Likewise. * tests/mv/childproof: Likewise. * tests/mv/diag: Likewise. * tests/mv/dir-file: Likewise. * tests/mv/dir2dir: Likewise. * tests/mv/dup-source: Likewise. * tests/mv/hard-2: Likewise. * tests/mv/hard-3: Likewise. * tests/mv/hard-4: Likewise. * tests/mv/hard-link-1: Likewise. * tests/mv/hard-verbose: Likewise. * tests/mv/i-2: Likewise. * tests/mv/i-3: Likewise. * tests/mv/i-4: Likewise. * tests/mv/i-5: Likewise. * tests/mv/i-link-no: Likewise. * tests/mv/into-self-4: Likewise. * tests/mv/leak-fd: Likewise. * tests/mv/mv-special-1: Likewise. * tests/mv/no-target-dir: Likewise. * tests/mv/part-fail: Likewise. * tests/mv/part-hardlink: Likewise. * tests/mv/part-rename: Likewise. * tests/mv/part-symlink: Likewise. * tests/mv/partition-perm: Likewise. * tests/mv/perm-1: Likewise. * tests/mv/reply-no: Likewise. * tests/mv/trailing-slash: Likewise. * tests/mv/update: Likewise. * tests/od/od-N: Likewise. * tests/od/x8: Likewise. * tests/readlink/can-e: Likewise. * tests/readlink/can-f: Likewise. * tests/readlink/can-m: Likewise. * tests/readlink/rl-1: Likewise. * tests/rm/cycle: Likewise. * tests/rm/dangling-symlink: Likewise. * tests/rm/deep-1: Likewise. * tests/rm/dir-no-w: Likewise. * tests/rm/dir-nonrecur: Likewise. * tests/rm/dot-rel: Likewise. * tests/rm/empty-inacc: Likewise. * tests/rm/f-1: Likewise. * tests/rm/fail-2eperm: Likewise. * tests/rm/hash: Likewise. * tests/rm/i-1: Likewise. * tests/rm/i-no-r: Likewise. * tests/rm/ignorable: Likewise. * tests/rm/inaccessible: Likewise. * tests/rm/interactive-always: Likewise. * tests/rm/interactive-once: Likewise. * tests/rm/ir-1: Likewise. * tests/rm/isatty: Likewise. * tests/rm/no-give-up: Likewise. * tests/rm/r-1: Likewise. * tests/rm/r-2: Likewise. * tests/rm/r-3: Likewise. * tests/rm/r-4: Likewise. * tests/rm/readdir-bug: Likewise. * tests/rm/rm1: Likewise. * tests/rm/rm2: Likewise. * tests/rm/rm3: Likewise. * tests/rm/rm4: Likewise. * tests/rm/rm5: Likewise. * tests/rm/sunos-1: Likewise. * tests/rm/unread2: Likewise. * tests/rm/unread3: Likewise. * tests/rmdir/fail-perm: Likewise. * tests/rmdir/t-slash: Likewise. * tests/shred/exact: Likewise. * tests/shred/remove: Likewise. * tests/sum/sysv: Likewise. * tests/tail-2/append-only: Likewise. * tests/tail-2/assert: Likewise. * tests/tail-2/assert-2: Likewise. * tests/tail-2/big-4gb: Likewise. * tests/tail-2/fflush: Likewise. * tests/tail-2/infloop-1: Likewise. * tests/tail-2/proc-ksyms: Likewise. * tests/tail-2/start-middle: Likewise. * tests/tail-2/tail-n0f: Likewise. * tests/tee/basic: Likewise. * tests/tee/dash: Likewise. * tests/touch/fail-diag: Likewise. * tests/touch/no-create-missing: Likewise. * tests/touch/not-owner: Likewise. * tests/touch/obsolescent: Likewise. * tests/touch/read-only: Likewise. * tests/touch/relative: Likewise.
2006-08-22* aclocal.m4, config.hin, configure:Paul Eggert1-0/+1
Remove from CVS, since ./bootstrap generates them automatically. * .cvsignore: Add INSTALL, Makefile.in, *.cache, *.lineno, *.log. Remove more-specific entries. This catches files like configure.lineno. * man/.cvsignore: Add Makefile.in. * src/.cvsignore: Add Makefile.in. Remove .version, dir.c, install, mvdir, stamp-v, vdir.c, version.c. For .cvsignore file under the tests directory: Add Makefile.in. Sort entries if necessary. Remove *.I, *.E, *.X, *.O, *-tests, build-script, mk-script if they're never created in this directory. * build-aux/.cvsignore: New file. * doc/.cvsignore: Add Makefile.in, coreutils.html, coreutils.pdf, coreutils.ps, coreutils.tps. Remove coreutils.cm (dunno what it is, but the makefile doesn't mention it). Remove coreutils.info as it is subsumed by coreutils.info*. * lib/.cvsignore: Add Makefile.in, getdate.tab.h. Remove stat.c, sysexit.h. * m4/.cvsignore: Remove Makefile, dev-ino.m4, glibc2.m4, intdiv0.m4, inttypes-h.m4, inttypes-pri.m4, jm-glibc-io.m4, lcmessage.m4, lock.m4, printf-posix.m4, same-inode.m4, size_max.m4, uintmax_t.m4, ulonglong.m4, visibility.m4, xsize.m4. Many of these are put in automatically by ../bootstrap, but that's a bootstrap bug that I plan to fix shortly. * po/.cvsignore: More ../bootstrap-related fixes, plus remove old cruft. Add *.po, LINGUAS, Makevars. Remove *.cat, *.msg, cat-id-dbl.c, messages.mo, stamp-cat-id.
2006-08-21Remove from CVS, since the bootstrap script generates them automatically.Paul Eggert1-572/+0
2006-08-19.Jim Meyering1-1/+1
2006-08-17Add/fix copyright notices and adjust to latest GNU FDL.Paul Eggert2-0/+34
2006-08-15.Jim Meyering1-39/+46
2006-08-09Regenerate.Paul Eggert1-13/+15
2006-08-09Regenerate.Paul Eggert1-34/+36
2006-07-17Regenerate.Paul Eggert1-36/+35
2006-07-09Regenerate.Paul Eggert1-40/+62
2006-07-03* tests/Makefile.am, tests/*/Makefile.am: (TESTS_ENVIRONMENT):Jim Meyering1-1/+1
Add $VG_PATH_PREFIX as a prefix to $PATH
2006-05-06.Jim Meyering1-2/+0
2006-03-26.Jim Meyering1-3/+4
2006-03-12.Jim Meyering1-6/+6
2006-02-20.Jim Meyering1-5/+7
2006-01-12.Jim Meyering1-5/+8
2006-01-04.Jim Meyering1-14/+14
2005-12-21.Jim Meyering1-1/+2
2005-12-17.Jim Meyering1-0/+1
2005-12-15.Jim Meyering1-3/+5
2005-12-03.Jim Meyering1-1/+0
2005-11-22.Jim Meyering1-0/+1
2005-10-23.Jim Meyering1-1/+2
2005-09-23.Jim Meyering1-5/+6
2005-09-22.Jim Meyering1-0/+8
2005-09-22Regenerate.Paul Eggert1-13/+16
2005-09-16Regenerate.Paul Eggert1-14/+7
2005-09-10.Jim Meyering1-0/+8
2005-09-09Regenerate.Paul Eggert1-8/+0
2005-09-04.Jim Meyering1-0/+8
2005-08-02.Jim Meyering1-23/+21
2005-07-12.Jim Meyering1-1/+1