summaryrefslogtreecommitdiffstats
path: root/tests
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
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')
-rw-r--r--tests/commands.sh1
-rw-r--r--tests/expected/hardlink/options-content26
-rw-r--r--tests/expected/hardlink/options-dryrun34
-rw-r--r--tests/expected/hardlink/options-nargs34
-rw-r--r--tests/expected/hardlink/options-noregex1
-rw-r--r--tests/expected/hardlink/options-orig26
-rw-r--r--tests/expected/hardlink/options-regex-escapes26
-rwxr-xr-xtests/ts/hardlink/options78
-rw-r--r--tests/ts/hardlink/testdir1.tar.xzbin0 -> 26468 bytes
9 files changed, 226 insertions, 0 deletions
diff --git a/tests/commands.sh b/tests/commands.sh
index 1be2d25b4..6f3139351 100644
--- a/tests/commands.sh
+++ b/tests/commands.sh
@@ -61,6 +61,7 @@ TS_CMD_FINDMNT=${TS_CMD_FINDMNT-"$top_builddir/findmnt"}
TS_CMD_FSCKCRAMFS=${TS_CMD_FSCKCRAMFS:-"$top_builddir/fsck.cramfs"}
TS_CMD_FSCKMINIX=${TS_CMD_FSCKMINIX:-"$top_builddir/fsck.minix"}
TS_CMD_GETOPT=${TS_CMD_GETOPT-"$top_builddir/getopt"}
+TS_CMD_HARDLINK=${TS_CMD_HARDLINK-"$top_builddir/hardlink"}
TS_CMD_HEXDUMP=${TS_CMD_HEXDUMP-"$top_builddir/hexdump"}
TS_CMD_HWCLOCK=${TS_CMD_HWCLOCK-"$top_builddir/hwclock"}
TS_CMD_IONICE=${TS_CMD_IONICE-"$top_builddir/ionice"}
diff --git a/tests/expected/hardlink/options-content b/tests/expected/hardlink/options-content
new file mode 100644
index 000000000..a1bfede44
--- /dev/null
+++ b/tests/expected/hardlink/options-content
@@ -0,0 +1,26 @@
+dir-1/sdir-1/file-a-1 10 8192 1540236xxx perm
+dir-1/sdir-1/file-a-2 10 8192 1540236xxx perm
+dir-1/sdir-1/file-a-3 10 8192 1540236xxx perm
+dir-1/sdir-1/file-b-1 10 8192 1540236xxx perm
+dir-1/sdir-1/file-b-2 10 8192 1540236xxx perm
+dir-1/sdir-1/file-b-3 10 8192 1540236xxx perm
+dir-1/sdir-1/file-c-1 6 8192 1540236xxx perm
+dir-1/sdir-1/file-c-2 6 8192 1540236xxx perm
+dir-1/sdir-1/file-c-3 6 8192 1540236xxx perm
+dir-1/sdir-2/file-a-1-abcdefghijklmnopqrstxyz-"§$%&()=?*+ 10 8192 1540236xxx perm
+dir-2/sdir-2/file-a-5 10 8192 1540236xxx perm
+dir-2/sdir-2/file-b-5 10 8192 1540236xxx perm
+dir-2/sdir-3/file-b-4 10 8192 1540236xxx perm
+file-a-1 10 8192 1540236xxx perm
+file-a-2 10 8192 1540236xxx perm
+file-a-3 10 8192 1540236xxx perm
+file-a-4 10 8192 1540236xxx perm
+file-a-5 10 8192 1540236xxx perm
+file-b-1 10 8192 1540236xxx perm
+file-b-2 10 8192 1540236xxx perm
+file-b-3 10 8192 1540236xxx perm
+file-b-4 10 8192 1540236xxx perm
+file-b-5 10 8192 1540236xxx perm
+file-c-1 6 8192 1540236xxx perm
+file-c-2 6 8192 1540236xxx perm
+file-c-3 6 8192 1540236xxx perm
diff --git a/tests/expected/hardlink/options-dryrun b/tests/expected/hardlink/options-dryrun
new file mode 100644
index 000000000..4e9d65d75
--- /dev/null
+++ b/tests/expected/hardlink/options-dryrun
@@ -0,0 +1,34 @@
+
+
+Directories 7
+Objects 33
+IFREG 26
+Comparisons 18
+Would link 18
+Would save 147456
+dir-1/sdir-1/file-a-1 1 8192 1540236330 644
+dir-1/sdir-1/file-a-2 1 8192 1540236330 644
+dir-1/sdir-1/file-a-3 1 8192 1540236423 644
+dir-1/sdir-1/file-b-1 1 8192 1540236383 644
+dir-1/sdir-1/file-b-2 1 8192 1540236383 644
+dir-1/sdir-1/file-b-3 1 8192 1540236430 644
+dir-1/sdir-1/file-c-1 1 8192 1540236330 644
+dir-1/sdir-1/file-c-2 1 8192 1540236330 644
+dir-1/sdir-1/file-c-3 1 8192 1540236548 644
+dir-1/sdir-2/file-a-1-abcdefghijklmnopqrstxyz-"§$%&()=?*+ 1 8192 1540236330 644
+dir-2/sdir-2/file-a-5 1 8192 1540236330 600
+dir-2/sdir-2/file-b-5 1 8192 1540236383 640
+dir-2/sdir-3/file-b-4 1 8192 1540236383 640
+file-a-1 1 8192 1540236330 644
+file-a-2 1 8192 1540236330 644
+file-a-3 1 8192 1540236423 644
+file-a-4 1 8192 1540236330 600
+file-a-5 1 8192 1540236330 600
+file-b-1 1 8192 1540236383 644
+file-b-2 1 8192 1540236383 644
+file-b-3 1 8192 1540236430 644
+file-b-4 1 8192 1540236383 640
+file-b-5 1 8192 1540236383 640
+file-c-1 1 8192 1540236330 644
+file-c-2 1 8192 1540236330 644
+file-c-3 1 8192 1540236548 644
diff --git a/tests/expected/hardlink/options-nargs b/tests/expected/hardlink/options-nargs
new file mode 100644
index 000000000..7705bba30
--- /dev/null
+++ b/tests/expected/hardlink/options-nargs
@@ -0,0 +1,34 @@
+
+
+Directories 1
+Objects 16
+IFREG 15
+Comparisons 9
+Linked 9
+saved 73728
+dir-1/sdir-1/file-a-1 4 8192 1540236330 644
+dir-1/sdir-1/file-a-2 4 8192 1540236330 644
+dir-1/sdir-1/file-a-3 1 8192 1540236423 644
+dir-1/sdir-1/file-b-1 4 8192 1540236383 644
+dir-1/sdir-1/file-b-2 4 8192 1540236383 644
+dir-1/sdir-1/file-b-3 1 8192 1540236430 644
+dir-1/sdir-1/file-c-1 4 8192 1540236330 644
+dir-1/sdir-1/file-c-2 4 8192 1540236330 644
+dir-1/sdir-1/file-c-3 1 8192 1540236548 644
+dir-1/sdir-2/file-a-1-abcdefghijklmnopqrstxyz-"§$%&()=?*+ 1 8192 1540236330 644
+dir-2/sdir-2/file-a-5 1 8192 1540236330 600
+dir-2/sdir-2/file-b-5 1 8192 1540236383 640
+dir-2/sdir-3/file-b-4 1 8192 1540236383 640
+file-a-1 4 8192 1540236330 644
+file-a-2 4 8192 1540236330 644
+file-a-3 1 8192 1540236423 644
+file-a-4 1 8192 1540236330 600
+file-a-5 1 8192 1540236330 600
+file-b-1 4 8192 1540236383 644
+file-b-2 4 8192 1540236383 644
+file-b-3 1 8192 1540236430 644
+file-b-4 1 8192 1540236383 640
+file-b-5 1 8192 1540236383 640
+file-c-1 4 8192 1540236330 644
+file-c-2 4 8192 1540236330 644
+file-c-3 1 8192 1540236548 644
diff --git a/tests/expected/hardlink/options-noregex b/tests/expected/hardlink/options-noregex
new file mode 100644
index 000000000..93363adcb
--- /dev/null
+++ b/tests/expected/hardlink/options-noregex
@@ -0,0 +1 @@
+hardlink: option -x not supported (built without pcre2)
diff --git a/tests/expected/hardlink/options-orig b/tests/expected/hardlink/options-orig
new file mode 100644
index 000000000..6b578233a
--- /dev/null
+++ b/tests/expected/hardlink/options-orig
@@ -0,0 +1,26 @@
+dir-1/sdir-1/file-a-1 1 8192 1540236330 644
+dir-1/sdir-1/file-a-2 1 8192 1540236330 644
+dir-1/sdir-1/file-a-3 1 8192 1540236423 644
+dir-1/sdir-1/file-b-1 1 8192 1540236383 644
+dir-1/sdir-1/file-b-2 1 8192 1540236383 644
+dir-1/sdir-1/file-b-3 1 8192 1540236430 644
+dir-1/sdir-1/file-c-1 1 8192 1540236330 644
+dir-1/sdir-1/file-c-2 1 8192 1540236330 644
+dir-1/sdir-1/file-c-3 1 8192 1540236548 644
+dir-1/sdir-2/file-a-1-abcdefghijklmnopqrstxyz-"§$%&()=?*+ 1 8192 1540236330 644
+dir-2/sdir-2/file-a-5 1 8192 1540236330 600
+dir-2/sdir-2/file-b-5 1 8192 1540236383 640
+dir-2/sdir-3/file-b-4 1 8192 1540236383 640
+file-a-1 1 8192 1540236330 644
+file-a-2 1 8192 1540236330 644
+file-a-3 1 8192 1540236423 644
+file-a-4 1 8192 1540236330 600
+file-a-5 1 8192 1540236330 600
+file-b-1 1 8192 1540236383 644
+file-b-2 1 8192 1540236383 644
+file-b-3 1 8192 1540236430 644
+file-b-4 1 8192 1540236383 640
+file-b-5 1 8192 1540236383 640
+file-c-1 1 8192 1540236330 644
+file-c-2 1 8192 1540236330 644
+file-c-3 1 8192 1540236548 644
diff --git a/tests/expected/hardlink/options-regex-escapes b/tests/expected/hardlink/options-regex-escapes
new file mode 100644
index 000000000..afab5e35d
--- /dev/null
+++ b/tests/expected/hardlink/options-regex-escapes
@@ -0,0 +1,26 @@
+dir-1/sdir-1/file-a-1 4 8192 1540236330 644
+dir-1/sdir-1/file-a-2 4 8192 1540236330 644
+dir-1/sdir-1/file-a-3 2 8192 1540236423 644
+dir-1/sdir-1/file-b-1 4 8192 1540236383 644
+dir-1/sdir-1/file-b-2 4 8192 1540236383 644
+dir-1/sdir-1/file-b-3 2 8192 1540236430 644
+dir-1/sdir-1/file-c-1 4 8192 1540236330 644
+dir-1/sdir-1/file-c-2 4 8192 1540236330 644
+dir-1/sdir-1/file-c-3 2 8192 1540236548 644
+dir-1/sdir-2/file-a-1-abcdefghijklmnopqrstxyz-"§$%&()=?*+ 1 8192 1540236330 644
+dir-2/sdir-2/file-a-5 3 8192 1540236330 600
+dir-2/sdir-2/file-b-5 4 8192 1540236383 640
+dir-2/sdir-3/file-b-4 4 8192 1540236383 640
+file-a-1 4 8192 1540236330 644
+file-a-2 4 8192 1540236330 644
+file-a-3 2 8192 1540236423 644
+file-a-4 3 8192 1540236330 600
+file-a-5 3 8192 1540236330 600
+file-b-1 4 8192 1540236383 644
+file-b-2 4 8192 1540236383 644
+file-b-3 2 8192 1540236430 644
+file-b-4 4 8192 1540236383 640
+file-b-5 4 8192 1540236383 640
+file-c-1 4 8192 1540236330 644
+file-c-2 4 8192 1540236330 644
+file-c-3 2 8192 1540236548 644
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