summaryrefslogtreecommitdiffstats
path: root/tests/ts
diff options
context:
space:
mode:
authorKarel Zak2019-02-06 13:55:20 +0100
committerKarel Zak2019-02-06 13:55:20 +0100
commit117f4d8bf4fc3a21d9009222cbfad56f79b73c94 (patch)
tree2f4b086f9da6476a52b5623c79b39ec487f7d8df /tests/ts
parentmount: Do not call mnt_pretty_path() on net file systems. (diff)
parenthardlink: add first simple tests (diff)
downloadkernel-qcow2-util-linux-117f4d8bf4fc3a21d9009222cbfad56f79b73c94.tar.gz
kernel-qcow2-util-linux-117f4d8bf4fc3a21d9009222cbfad56f79b73c94.tar.xz
kernel-qcow2-util-linux-117f4d8bf4fc3a21d9009222cbfad56f79b73c94.zip
Merge branch 'hardlink' of https://github.com/rudimeier/util-linux into hardlink
* 'hardlink' of https://github.com/rudimeier/util-linux: (25 commits) hardlink: add first simple tests hardlink: util-linux usage hardlink: fix compiler warnings hardlink: style indentations and license header hardlink: enable build with and without pcre2 fixes for the fixes temporal fix before re-patch (updates from Fedora repo) Update hardlink.1 Fixed version number, added changelog about Todd Lewis' patch exclude files via pcre Fixed 32 bit build with gcc7 (RH Bugzilla ID 1422989) spec file reflects the atomic hardlinking patch; removed cleaning buildroot (redundant); update FSF address at .c source file Revert "spec file reflects the atomic hardlinking patch; removed cleaning buildroot (redundant); current FSF address at .c source file" spec file reflects the atomic hardlinking patch; removed cleaning buildroot (redundant); current FSF address at .c source file Mention -f option in the man page do not allow to hardlink files across filesystems by default (#786719) (use -f option to override) fix possible buffer overflows, integer overflows, update man page fix URL and remove mmap() (#676962, #672917) - update docs to describe highest verbosity -vv option (#210816) - use dist Resolves: 210816 mostly spec cleanup ...
Diffstat (limited to 'tests/ts')
-rwxr-xr-xtests/ts/hardlink/options78
-rw-r--r--tests/ts/hardlink/testdir1.tar.xzbin0 -> 26468 bytes
2 files changed, 78 insertions, 0 deletions
diff --git a/tests/ts/hardlink/options b/tests/ts/hardlink/options
new file mode 100755
index 000000000..848ea1654
--- /dev/null
+++ b/tests/ts/hardlink/options
@@ -0,0 +1,78 @@
+#!/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"
+
+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>&1
+ts_finalize_subtest
+
+ts_init_subtest "dryrun"
+$TS_CMD_HARDLINK -n -v "$SRCDIR" >>$TS_OUTPUT 2>&1
+show_srcdir >>$TS_OUTPUT 2>&1
+ts_finalize_subtest
+
+ts_init_subtest "nargs"
+$TS_CMD_HARDLINK -v "$SRCDIR"/dir-1/sdir-1 "$SRCDIR"/file-?-{1,2} >>$TS_OUTPUT 2>&1
+show_srcdir >>$TS_OUTPUT 2>&1
+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>&1
+ ts_finalize_subtest
+else
+ ts_init_subtest "regex-escapes"
+ $TS_CMD_HARDLINK -x '.*z-"ยง\$%&\(\)=\?\*\+$' "$SRCDIR" >>$TS_OUTPUT 2>&1
+ show_srcdir >>$TS_OUTPUT 2>&1
+ ts_finalize_subtest
+fi
+
+ts_init_subtest "content"
+$TS_CMD_HARDLINK -c "$SRCDIR" >>$TS_OUTPUT 2>&1
+# 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>&1
+ts_finalize_subtest
+
+rm -rf "$SRCDIR"
+ts_finalize
diff --git a/tests/ts/hardlink/testdir1.tar.xz b/tests/ts/hardlink/testdir1.tar.xz
new file mode 100644
index 000000000..b9bc245d1
--- /dev/null
+++ b/tests/ts/hardlink/testdir1.tar.xz
Binary files differ