Files
poky/meta/lib/oeqa/runtime/date.py
Ross Burton 44ae903e30 oeqa/runtime/date: stop systemd-timesyncd during test
There's a race between systemd-timesyncd manipulating the system time (with NTP
lookups) and the test case's time manipulation.  Prevent this by stopping
systemd-timesyncd for the duration of the test case.

Thanks to Khem Raj for root-causing this.

(From OE-Core rev: 5334f1b1e9363fa9c128289b51ade55c7ae1a0a3)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-09-12 22:48:24 +01:00

32 lines
1.3 KiB
Python

from oeqa.oetest import oeRuntimeTest
from oeqa.utils.decorators import *
import re
class DateTest(oeRuntimeTest):
def setUp(self):
if oeRuntimeTest.tc.d.getVar("VIRTUAL-RUNTIME_init_manager", True) == "systemd":
self.target.run('systemctl stop systemd-timesyncd')
def tearDown(self):
if oeRuntimeTest.tc.d.getVar("VIRTUAL-RUNTIME_init_manager", True) == "systemd":
self.target.run('systemctl start systemd-timesyncd')
@testcase(211)
@skipUnlessPassed("test_ssh")
def test_date(self):
(status, output) = self.target.run('date +"%Y-%m-%d %T"')
self.assertEqual(status, 0, msg="Failed to get initial date, output: %s" % output)
oldDate = output
sampleDate = '"2016-08-09 10:00:00"'
(status, output) = self.target.run("date -s %s" % sampleDate)
self.assertEqual(status, 0, msg="Date set failed, output: %s" % output)
(status, output) = self.target.run("date -R")
p = re.match('Tue, 09 Aug 2016 10:00:.. \+0000', output)
self.assertTrue(p, msg="The date was not set correctly, output: %s" % output)
(status, output) = self.target.run('date -s "%s"' % oldDate)
self.assertEqual(status, 0, msg="Failed to reset date, output: %s" % output)