]> err.no Git - util-linux/commitdiff
tests: add hwclock systohc test
authorKarel Zak <kzak@redhat.com>
Mon, 19 Mar 2007 23:08:49 +0000 (00:08 +0100)
committerKarel Zak <kzak@redhat.com>
Mon, 19 Mar 2007 23:08:49 +0000 (00:08 +0100)
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>
tests/Makefile.am
tests/commands.sh.in
tests/ts-hwclock-systohc [new file with mode: 0755]

index 7347c22898e67af1678e3b4a6a6a28cd48834eda..d2e93625b220f0b54f78046703b60ed1e571a061 100644 (file)
@@ -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
index 7e2aadbe5894fc1f6e1dd620142c30f79d7662a8..44eca14ad4157fca1a0ad440680aee6227682202 100644 (file)
@@ -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 (executable)
index 0000000..522b597
--- /dev/null
@@ -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
+