From 68730a222dc4ed939e04768ed980fa9555fdce9c Mon Sep 17 00:00:00 2001 From: Enji Cooper Date: Fri, 20 Jan 2017 07:11:21 +0000 Subject: [PATCH] Add testcases for -i with hardlinks and symlinks The symlink testcase is expected to fail, post-r312519 (the revert of r312404); mark it so. MFC after: 3 weeks Sponsored by: Dell EMC Isilon --- usr.bin/sed/tests/Makefile | 1 + usr.bin/sed/tests/sed2_test.sh | 61 ++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100755 usr.bin/sed/tests/sed2_test.sh diff --git a/usr.bin/sed/tests/Makefile b/usr.bin/sed/tests/Makefile index c157af8355c1..abd1a2bb51fc 100644 --- a/usr.bin/sed/tests/Makefile +++ b/usr.bin/sed/tests/Makefile @@ -2,6 +2,7 @@ PACKAGE= tests +ATF_TESTS_SH+= sed2_test NETBSD_ATF_TESTS_SH+= sed_test TAP_TESTS_SH= legacy_test TAP_TESTS_SH+= multi_test diff --git a/usr.bin/sed/tests/sed2_test.sh b/usr.bin/sed/tests/sed2_test.sh new file mode 100755 index 000000000000..3ce3008deeba --- /dev/null +++ b/usr.bin/sed/tests/sed2_test.sh @@ -0,0 +1,61 @@ +# +# Copyright 2017 Dell EMC. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# $FreeBSD$ +# + +atf_test_case inplace_hardlink_src +inplace_hardlink_src_head() +{ + atf_set "descr" "Verify -i works with a symlinked source file" +} +inplace_hardlink_src_body() +{ + echo foo > a + atf_check ln a b + atf_check sed -i '' -e 's,foo,bar,g' b + atf_check -o 'inline:bar\n' -s exit:0 cat b +} + +atf_test_case inplace_symlink_src +inplace_symlink_src_head() +{ + atf_set "descr" "Verify -i works with a symlinked source file" +} +inplace_symlink_src_body() +{ + atf_expect_fail "Check for S_IFREG reverted in r312404" + + echo foo > a + atf_check ln -s a b + atf_check -e not-empty -s not-exit:0 sed -i '' -e 's,foo,bar,g' b +} + +atf_init_test_cases() +{ + atf_add_test_case inplace_hardlink_src + atf_add_test_case inplace_symlink_src +}