diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 13:14:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 13:14:44 +0000 |
commit | 30ff6afe596eddafacf22b1a5b2d1a3d6254ea15 (patch) | |
tree | 9b788335f92174baf7ee18f03ca8330b8c19ce2b /tests/ts/hardlink/options | |
parent | Initial commit. (diff) | |
download | util-linux-30ff6afe596eddafacf22b1a5b2d1a3d6254ea15.tar.xz util-linux-30ff6afe596eddafacf22b1a5b2d1a3d6254ea15.zip |
Adding upstream version 2.36.1.upstream/2.36.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ts/hardlink/options')
-rwxr-xr-x | tests/ts/hardlink/options | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/tests/ts/hardlink/options b/tests/ts/hardlink/options new file mode 100755 index 0000000..bb445ca --- /dev/null +++ b/tests/ts/hardlink/options @@ -0,0 +1,80 @@ +#!/bin/bash +# +# Copyright (C) 2018 Ruediger Meier <ruediger.meier@ga-group.nl> +# +# This file is part of util-linux. +# +# This file 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 file 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. +# + +TS_TOPDIR="${0%/*}/../.." +TS_DESC="options" + +. $TS_TOPDIR/functions.sh + +ts_init "$*" + +ts_check_test_command "$TS_CMD_HARDLINK" +ts_check_prog xz +ts_check_prog tar + +SRCDIR="$TS_OUTDIR/testdir1" + +create_srcdir() +{ + rm -rf "$SRCDIR" + tar -C "$TS_OUTDIR" -xJf "$TS_SELF/testdir1.tar.xz" +} + +show_srcdir() +{ + find "$SRCDIR" -type f -printf "%P\t%n\t%s\t%Ts\t%m\n" | sort +} + +create_srcdir + +ts_init_subtest "orig" # just list original dir +show_srcdir >> $TS_OUTPUT 2>> $TS_ERRLOG +ts_finalize_subtest + +ts_init_subtest "dryrun" +$TS_CMD_HARDLINK -n -v "$SRCDIR" >> $TS_OUTPUT 2>> $TS_ERRLOG +show_srcdir >> $TS_OUTPUT 2>> $TS_ERRLOG +ts_finalize_subtest + +ts_init_subtest "nargs" +$TS_CMD_HARDLINK -v "$SRCDIR"/dir-1/sdir-1 "$SRCDIR"/file-?-{1,2} >> $TS_OUTPUT 2>> $TS_ERRLOG +show_srcdir >> $TS_OUTPUT 2>> $TS_ERRLOG +ts_finalize_subtest + +# cases without and with -x support +tmp=$($TS_CMD_HARDLINK -x pattern "$SRCDIR"/dir-1/sdir-2 2>&1) +if test $? -ne 0; then + ts_init_subtest "noregex" + printf "%s\n" "$tmp" >> $TS_OUTPUT 2>> $TS_ERRLOG + ts_finalize_subtest +else + ts_init_subtest "regex-escapes" + $TS_CMD_HARDLINK -x '.*z-"ยง\$%&\(\)=\?\*\+$' "$SRCDIR" >> $TS_OUTPUT 2>> $TS_ERRLOG + show_srcdir >> $TS_OUTPUT 2>> $TS_ERRLOG + ts_finalize_subtest +fi + +ts_init_subtest "content" +$TS_CMD_HARDLINK -c "$SRCDIR" >> $TS_OUTPUT 2>> $TS_ERRLOG +# When using -c we need to cheat with sed because it's not deterministic which +# file (i.e. which timestamp and perms) wins. TODO at least the choice of the +# permissions should be sensitive by default and/or controllable by the user. +show_srcdir | sed 's/\(1540236\).*/\1xxx\tperm/' >> $TS_OUTPUT 2>> $TS_ERRLOG +ts_finalize_subtest + +rm -rf "$SRCDIR" +ts_finalize |