summaryrefslogtreecommitdiff
path: root/tests/utimensat/08.t
diff options
context:
space:
mode:
Diffstat (limited to 'tests/utimensat/08.t')
-rw-r--r--tests/utimensat/08.t40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/utimensat/08.t b/tests/utimensat/08.t
new file mode 100644
index 0000000000000..aca8b1c26aaef
--- /dev/null
+++ b/tests/utimensat/08.t
@@ -0,0 +1,40 @@
+#! /bin/sh
+# vim: filetype=sh noexpandtab ts=8 sw=8
+# $FreeBSD$
+
+desc="utimensat can set timestamps with subsecond precision"
+
+dir=`dirname $0`
+. ${dir}/../misc.sh
+
+require "utimensat"
+
+echo "1..9"
+
+n0=`namegen`
+n1=`namegen`
+# Different file systems have different timestamp resolutions. Check that they
+# can do 0.1 second, but don't bother checking the finest resolution.
+DATE1=100000000 #Sat Mar 3 02:46:40 MST 1973
+DATE1_NS=100000000
+DATE2=200000000 #Mon May 3 13:33:20 MDT 1976
+DATE2_NS=200000000
+
+expect 0 mkdir ${n1} 0755
+cdir=`pwd`
+cd ${n1}
+
+create_file regular ${n0} 0644
+expect 0 open . O_RDONLY : utimensat 0 ${n0} $DATE1 $DATE1_NS $DATE2 $DATE2_NS 0
+expect $DATE1_NS lstat ${n0} atime_ns
+expect $DATE2_NS lstat ${n0} mtime_ns
+if supported "stat_st_birthtime"; then
+ expect $DATE2_NS lstat ${n0} birthtime_ns
+else
+ test_check true
+fi
+
+expect 0 unlink ${n0}
+
+cd ${cdir}
+expect 0 rmdir ${n1}