aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorGaurav Kumar <[email protected]>2017-09-13 12:20:07 -0700
committerBrian Behlendorf <[email protected]>2017-09-13 12:20:07 -0700
commit0107f69898e3b6d39d974b272da1739cb2f39027 (patch)
treef87653b9fc7766cb1c55c3f559bd59dc89a7d388 /tests
parentb1490dd43e3c98649c7d23928d908f5bb019411b (diff)
Modifying XATTRs doesnt change the ctime
Changing any metadata, should modify the ctime. Reviewed-by: Chunwei Chen <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: gaurkuma <[email protected]> Closes #3644 Closes #6586
Diffstat (limited to 'tests')
-rw-r--r--tests/zfs-tests/tests/functional/ctime/Makefile.am5
-rw-r--r--tests/zfs-tests/tests/functional/ctime/ctime.c (renamed from tests/zfs-tests/tests/functional/ctime/ctime_001_pos.c)22
-rw-r--r--tests/zfs-tests/tests/functional/ctime/ctime_001_pos.ksh44
3 files changed, 67 insertions, 4 deletions
diff --git a/tests/zfs-tests/tests/functional/ctime/Makefile.am b/tests/zfs-tests/tests/functional/ctime/Makefile.am
index 1c7c26d99..e7479ae81 100644
--- a/tests/zfs-tests/tests/functional/ctime/Makefile.am
+++ b/tests/zfs-tests/tests/functional/ctime/Makefile.am
@@ -3,10 +3,11 @@ include $(top_srcdir)/config/Rules.am
pkgdatadir = $(datadir)/@PACKAGE@/zfs-tests/tests/functional/ctime
dist_pkgdata_SCRIPTS = \
+ ctime_001_pos.ksh \
cleanup.ksh \
setup.ksh
pkgexecdir = $(datadir)/@PACKAGE@/zfs-tests/tests/functional/ctime
-pkgexec_PROGRAMS = ctime_001_pos
-ctime_001_pos_SOURCES = ctime_001_pos.c
+pkgexec_PROGRAMS = ctime
+ctime_SOURCES = ctime.c
diff --git a/tests/zfs-tests/tests/functional/ctime/ctime_001_pos.c b/tests/zfs-tests/tests/functional/ctime/ctime.c
index 73528d21d..ba8af15fe 100644
--- a/tests/zfs-tests/tests/functional/ctime/ctime_001_pos.c
+++ b/tests/zfs-tests/tests/functional/ctime/ctime.c
@@ -31,6 +31,7 @@
#include <sys/types.h>
#include <sys/stat.h>
+#include <sys/xattr.h>
#include <utime.h>
#include <stdio.h>
#include <stdlib.h>
@@ -250,6 +251,24 @@ do_chown(const char *pfile)
return (ret);
}
+static int
+do_xattr(const char *pfile)
+{
+ int ret = 0;
+ char *value = "user.value";
+
+ if (pfile == NULL) {
+ return (-1);
+ }
+
+ if (setxattr(pfile, "user.x", value, strlen(value), 0) == -1) {
+ (void) fprintf(stderr, "setxattr(%s, %d, %d) failed with errno "
+ "%d\n", pfile, (int)getuid(), (int)getgid(), errno);
+ return (1);
+ }
+ return (ret);
+}
+
static void
cleanup(void)
{
@@ -270,6 +289,7 @@ static timetest_t timetest_table[] = {
{ ST_CTIME, "st_ctime", do_chown },
{ ST_CTIME, "st_ctime", do_link },
{ ST_CTIME, "st_ctime", do_utime },
+ { ST_CTIME, "st_ctime", do_xattr },
};
#define NCOMMAND (sizeof (timetest_table) / sizeof (timetest_table[0]))
@@ -281,7 +301,6 @@ main(int argc, char *argv[])
int i, ret, fd;
char *penv[] = {"TESTDIR", "TESTFILE0"};
- (void) fprintf(stdout, "Verify [acm]time is modified appropriately.\n");
(void) atexit(cleanup);
/*
@@ -347,6 +366,5 @@ main(int argc, char *argv[])
}
}
- (void) fprintf(stdout, "PASS\n");
return (0);
}
diff --git a/tests/zfs-tests/tests/functional/ctime/ctime_001_pos.ksh b/tests/zfs-tests/tests/functional/ctime/ctime_001_pos.ksh
new file mode 100644
index 000000000..de12efe46
--- /dev/null
+++ b/tests/zfs-tests/tests/functional/ctime/ctime_001_pos.ksh
@@ -0,0 +1,44 @@
+#!/bin/ksh -p
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+. $STF_SUITE/include/libtest.shlib
+# . $STF_SUITE/tests/functional/xattr/xattr_common.kshlib
+
+#
+# DESCRIPTION:
+#
+# Verify [acm]time is modified appropriately with xattr=on|sa
+
+set -A args "sa" "on"
+
+log_note "Verify [acm]time is modified appropriately."
+
+for arg in ${args[*]}; do
+ log_note "Testing with xattr set to $arg"
+ log_must zfs set xattr=$arg $TESTPOOL
+ log_must $STF_SUITE/tests/functional/ctime/ctime
+done
+
+log_pass "PASS"