# Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. # Copyright 2017-2023 Free Software Foundation, Inc. # This file is part of GNU tar. # GNU tar 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. # GNU tar 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 . # Description: # # When a directory in a deep directory disappeared during creation # of incremental dump, tar <= 1.29 exits with TAREXIT_FAILURE (2). # # In case of files tar does not return TAREXIT_FAILURE, but instead # it prints a warning and exits with TAREXIT_DIFFERS. # # This test checks whether this behaviour is mimicked for directories, too. # # Notes: # 1. This file is based on 'filerem01.at', which is the test-case for # a vanishing file. # 2. Depending on the stat.st_ctime resolution, the "file changed as we # read it" warning might be issued for dir/sub. The test takes care to # suppress it. AT_SETUP([directory removed before reading]) AT_KEYWORDS([create incremental listed dirchange dirrem dirrem01]) AT_TAR_CHECK([ mkdir dir mkdir dir/sub genfile --file dir/file1 genfile --file dir/sub/file2 case "$TEST_TAR_FORMAT" in posix) CPT=5;; gnu) CPT=3;; *) AT_SKIP_TEST esac genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub -- \ tar --blocking-factor=1 -c -f archive.tar \ --listed-incremental db \ --warning=no-file-changed \ -v dir >/dev/null ], [1], [ignore], [tar: dir: Directory is new tar: dir/sub: Directory is new tar: dir/sub: File removed before we read it ],[],[],[gnu,posix]) AT_CLEANUP