#! /bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2016 Red Hat, Inc.  All Rights Reserved.
#
# FS QA Test 370
#
# RichACL write-vs-append test
#
. ./common/preamble
_begin_fstest auto quick richacl perms

# Import common functions.

# real QA test starts here

_supported_fs generic

_require_scratch
_require_scratch_richacl
_require_richacl_prog
_require_runas

_scratch_mkfs_richacl >> $seqres.full
_scratch_mount

cd $SCRATCH_MNT

r()
{
	echo "--- runas -u 99 -g 99 $*"
	_runas -u 99 -g 99 -- "$@"
}

touch a b c d e f
$SETRICHACL_PROG --set 'owner@:rwp::allow' a
$SETRICHACL_PROG --set 'owner@:rwp::allow u:99:w::allow' b
$SETRICHACL_PROG --set 'owner@:rwp::allow u:99:p::allow' c
$SETRICHACL_PROG --set 'owner@:rwp::allow u:99:wp::allow' d
$SETRICHACL_PROG --set 'u:99:a::deny owner@:rwp::allow u:99:w::allow' e
$SETRICHACL_PROG --set 'u:99:w::deny owner@:rwp::allow u:99:p::allow' f

r sh -c 'echo a > a'
r sh -c 'echo b > b'
r sh -c 'echo c > c'
r sh -c 'echo d > d'
r sh -c 'echo e > e'
r sh -c 'echo f > f'

r sh -c 'echo A >> a'
r sh -c 'echo B >> b'
r sh -c 'echo C >> c'
r sh -c 'echo D >> d'
r sh -c 'echo E >> e'
r sh -c 'echo F >> f'

# success, all done
status=0
exit
