summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarel Zak <kzak@redhat.com>2007-03-20 00:08:49 +0100
committerKarel Zak <kzak@redhat.com>2007-03-20 00:08:49 +0100
commit51bc94930b9986571a359a3501ad5926de2b4847 (patch)
treebfb644661f779cac79523b6c6424406572b3f490
parent05de8126346e395331f68230d3cb7c2106bb25d0 (diff)
downloadutil-linux-old-51bc94930b9986571a359a3501ad5926de2b4847.tar.gz
tests: add hwclock systohc test
The test detects how "hwclock --systohc" untune the clock. Now the hwclock command causes the hw clock to be wrong by 500ms each time it is reset. The test resets the clock 10 times and result is 5 sec difference between NTP and the clock. That's a bug... and it has to bee fixed in a next commit. Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r--tests/Makefile.am3
-rw-r--r--tests/commands.sh.in2
-rwxr-xr-xtests/ts-hwclock-systohc76
3 files changed, 80 insertions, 1 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 7347c228..d2e93625 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -17,7 +17,8 @@ EXTRA_DIST = expected/* \
ts-namei-logic \
ts-cramfs-mkfs \
ts-look-separator \
- ts-login-checktty
+ ts-login-checktty \
+ ts-hwclock-systohc
distclean-local:
rm -rf output diff
diff --git a/tests/commands.sh.in b/tests/commands.sh.in
index 7e2aadbe..44eca14a 100644
--- a/tests/commands.sh.in
+++ b/tests/commands.sh.in
@@ -23,3 +23,5 @@ TS_CMD_LOOK=${TS_CMD_LOOK-"$TOPDIR/misc-utils/look"}
TS_CMD_CHECKTTY=${TS_CMD_CHECKTTY-"$TOPDIR/login-utils/checktty_test"}
+TS_CMD_HWCLOCK=${TS_CMD_HWCLOCK-"$TOPDIR/hwclock/hwclock"}
+
diff --git a/tests/ts-hwclock-systohc b/tests/ts-hwclock-systohc
new file mode 100755
index 00000000..522b597f
--- /dev/null
+++ b/tests/ts-hwclock-systohc
@@ -0,0 +1,76 @@
+#!/bin/bash
+
+#
+# Copyright (C) 2007 Karel Zak <kzak@redhat.com>
+#
+# This file is part of util-linux-ng.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License.
+#
+# This file is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+
+# Test cramfs
+
+. commands.sh
+. functions.sh
+
+TS_COMPONENT="hwclock"
+TS_DESC="systohc"
+
+NTP_SERVER="0.fedora.pool.ntp.org"
+
+ts_init
+
+if [ $UID != 0 ]; then
+ ts_skip "not root permissions"
+fi
+if [ -x "ntpdate" ]; then
+ ts_skip "cannot found ntpdate command"
+fi
+
+set -o pipefail
+
+# sync with server
+(ntpdate $NTP_SERVER | sed "s/^.*offset \([0-9.]*\) sec/\1/g") &> /dev/null
+
+if [ "$?" == "1" ]; then
+ ts_skip "cannot sync with $NTP_SERVER"
+fi
+
+# sync again and check difference
+OFFSET=$( ntpdate $NTP_SERVER 2> /dev/null | sed "s/^.*offset [\-]*\([0-9.]*\) sec/\1/g" )
+if [ "$?" == "1" ]; then
+ ts_skip "cannot sync with $NTP_SERVER (2nd attempt)"
+fi
+
+DIFF=$( echo "$OFFSET > 1" | bc )
+if [ "$DIFF" == "1" ]; then
+ ts_skip "diff between systime and NTP is greated than 1 second"
+fi
+
+# call hwclock
+for i in `seq 0 10`; do
+ #echo "sync #$i"
+ $TS_CMD_HWCLOCK --systohc
+ $TS_CMD_HWCLOCK --hctosys
+done
+
+# sync with NTP and check new difference
+OFFSET=$( ntpdate $NTP_SERVER 2> /dev/null | sed "s/^.*offset [\-]*\([0-9.]*\) sec/\1/g" )
+if [ "$?" == "1" ]; then
+ ts_skip "cannot sync with $NTP_SERVER (3rd attempt)"
+fi
+
+DIFF=$( echo "$OFFSET > 1" | bc )
+if [ "$DIFF" == "1" ]; then
+ ts_failed "offset is $OFFSET"
+fi
+
+ts_ok
+