1*d583b39bSJohn Wren Kennedy#!/bin/ksh -p
2*d583b39bSJohn Wren Kennedy#
3*d583b39bSJohn Wren Kennedy# CDDL HEADER START
4*d583b39bSJohn Wren Kennedy#
5*d583b39bSJohn Wren Kennedy# The contents of this file are subject to the terms of the
6*d583b39bSJohn Wren Kennedy# Common Development and Distribution License (the "License").
7*d583b39bSJohn Wren Kennedy# You may not use this file except in compliance with the License.
8*d583b39bSJohn Wren Kennedy#
9*d583b39bSJohn Wren Kennedy# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*d583b39bSJohn Wren Kennedy# or http://www.opensolaris.org/os/licensing.
11*d583b39bSJohn Wren Kennedy# See the License for the specific language governing permissions
12*d583b39bSJohn Wren Kennedy# and limitations under the License.
13*d583b39bSJohn Wren Kennedy#
14*d583b39bSJohn Wren Kennedy# When distributing Covered Code, include this CDDL HEADER in each
15*d583b39bSJohn Wren Kennedy# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*d583b39bSJohn Wren Kennedy# If applicable, add the following below this CDDL HEADER, with the
17*d583b39bSJohn Wren Kennedy# fields enclosed by brackets "[]" replaced with your own identifying
18*d583b39bSJohn Wren Kennedy# information: Portions Copyright [yyyy] [name of copyright owner]
19*d583b39bSJohn Wren Kennedy#
20*d583b39bSJohn Wren Kennedy# CDDL HEADER END
21*d583b39bSJohn Wren Kennedy#
22*d583b39bSJohn Wren Kennedy
23*d583b39bSJohn Wren Kennedy#
24*d583b39bSJohn Wren Kennedy# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
25*d583b39bSJohn Wren Kennedy# Use is subject to license terms.
26*d583b39bSJohn Wren Kennedy#
27*d583b39bSJohn Wren Kennedy
28*d583b39bSJohn Wren Kennedy. $STF_SUITE/tests/functional/acl/acl_common.kshlib
29*d583b39bSJohn Wren Kennedy
30*d583b39bSJohn Wren Kennedy#
31*d583b39bSJohn Wren Kennedy# DESCRIPTION:
32*d583b39bSJohn Wren Kennedy#	Verifies ability to find files with attribute with -xattr flag and using
33*d583b39bSJohn Wren Kennedy#	"-exec runat ls".
34*d583b39bSJohn Wren Kennedy#
35*d583b39bSJohn Wren Kennedy# STRATEGY:
36*d583b39bSJohn Wren Kennedy#	1. In directory A, create several files and add attribute files for them
37*d583b39bSJohn Wren Kennedy#	2. Verify all the specified files can be found with '-xattr',
38*d583b39bSJohn Wren Kennedy#	3. Verify all the attribute files can be found with '-exec runat ls'
39*d583b39bSJohn Wren Kennedy#
40*d583b39bSJohn Wren Kennedy
41*d583b39bSJohn Wren Kennedyverify_runnable "both"
42*d583b39bSJohn Wren Kennedy
43*d583b39bSJohn Wren Kennedylog_assert "Verifies ability to find files with attribute with" \
44*d583b39bSJohn Wren Kennedy		"-xattr flag and using '-exec runat ls'"
45*d583b39bSJohn Wren Kennedylog_onexit cleanup
46*d583b39bSJohn Wren Kennedy
47*d583b39bSJohn Wren Kennedyfor user in root $ZFS_ACL_STAFF1; do
48*d583b39bSJohn Wren Kennedy	log_must set_cur_usr $user
49*d583b39bSJohn Wren Kennedy
50*d583b39bSJohn Wren Kennedy	log_must create_files $TESTDIR
51*d583b39bSJohn Wren Kennedy	initfiles=$($LS -R $INI_DIR/*)
52*d583b39bSJohn Wren Kennedy
53*d583b39bSJohn Wren Kennedy	typeset -i i=0
54*d583b39bSJohn Wren Kennedy	while (( i < NUM_FILE )); do
55*d583b39bSJohn Wren Kennedy		f=$(getitem $i $initfiles)
56*d583b39bSJohn Wren Kennedy		ff=$(usr_exec $FIND $INI_DIR -type f -name ${f##*/} \
57*d583b39bSJohn Wren Kennedy			-xattr -print)
58*d583b39bSJohn Wren Kennedy		if [[ $ff != $f ]]; then
59*d583b39bSJohn Wren Kennedy			log_fail "find file containing attribute fail."
60*d583b39bSJohn Wren Kennedy		else
61*d583b39bSJohn Wren Kennedy			log_note "find $f by '-xattr'."
62*d583b39bSJohn Wren Kennedy		fi
63*d583b39bSJohn Wren Kennedy
64*d583b39bSJohn Wren Kennedy		typeset -i j=0
65*d583b39bSJohn Wren Kennedy		while (( j < NUM_ATTR )); do
66*d583b39bSJohn Wren Kennedy			typeset af=attribute.$j
67*d583b39bSJohn Wren Kennedy			fa=$(usr_exec $FIND $INI_DIR -type f -name ${f##*/} \
68*d583b39bSJohn Wren Kennedy				-xattr -exec runat {} ls $af \\\;)
69*d583b39bSJohn Wren Kennedy			if [[ $fa != $af ]]; then
70*d583b39bSJohn Wren Kennedy				log_fail "find file attribute fail"
71*d583b39bSJohn Wren Kennedy			fi
72*d583b39bSJohn Wren Kennedy			(( j += 1 ))
73*d583b39bSJohn Wren Kennedy		done
74*d583b39bSJohn Wren Kennedy		(( i += 1 ))
75*d583b39bSJohn Wren Kennedy		log_note "find all attribute files of $f"
76*d583b39bSJohn Wren Kennedy	done
77*d583b39bSJohn Wren Kennedy
78*d583b39bSJohn Wren Kennedy	log_must cleanup
79*d583b39bSJohn Wren Kennedydone
80*d583b39bSJohn Wren Kennedy
81*d583b39bSJohn Wren Kennedylog_pass "find files with -xattr passed."
82