From 77ca3050c6b57010c8650bdd3473b802ccf9cf42 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 10 Jun 2022 15:12:17 -0700 Subject: [PATCH 1/3] test: new test extrac25.at * tests/Makefile.am (TESTSUITE_AT): Add extrac25.at. * tests/extrac25.at: New file. * tests/testsuite.at: Include it. --- tests/Makefile.am | 1 + tests/extrac25.at | 46 ++++++++++++++++++++++++++++++++++++++++++++++ tests/testsuite.at | 1 + 3 files changed, 48 insertions(+) create mode 100644 tests/extrac25.at diff --git a/tests/Makefile.am b/tests/Makefile.am index 2b98af62..eff8a3bf 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -123,6 +123,7 @@ TESTSUITE_AT = \ extrac22.at\ extrac23.at\ extrac24.at\ + extrac25.at\ filerem01.at\ filerem02.at\ dirrem01.at\ diff --git a/tests/extrac25.at b/tests/extrac25.at new file mode 100644 index 00000000..67e7cabe --- /dev/null +++ b/tests/extrac25.at @@ -0,0 +1,46 @@ +# Test suite for GNU tar. -*- autotest -*- +# Copyright 2022 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 . +AT_SETUP([extract over parent dir that is dangling symlink]) +AT_KEYWORDS([extract extrac25 to-stdout]) + +# Description: When extracting over pipe, only regular files should be +# extracted. In tar 1.33 this was broken, so that members of other types +# (in particular, directories) were extracted as usual. This test ensures +# that this is no longer the case. +# +# References: https://bugs.archlinux.org/task/69373, +# https://savannah.gnu.org/bugs/?60002 + +AT_TAR_CHECK([ +mkdir subdir +touch subdir/a.txt +tar -cf test.tar subdir/a.txt + +rm -rf subdir +ln -s does_not_exist subdir +tar -xvf test.tar +], +[2], +[subdir/a.txt +], +[tar: subdir: Cannot mkdir: File exists +tar: subdir/a.txt: Cannot open: No such file or directory +tar: Exiting with failure status due to previous errors +]) + +AT_CLEANUP diff --git a/tests/testsuite.at b/tests/testsuite.at index f373159e..0769e71b 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -345,6 +345,7 @@ m4_include([extrac21.at]) m4_include([extrac22.at]) m4_include([extrac23.at]) m4_include([extrac24.at]) +m4_include([extrac25.at]) m4_include([backup01.at]) -- 2.34.1