1# SPDX-License-Identifier: BSD-2-Clause-FreeBSD 2# 3# Copyright (c) 2017 Alan Somers 4# 5# Redistribution and use in source and binary forms, with or without 6# modification, are permitted provided that the following conditions 7# are met: 8# 1. Redistributions of source code must retain the above copyright 9# notice, this list of conditions and the following disclaimer. 10# 2. Redistributions in binary form must reproduce the above copyright 11# notice, this list of conditions and the following disclaimer in the 12# documentation and/or other materials provided with the distribution. 13# 14# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 15# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 16# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 18# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 19# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 20# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 21# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 22# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 23# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 24# POSSIBILITY OF SUCH DAMAGE. 25# 26# $FreeBSD$ 27 28atf_test_case special 29special_head() { 30 atf_set "descr" "Test cmp(1)'s handling of non-regular files" 31} 32special_body() { 33 echo 0123456789abcdef > a 34 echo 0123456789abcdeg > b 35 atf_check -s exit:0 -o empty -e empty -x "cat a | cmp a -" 36 atf_check -s exit:0 -o empty -e empty -x "cat a | cmp - a" 37 atf_check -s exit:1 -o not-empty -e empty -x "cat b | cmp a -" 38 atf_check -s exit:1 -o not-empty -e empty -x "cat b | cmp - a" 39 40 atf_check -s exit:0 -o empty -e empty -x "cmp a a <&-" 41} 42 43atf_test_case symlink 44symlink_head() { 45 atf_set "descr" "Test cmp(1)'s handling of symlinks" 46} 47symlink_body() { 48 echo 0123456789abcdef > a 49 echo 0123456789abcdeg > b 50 ln -s a a.lnk 51 ln -s b b.lnk 52 ln -s a a2.lnk 53 cp a adup 54 ln -s adup adup.lnk 55 atf_check -s exit:0 cmp a a.lnk 56 atf_check -s exit:0 cmp a.lnk a 57 atf_check -s not-exit:0 -o ignore cmp a b.lnk 58 atf_check -s not-exit:0 -o ignore cmp b.lnk a 59 atf_check -s not-exit:0 -o ignore -e ignore cmp -h a a.lnk 60 atf_check -s not-exit:0 -o ignore -e ignore cmp -h a.lnk a 61 atf_check -s exit:0 cmp -h a.lnk a2.lnk 62 atf_check -s not-exit:0 -o ignore -e ignore cmp -h a.lnk adup.lnk 63} 64 65atf_init_test_cases() 66{ 67 atf_add_test_case special 68 atf_add_test_case symlink 69} 70