From bd0be5e02afd76a065315cc51f3c96c2b53fcdf0 Mon Sep 17 00:00:00 2001 From: Ruediger Meier Date: Mon, 12 Nov 2018 20:27:52 +0100 Subject: hardlink: add first simple tests The test still fails without pcre2 and may also make problems on exotic file systems. Signed-off-by: Ruediger Meier --- tests/ts/hardlink/options | 78 ++++++++++++++++++++++++++++++++++++++ tests/ts/hardlink/testdir1.tar.xz | Bin 0 -> 26468 bytes 2 files changed, 78 insertions(+) create mode 100755 tests/ts/hardlink/options create mode 100644 tests/ts/hardlink/testdir1.tar.xz (limited to 'tests/ts') 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 +# +# 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 Binary files /dev/null and b/tests/ts/hardlink/testdir1.tar.xz differ -- cgit v1.2.3-55-g7522