From: Karel Zak Date: Mon, 19 Mar 2007 23:08:49 +0000 (+0100) Subject: tests: add hwclock systohc test X-Git-Tag: v2.13-rc1~198 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=51bc94930b9986571a359a3501ad5926de2b4847;p=thirdparty%2Futil-linux.git 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 --- diff --git a/tests/Makefile.am b/tests/Makefile.am index 7347c22898..d2e93625b2 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 7e2aadbe58..44eca14ad4 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 0000000000..522b597fa2 --- /dev/null +++ b/tests/ts-hwclock-systohc @@ -0,0 +1,76 @@ +#!/bin/bash + +# +# Copyright (C) 2007 Karel Zak +# +# 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 +