fix: verify work during continuously hidden guest intervals
This commit is contained in:
@@ -65,6 +65,16 @@ class ProfilesTests(unittest.TestCase):
|
||||
with self.subTest(field=field, value=value), self.assertRaises(ValueError):
|
||||
Profile('guest', self.iso, **{field: value})
|
||||
|
||||
def test_refresh_vertical_descriptor_boundaries(self):
|
||||
for value in (0, 50000, 255000):
|
||||
path = self.root / 'guest.toml'
|
||||
save_profile(path, Profile('guest', refresh_millihz=value))
|
||||
self.assertEqual(load_profile(path).refresh_millihz, value)
|
||||
path.unlink()
|
||||
for value in (1, 30000, 49999, 255001, 1000000):
|
||||
with self.subTest(refresh=value), self.assertRaises(ValueError):
|
||||
Profile('guest', refresh_millihz=value)
|
||||
|
||||
def test_profile_name_must_match_filename(self):
|
||||
path = self.root / 'guest.toml'
|
||||
path.write_text(f'name = "other"\niso = "{self.iso}"\n')
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
"""Evidence gates used by the real private-display integration probe."""
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
from dev import smoke
|
||||
|
||||
|
||||
class SmokeEvidenceTests(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.tmp = tempfile.TemporaryDirectory(prefix='hydra-smoke-test-')
|
||||
self.addCleanup(self.tmp.cleanup)
|
||||
root = Path(self.tmp.name)
|
||||
self.hidden = root / 'hidden.log'
|
||||
self.visible = root / 'visible.log'
|
||||
self.hidden.write_text('wl_keyboard#21.enter(1)\nwl_keyboard#21.leave(2)\n')
|
||||
self.visible.write_text('wl_keyboard#21.enter(3)\n')
|
||||
|
||||
def test_focus_parser_ignores_pointer_events(self):
|
||||
self.hidden.write_text(self.hidden.read_text() + 'wl_pointer#22.enter(4)\n')
|
||||
self.assertEqual(smoke.focus_events(self.hidden), ['enter', 'leave'])
|
||||
|
||||
def test_old_focus_events_cannot_prove_a_new_switch(self):
|
||||
self.assertFalse(smoke.fresh_focus_transition(['enter', 'leave'], ['enter'],
|
||||
['enter', 'leave'], ['enter']))
|
||||
self.assertTrue(smoke.fresh_focus_transition(['enter'], ['leave'],
|
||||
['enter', 'leave'], ['leave', 'enter']))
|
||||
|
||||
def test_hidden_guest_must_advance_during_hidden_interval(self):
|
||||
with self.assertRaisesRegex(AssertionError, 'hidden guest stopped'):
|
||||
smoke.measure_hidden_interval(lambda: 10, self.hidden, self.visible, duration=.01)
|
||||
readings = iter((10, 20))
|
||||
result = smoke.measure_hidden_interval(lambda: next(readings), self.hidden, self.visible, duration=.01)
|
||||
self.assertEqual((result['before'], result['after']), (10, 20))
|
||||
self.assertGreaterEqual(result['elapsed_seconds'], .01)
|
||||
|
||||
def test_focus_change_during_sampling_invalidates_hidden_evidence(self):
|
||||
def reading():
|
||||
self.hidden.write_text(self.hidden.read_text() + 'wl_keyboard#21.enter(4)\n')
|
||||
return 10
|
||||
with self.assertRaisesRegex(AssertionError, 'focus changed'):
|
||||
smoke.measure_hidden_interval(reading, self.hidden, self.visible, duration=.01)
|
||||
|
||||
def test_compositor_classifier_does_not_hide_other_errors(self):
|
||||
occupied = '[ERROR] [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X2: Address already in use'
|
||||
self.assertEqual(smoke.classify_compositor_errors(occupied), [occupied])
|
||||
with self.assertRaisesRegex(AssertionError, 'Unexpected compositor'):
|
||||
smoke.classify_compositor_errors(occupied + '\n[ERROR] [config.c:1] invalid configuration')
|
||||
Reference in New Issue
Block a user