fstests: check for filesystem FS_IOC_FSSETXATTR support
[xfstests-dev.git] / tests / xfs / 158
1 #! /bin/bash
2 # SPDX-License-Identifier: GPL-2.0
3 # Copyright (c) 2006 Silicon Graphics, Inc.  All Rights Reserved.
4 #
5 # FSQA Test No. 158
6 #
7 # get/set file attributes
8 #
9 seq=`basename $0`
10 seqres=$RESULT_DIR/$seq
11 echo "QA output created by $seq"
12
13 here=`pwd`
14 tmp=/tmp/$$
15 status=1    # failure is the default!
16 trap "exit \$status" 0 1 2 3 15
17
18 # get standard environment, filters and checks
19 . ./common/rc
20 . ./common/filter
21 . ./common/dmapi
22
23 # real QA test starts here
24 _supported_fs xfs
25 _supported_os Linux
26
27 _require_scratch
28 _scratch_mkfs_xfs >/dev/null 2>&1
29 _dmapi_scratch_mount
30
31 touch $SCRATCH_MNT/dmapi_test
32
33 _get_file_attr() {
34     ${DMAPI_QASUITE1_DIR}cmd/get_fileattr $SCRATCH_MNT/dmapi_test | grep $1
35 }
36
37 _set_file_attr() {
38    ${DMAPI_QASUITE1_DIR}cmd/set_fileattr $@
39 }
40
41 #dt_atime
42 atime_before="`_get_file_attr dt_atime`"
43 _set_file_attr -a 05m $SCRATCH_MNT/dmapi_test
44 atime_after="`_get_file_attr dt_atime`"
45 [ "$atime_before" == "$atime_after" ] && echo "dt_atime not updated"
46
47 #dt_mtime
48 mtime_before="`_get_file_attr dt_mtime`"
49 _set_file_attr -m 10m $SCRATCH_MNT/dmapi_test
50 mtime_after="`_get_file_attr dt_mtime`"
51 [ "$mtime_before" == "$mtime_after" ] && echo "mt_mtime not updated"
52
53 #dt_ctime
54 ctime_before="`_get_file_attr dt_ctime`"
55 _set_file_attr -c 15m $SCRATCH_MNT/dmapi_test
56 ctime_after="`_get_file_attr dt_ctime`"
57 [ "$ctime_before" == "$ctime_after" ] && echo "dt_ctime not updated"
58
59 #dt_dtime
60 dtime_before="`_get_file_attr dt_dtime`"
61 _set_file_attr -d 20m $SCRATCH_MNT/dmapi_test
62 dtime_after="`_get_file_attr dt_dtime`"
63 [ "$dtime_before" == "$dtime_after" ] && echo "dt_dtime not updated"
64
65 # -M mode
66 _set_file_attr -M 744 $SCRATCH_MNT/dmapi_test
67 _get_file_attr dt_mode
68
69 # -u uid
70 _set_file_attr -u 666 $SCRATCH_MNT/dmapi_test
71 _get_file_attr dt_uid
72
73 # -g gid
74 _set_file_attr -g 666 $SCRATCH_MNT/dmapi_test
75 _get_file_attr dt_gid
76
77 # -S size
78 _set_file_attr -S 1024 $SCRATCH_MNT/dmapi_test
79 _get_file_attr dt_size
80
81 status=0
82 exit