#!/bin/bash

[ -f testing.sh ] && . testing.sh

OLDUMASK=$(umask)
umask 0002

# Create test file
dd if=/dev/urandom of=random bs=64 count=1 2> /dev/null

#testing "name" "command" "result" "infile" "stdin"

testing "not enough arguments [fail]" "cp one 2>/dev/null || echo yes" \
	"yes\n" "" ""
testing "-missing source [fail]" "cp missing two 2>/dev/null || echo yes" \
	"yes\n" "" ""
testing "file->file" "cp random two && cmp random two && echo yes" \
	"yes\n" "" ""
rm two

mkdir two
testing "file->dir" "cp random two && cmp random two/random && echo yes" \
	"yes\n" "" ""
rm two/random
testing "file->dir/file" \
	"cp random two/random && cmp random two/random && echo yes" \
	"yes\n" "" ""
testing "-r dir->missing" \
	"cp -r two three && cmp random three/random && echo yes" \
	"yes\n" "" ""
touch walrus
testing "-r dir->file [fail]" \
	"cp -r two walrus 2>/dev/null || echo yes" "yes\n" "" ""
touch two/three
testing "-r dir hits file." \
	"cp -r three two 2>/dev/null || echo yes" "yes\n" "" ""
rm -rf two three walrus

touch two
chmod 000 two
skipnot [ $(id -u) -ne 0 ]  # Root doesn't count.
testing "file->inaccessible [fail]" \
	"cp random two 2>/dev/null || echo yes" "yes\n" "" ""
rm -f two

touch two
chmod 000 two
skipnot [ $(id -u) -ne 0 ]  # Root doesn't count.
testing "-f file->inaccessible" \
	"cp -f random two && cmp random two && echo yes" "yes\n" "" ""
mkdir sub
chmod 000 sub
skipnot [ $(id -u) -ne 0 ]  # Root doesn't count.
testing "file->inaccessible_dir [fail]" \
	"cp random sub 2>/dev/null || echo yes" "yes\n" "" ""
rm two
rmdir sub

# This test fails because our -rf deletes existing target files without
# regard to what we'd be copying over it. Posix says to only do that if
# we'd be copying a file over the file, but does not say _why_.

#mkdir dir
#touch file
#testing "-rf dir file [fail]" "cp -rf dir file 2>/dev/null || echo yes" \
#	"yes\n" "" ""
#rm -rf dir file

touch one two
testing "file1 file2 missing [fail]" \
	"cp one two missing 2>/dev/null || echo yes" "yes\n" "" ""
mkdir dir
testing "dir file missing [fail]" \
	"cp dir two missing 2>/dev/null || echo yes" "yes\n" "" ""
testing "-rf dir file missing [fail]" \
	"cp dir two missing 2>/dev/null || echo yes" "yes\n" "" ""
testing "file1 file2 file [fail]" \
	"cp random one two 2>/dev/null || echo yes" "yes\n" "" ""
testing "file1 file2 dir" \
	"cp random one dir && cmp random dir/random && cmp one dir/one && echo yes" \
	"yes\n" "" ""
rm one two random
rm -rf dir

mkdir -p one/two/three/four
touch one/two/three/five
touch one/{six,seven,eight}
testing "-r /abspath dest" \
	"cp -r \"$(readlink -f one)\" dir && diff -r one dir && echo yes" \
	"yes\n" "" ""
testing "-r dir again" "cp -r one/. dir && diff -r one dir && echo yes" \
	"yes\n" "" ""
mkdir dir2
testing "-r dir1/* dir2" \
	"cp -r one/* dir2 && diff -r one dir2 && echo yes" "yes\n" "" ""
rm -rf one dir dir2

mkdir one; touch one/two; cp one/two one/three
cp -pr one/ one_ # Succeeds twice in a row
testing "-pr dir/." "cp -pr one/. one_ && echo yes" "yes\n" "" ""
rm -rf one one_
mkdir one; touch one/two; ln -s two one/three
cp -pr one/ one_ # First time ok, second mustn't fail with "File exists"
testing "-pr dir/. symlink child" "cp -pr one/. one_ && echo yes" "yes\n" "" ""
rm -rf one one_

touch walrus
chmod 644 walrus
ln -s walrus woot
testing "symlink dest permissions" "cp woot carpenter && stat -c %A carpenter" \
  "-rw-r--r--\n" "" ""
rm -rf walrus woot carpenter

# duplicated --preserve= options are fine.
testing "--preserve=mode,mode" "cp --preserve=mode,mode walrus walrus2" "" "" ""

# cp -r ../source destdir
# cp -r one/two/three missing
# cp -r one/two/three two
# cp file1 file2 dir
# cp file1 missing file2 -> dir

# Make sure it's truncating existing file
# copy with -d at top level, with -d in directory, without -d at top level,
#      without -d in directory

umask $OLDUMASK
