~ubuntu-branches/ubuntu/lucid/coreutils/lucid-updates

« back to all changes in this revision

Viewing changes to gnulib-tests/test-vc-list-files-cvs.sh

  • Committer: Bazaar Package Importer
  • Author(s): Michael Stone
  • Date: 2009-04-07 19:21:42 UTC
  • mfrom: (1.2.1 upstream) (5.1.4 sid)
  • Revision ID: james.westby@ubuntu.com-20090407192142-eez7bafqc4oqxox5
* new upstream version (Closes: #517558)
* [78] fix kfreebsd build problem (Closes: #520368)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/sh
 
2
# Unit tests for vc-list-files
 
3
# Copyright (C) 2008 Free Software Foundation, Inc.
 
4
# This file is part of the GNUlib Library.
 
5
#
 
6
# This program is free software: you can redistribute it and/or modify
 
7
# it under the terms of the GNU General Public License as published by
 
8
# the Free Software Foundation; either version 3 of the License, or
 
9
# (at your option) any later version.
 
10
#
 
11
# This program is distributed in the hope that it will be useful,
 
12
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
14
# GNU General Public License for more details.
 
15
#
 
16
# You should have received a copy of the GNU General Public License
 
17
# along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
18
 
 
19
tmpdir=vc-cvs-$$
 
20
trap 'st=$?; cd '"`pwd`"' && rm -rf $tmpdir; exit $st' 0
 
21
trap '(exit $?); exit $?' 1 2 13 15
 
22
 
 
23
if ( diff --version < /dev/null 2>&1 | grep GNU ) 2>&1 > /dev/null; then
 
24
  compare() { diff -u "$@"; }
 
25
elif ( cmp --version < /dev/null 2>&1 | grep GNU ) 2>&1 > /dev/null; then
 
26
  compare() { cmp -s "$@"; }
 
27
else
 
28
  compare() { cmp "$@"; }
 
29
fi
 
30
 
 
31
repo=`pwd`/$tmpdir/repo
 
32
 
 
33
fail=0
 
34
for i in with-cvsu without; do
 
35
  # On the first iteration, test using cvsu, if it's in your path.
 
36
  # On the second iteration, ensure that cvsu fails, so we'll
 
37
  # exercise the awk-using code.
 
38
  if test $i = without; then
 
39
    printf '%s\n' '#!/bin/sh' 'exit 1' > cvsu
 
40
    chmod a+x cvsu
 
41
    PATH=`pwd`:$PATH
 
42
    export PATH
 
43
  fi
 
44
  ok=0
 
45
  mkdir $tmpdir && cd $tmpdir &&
 
46
    # without cvs, skip the test
 
47
    # The double use of 'exit' is needed for the reference to $? inside the trap.
 
48
    { ( cvs -Q -d "$repo" init ) > /dev/null 2>&1 \
 
49
      || { echo "Skipping test: cvs not found in PATH"; (exit 77); exit 77; }; } &&
 
50
    mkdir w && cd w &&
 
51
    mkdir d &&
 
52
    touch d/a b c &&
 
53
    cvs -Q -d "$repo" import -m imp m M M0 &&
 
54
    cvs -Q -d "$repo" co m && cd m &&
 
55
    printf '%s\n' b c d/a > expected &&
 
56
    vc-list-files | sort > actual &&
 
57
    compare expected actual &&
 
58
    ok=1
 
59
  test $ok = 0 && fail=1
 
60
done
 
61
 
 
62
(exit $fail); exit $fail