Mercurial > hg > octave-shane > gnulib-hg
changeset 16182:9dbd02efb30b
test-framework-sh: add minimal tests of init.sh's compare function
* modules/test-framework-sh-tests: New file.
* tests/test-init.sh: New file.
author | Jim Meyering <meyering@redhat.com> |
---|---|
date | Fri, 23 Dec 2011 10:54:46 +0100 |
parents | 50998a8507ac |
children | 928411ca75b9 |
files | ChangeLog modules/test-framework-sh-tests tests/test-init.sh |
diffstat | 3 files changed, 81 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2011-12-22 Jim Meyering <meyering@redhat.com> + test-framework-sh: add minimal tests of init.sh's compare function + * modules/test-framework-sh-tests: New file. + * tests/test-init.sh: New file. + test-framework-sh: new module * modules/test-framework-sh: New file. * MODULES.html.sh (Support for maintaining and releasing projects):
new file mode 100644 --- /dev/null +++ b/modules/test-framework-sh-tests @@ -0,0 +1,9 @@ +Files: +tests/test-init.sh + +Depends-on: + +configure.ac: + +Makefile.am: +TESTS += test-init.sh
new file mode 100755 --- /dev/null +++ b/tests/test-init.sh @@ -0,0 +1,68 @@ +#!/bin/sh +# Unit tests for init.sh +# Copyright (C) 2011 Free Software Foundation, Inc. +# This file is part of the GNUlib Library. +# +# 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=.} +. "$srcdir/init.sh"; path_prepend_ . + +fail=0 + +test_compare() +{ + touch empty || fail=1 + echo xyz > in || fail=1 + + compare /dev/null /dev/null >out 2>err || fail=1 + test -s out && fail_ "out not empty: $(cat out)" + # "err" should be empty, too, but has "set -x" output when VERBOSE=yes + case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac + + compare /dev/null empty >out 2>err || fail=1 + test -s out && fail_ "out not empty: $(cat out)" + case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac + + compare in in >out 2>err || fail=1 + test -s out && fail_ "out not empty: $(cat out)" + case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac + + compare /dev/null in >out 2>err && fail=1 + cat <<\EOF > exp +diff -u /dev/null in +--- /dev/null 1970-01-01 ++++ in 1970-01-01 ++xyz +EOF + compare exp out || fail=1 + case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac + + compare empty in >out 2>err && fail=1 + # Remove the TAB-date suffix on each --- and +++ line, + # for both the expected and the actual output files. + cat <<\EOF > exp +--- empty ++++ in +@@ -0,0 +1 @@ ++xyz +EOF + sed 's/ .*//' out > k && mv k out + compare exp out || fail=1 + case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac +} + +test_compare + +Exit $fail