Fix checksums-out command (RHBZ#895904).

This was broken by the earlier
commit 0306c98d31.

This commit also adds a regression test.
This commit is contained in:
Richard W.M. Jones
2013-01-21 11:14:14 +00:00
parent e18e20793f
commit ebc86ae6d7
3 changed files with 45 additions and 2 deletions

View File

@@ -161,8 +161,7 @@ do_checksums_out (const char *csumtype, const char *dir)
char *cmd;
if (asprintf_nowarn (&cmd, "cd %Q && %s -type f -print0 | %s -0 %s",
str_find, str_xargs,
sysrootdir, program) == -1) {
sysrootdir, str_find, str_xargs, program) == -1) {
reply_with_perror ("asprintf");
free (sysrootdir);
return -1;

View File

@@ -29,6 +29,7 @@ TESTS = \
rhbz789960.sh \
rhbz790721 \
rhbz811649.sh \
rhbz895904.sh \
test-noexec-stack.pl
tests_not_run = \

43
tests/regressions/rhbz895904.sh Executable file
View File

@@ -0,0 +1,43 @@
#!/bin/bash -
# libguestfs
# Copyright (C) 2013 Red Hat 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 2 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, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
# Regression test for:
# https://bugzilla.redhat.com/show_bug.cgi?id=895904
# Ensure we have a test of the 'checksums-out' command.
set -e
export LANG=C
output=$(
../../fish/guestfish -N fs -m /dev/sda1 <<EOF | sort -k 3
mkdir /test
touch /test/file1
mkdir /test/subdir
write /test/subdir/file2 abc
checksums-out crc /test -
EOF
)
if [ "$output" != "4294967295 0 ./file1
1219131554 3 ./subdir/file2" ]; then
echo "$0: unexpected output from checksums-out command:"
echo "$output"
exit 1
fi
rm test1.img