#! /usr/bin/env python # # Sample qtest written in Python # # Copyright (C) 2011 Red Hat, Inc. # Author: Paolo Bonzini # # This file is licensed under the terms of the GNU GPL, version 2 or later. # See the COPYING file in the top-level directory. import time import qtest import gtest_main class QTestCase(qtest.QTestCase): @classmethod def supportedArches(self): return ['i386', 'x86_64'] @classmethod def extraArgs(self): return ('-vga', 'none') BASE = 0x70 RTC_SECONDS = 0 RTC_MINUTES = 2 RTC_HOURS = 4 def read(self, reg): self.outb(self.BASE, reg) return self.inb(self.BASE + 1) def write(self, reg, value): self.outb(self.BASE, reg) self.outb(self.BASE + 1, value) def testRead(self): self.write(self.RTC_HOURS, 0x01) self.write(self.RTC_MINUTES, 0x15) self.write(self.RTC_SECONDS, 0x29) assert self.read(self.RTC_MINUTES) == 0x15 assert self.read(self.RTC_HOURS) == 0x01 def testUpdate(self): self.write(self.RTC_HOURS, 0x01) self.write(self.RTC_MINUTES, 0x15) self.write(self.RTC_SECONDS, 0x29) while self.read(self.RTC_SECONDS) == 0x29: time.sleep(0.2) assert self.read(self.RTC_SECONDS) == 0x30 if __name__ == '__main__': gtest_main.main()