From: Karel Zak Date: Mon, 19 Mar 2007 23:08:49 +0000 (+0100) Subject: tests: add hwclock systohc test X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=51bc94930b9986571a359a3501ad5926de2b4847;p=util-linux 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 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 +# +# 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 +