]> git.proxmox.com Git - mirror_zfs.git/blob - tests/zfs-tests/tests/functional/atime/atime_common.kshlib
47de4326700efabe18603ee48db10b7b04d93298
[mirror_zfs.git] / tests / zfs-tests / tests / functional / atime / atime_common.kshlib
1 #
2 # CDDL HEADER START
3 #
4 # The contents of this file are subject to the terms of the
5 # Common Development and Distribution License (the "License").
6 # You may not use this file except in compliance with the License.
7 #
8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 # or http://www.opensolaris.org/os/licensing.
10 # See the License for the specific language governing permissions
11 # and limitations under the License.
12 #
13 # When distributing Covered Code, include this CDDL HEADER in each
14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 # If applicable, add the following below this CDDL HEADER, with the
16 # fields enclosed by brackets "[]" replaced with your own identifying
17 # information: Portions Copyright [yyyy] [name of copyright owner]
18 #
19 # CDDL HEADER END
20 #
21
22 #
23 # Copyright 2007 Sun Microsystems, Inc. All rights reserved.
24 # Use is subject to license terms.
25 #
26
27 #
28 # Copyright (c) 2016 by Delphix. All rights reserved.
29 #
30
31 . $STF_SUITE/tests/functional/atime/atime.cfg
32 . $STF_SUITE/include/libtest.shlib
33
34 #
35 # Check if the access time for specified file is updated.
36 #
37 # $1 Given an absolute path to a file name
38 #
39 # Return value:
40 # 0 -> The access time is updated.
41 # 1 -> The access time is not updated.
42 #
43 function check_atime_updated
44 {
45 typeset filename=$1
46
47 if is_linux; then
48 typeset before=$(stat -c %X $filename)
49 sleep 2
50 else
51 typeset before=$(ls -Eu $filename | awk '{print $7}')
52 fi
53
54 log_must cat $filename
55
56 if is_linux; then
57 typeset after=$(stat -c %X $filename)
58 else
59 typeset after=$(ls -Eu $filename | awk '{print $7}')
60 fi
61
62 if [[ $before != $after ]]; then
63 return 0
64 else
65 return 1
66 fi
67 }
68
69 function setup_snap_clone
70 {
71 # Create two file to verify snapshot.
72 log_must touch $TESTDIR/$TESTFILE
73
74 create_snapshot $TESTPOOL/$TESTFS $TESTSNAP
75 create_clone $TESTPOOL/$TESTFS@$TESTSNAP $TESTPOOL/$TESTCLONE
76 }
77
78 function cleanup
79 {
80 destroy_clone $TESTPOOL/$TESTCLONE
81 destroy_snapshot $TESTPOOL/$TESTFS@$TESTSNAP
82 }