# Process this file with autom4te to create testsuite. -*- Autotest -*-
# Test suite for GNU tar.
-# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2005, 2006, 2007, 2009 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 2, or (at your option)
+# the Free Software Foundation; either version 3, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# 02110-1301, USA.
# Check if listed-incremental backups work for files moved from one directory
-# to another.
+# to another.
# Based on a script by Martin Simmons <ZYHYLCRMZPRP@spammotel.com>
-# References:
+# References:
# <20040626230315.163AA1D148@cpc5-cmbg1-6-0-cust208.cmbg.cable.ntl.com>
# http://lists.gnu.org/archive/html/bug-tar/2004-06/msg00028.html
AT_SETUP([working --listed])
-AT_KEYWORDS([listed02])
+AT_KEYWORDS([listed incremental listed02])
AT_TAR_CHECK([
-
+AT_SORT_PREREQ
echo Create directories
+
mkdir tart
sleep 1
mkdir tart/c0
sleep 1
echo Creating main archive
-tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart || exit 1
+echo >&2 "Creating main archive"
+tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1
+
+# The above prints two lines to stderr announcing the new directories c0 and c1.
+# Ensure that they appear in this script's stderr in sorted order.
+sort err 1>&2; rm -f err
sleep 1
echo Modifying filesystem
sleep 1
echo Creating incremental archive
+echo >&2 "Creating incremental archive"
cp -p tart.incr1 tart.incr2
-tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1
+tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1
sleep 1
rm -rf tart/*
echo Extracting main archive
+echo >&2 "Extracting main archive"
tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1
echo Extracting incremental archive
# This command should produce three messages about deletion
# of the existing files, that may appear in any order. Piping
# to sort makes sure we don't depend on any particular ordering.
-tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null
+tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null
echo Final files:
find tart -print | sort 2>/dev/null
tart/c0/
tart/c2/
tart/b2
-tart/c2/ca1
-tart/c2/ca2
tart/c2/ca3
Extracting main archive
tart/
Extracting incremental archive
tar: Deleting `tart/a1'
tar: Deleting `tart/b1'
-tar: Deleting `tart/c1'
tart/
tart/b2
tart/c0/
tart/c2/
-tart/c2/ca1
-tart/c2/ca2
tart/c2/ca3
Final files:
tart
tart/c2/ca2
tart/c2/ca3
],
-[tar: tart/c0: Directory is new
+[Creating main archive
+tar: tart/c0: Directory is new
tar: tart/c1: Directory is new
-tar: tart/c2: Directory is new
+tar: tart: Directory is new
+Creating incremental archive
+tar: tart/c2: Directory has been renamed from `tart/c1'
+Extracting main archive
],
[],[],[gnu, oldgnu])