[gnome-battery-bench] integration-test: add basic monitoring test
- From: Christian Kellner <gicmo src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-battery-bench] integration-test: add basic monitoring test
- Date: Mon, 3 Apr 2017 15:38:31 +0000 (UTC)
commit b6a2103948032a3aa1adaf7769562be3afabe936
Author: Christian Kellner <gicmo gnome org>
Date: Wed Mar 29 18:15:22 2017 +0200
integration-test: add basic monitoring test
src/integration-test | 53 +++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 50 insertions(+), 3 deletions(-)
---
diff --git a/src/integration-test b/src/integration-test
index 4431042..9f89df8 100755
--- a/src/integration-test
+++ b/src/integration-test
@@ -37,6 +37,35 @@ except ImportError:
sys.exit(0)
+class LogReader(object):
+ def __init__(self, path):
+ self.fd = open(path, 'r')
+ self.timeout = [0.3, 0.7, 1.0]
+
+ def _check_text_in_log(self, text):
+ lines = self.fd.readlines()
+ return any([text in l for l in lines])
+
+ def wait_for_text(self, text):
+ for t in self.timeout:
+ if self._check_text_in_log(text):
+ return True
+ time.sleep(t)
+ self._check_text_in_log(text)
+
+ def __contains__(self, text):
+ return self.wait_for_text(text)
+
+ def __del__(self):
+ self.close()
+
+ def close(self):
+ if self.fd is None:
+ return
+ self.fd.close()
+ self.fd = None
+
+
class Tests(unittest.TestCase):
@classmethod
def setUpClass(cls):
@@ -133,9 +162,7 @@ class Tests(unittest.TestCase):
self.gbb_proc = None
def log(self):
- with open(self.logfile.name) as f:
- return f.read()
- return ""
+ return LogReader(self.logfile.name)
def add_std_power_supply(self, vendor='GNOME.org', model='B1'):
ac = self.testbed.add_device('power_supply', 'AC', None,
@@ -168,6 +195,26 @@ class Tests(unittest.TestCase):
self.assertEqual(bats[0]['vendor'], vendor)
self.assertEqual(bats[0]['model'], model)
+ def test_basic_monitor(self):
+ ac, b0 = self.add_std_power_supply()
+
+ self.gbb_start('monitor')
+ log = self.log()
+
+ self.assertIn('Monitoring power events', log)
+
+ self.testbed.set_attribute(b0, 'energy_now', '40000000')
+ self.assertIn('40.00 WH', log)
+ self.testbed.set_attribute(b0, 'energy_now', '30000000')
+ self.assertIn('30.00 WH', log)
+ self.testbed.set_attribute(b0, 'energy_now', '25000000')
+ self.assertIn('25.00 WH', log)
+ self.testbed.set_attribute(ac, 'online', '1')
+ self.assertIn('AC: online', log)
+
+ log.close()
+ self.gbb_stop()
+
if __name__ == '__main__':
if 'umockdev' not in os.environ.get('LD_PRELOAD', ''):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]