1#!/bin/sh 2# Test cp --reflink copies permissions 3 4# Copyright (C) 2009-2023 Free Software Foundation, Inc. 5 6# This program is free software: you can redistribute it and/or modify 7# it under the terms of the GNU General Public License as published by 8# the Free Software Foundation, either version 3 of the License, or 9# (at your option) any later version. 10 11# This program is distributed in the hope that it will be useful, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14# GNU General Public License for more details. 15 16# You should have received a copy of the GNU General Public License 17# along with this program. If not, see <https://www.gnu.org/licenses/>. 18 19. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src 20print_ver_ cp 21 22 23> time_check 24> file 25ts='2009-08-28 19:00' 26touch -d "$ts" file || framework_failure_ 27test time_check -nt file || skip_ "The system clock is wrong" 28 29chmod a=rwx file || framework_failure_ 30umask 077 31cp --reflink=auto --preserve file copy || fail=1 32 33mode=$(stat --printf "%A" copy) 34test "$mode" = "-rwxrwxrwx" || fail=1 35 36test copy -nt file && fail=1 37 38# Ensure that --attributes-only overrides --reflink completely 39echo > file2 # file with data 40cp --reflink=auto --preserve --attributes-only file2 empty_copy || fail=1 41compare /dev/null empty_copy || fail=1 42cp --reflink=always --preserve --attributes-only file2 empty_copy || fail=1 43compare /dev/null empty_copy || fail=1 44 45Exit $fail 46