From a3fee8b6afdbb70317d2124d5a3bb0d2887ab31b Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sun, 11 Dec 2011 11:59:31 +0100 Subject: ls: give a more useful diagnostic for a bogus --time-style arg * src/ls.c (decode_switches): Replace our use of XARGMATCH with open-coded version so that we can give a better diagnostic. * tests/ls/time-style-diag: New file. * tests/Makefile.am (TESTS): Add it. Reported by Dan Jacobson in http://bugs.gnu.org/10253 with suggestions from Eric Blake and Paul Eggert. --- tests/Makefile.am | 1 + tests/ls/time-style-diag | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100755 tests/ls/time-style-diag (limited to 'tests') diff --git a/tests/Makefile.am b/tests/Makefile.am index 48c33cb99..23cb70fa4 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -441,6 +441,7 @@ TESTS = \ ls/stat-free-symlinks \ ls/stat-vs-dirent \ ls/symlink-slash \ + ls/time-style-diag \ ls/x-option \ mkdir/p-1 \ mkdir/p-2 \ diff --git a/tests/ls/time-style-diag b/tests/ls/time-style-diag new file mode 100755 index 000000000..d756cfe14 --- /dev/null +++ b/tests/ls/time-style-diag @@ -0,0 +1,39 @@ +#!/bin/sh +# Ensure that an invalid --time-style=ARG is diagnosed the way we want. + +# Copyright (C) 2011 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 . + +. "${srcdir=.}/init.sh"; path_prepend_ ../src +print_ver_ ls + +ls -l --time-style=XX > out 2> err +test $? = 2 || fail=1 + +cat <<\EOF > exp || fail=1 +ls: invalid argument `XX' for `time style' +Valid arguments are: + - [posix-]full-iso + - [posix-]long-iso + - [posix-]iso + - [posix-]locale + - +FORMAT (e.g., +%H:%M) for a `date'-style format +Try `ls --help' for more information. +EOF + +compare exp err || fail=1 +compare /dev/null out || fail=1 + +Exit $fail -- cgit v1.2.3-70-g09d2