mirror of
https://gitlab.freedesktop.org/upower/upower.git
synced 2026-05-08 10:08:08 +02:00
test: Fix flaky battery aggregation test
It seems that the test was still flaky, the reason for that would be that we did not explicitly wait for the log line saying that the aggregate state was calculated. The only reason that it did not consistently fail appears to be that searching for the state conflict caused messages to be skipped. That is wrong, we should account for every "Calculating percentage" message to ensure that upowerd and the test is in sync.
This commit is contained in:
parent
0b462e41d1
commit
8817dec73f
1 changed files with 10 additions and 5 deletions
|
|
@ -25,6 +25,7 @@ import shutil
|
|||
import subprocess
|
||||
import unittest
|
||||
import time
|
||||
import re
|
||||
from output_checker import OutputChecker
|
||||
from packaging.version import parse as parse_version
|
||||
|
||||
|
|
@ -757,13 +758,17 @@ class Tests(dbusmock.DBusTestCase):
|
|||
self.daemon_log.check_line('Calculating percentage', timeout=2.0)
|
||||
self.testbed.uevent(bat1, 'change')
|
||||
|
||||
# TODO: Make this more elegant somehow
|
||||
lines = self.daemon_log.check_line('Calculating percentage', timeout=2.0)
|
||||
for l in lines:
|
||||
found = bool(re.match(b".*Conflicting.*state.*", l))
|
||||
if found:
|
||||
break
|
||||
|
||||
if display_device_state[i][j] == CONFLICT:
|
||||
self.daemon_log.check_line_re("Conflicting.*state", timeout=2.0)
|
||||
self.assertTrue(found)
|
||||
else:
|
||||
# TODO: Add a helper in OutputChecker to do this
|
||||
lines = self.daemon_log.check_line('Calculating percentage', timeout=2.0)
|
||||
for l in lines:
|
||||
self.assertNotRegex(l, b"Conflicting.*state")
|
||||
self.assertFalse(found)
|
||||
|
||||
if display_device_state[i][j] >= 0:
|
||||
self.assertEqual(self.get_dbus_display_property('State'), display_device_state[i][j],
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue