swayfx-mosaic/tooling/probes/step20c-saved-input-gpu-batch/test_native.py

25 lines
1.7 KiB
Python

import unittest
from pathlib import Path
from native_replay import replay,validate_claims
from input_validators import InvalidEvidence
LAB=Path('/home/fy59/swayfx-mosaic-targeted-7gge6h8b')
class NativeTests(unittest.TestCase):
def test_real_all_821(self):
reports=[replay(p.read_text()) for p in (LAB/'runs').glob('*/run/compositor.log')]
self.assertEqual(tuple(sum(r[k] for r in reports) for k in ('total_commits','paired','missing')),(821,789,32))
def test_real_57(self):
p=Path('/home/fy59/swayfx-mosaic-overnight-mcolx0gq/matrix/F-mosaic/run/compositor.log')
r=replay(p.read_text());self.assertEqual(tuple(r[k] for k in ('total_commits','paired','missing')),(57,55,2))
def test_wrong_output_fake_present(self):
text='PI_OUTPUT_COMMIT output=H1 commit_seq=1 ns=10\nPI_OUTPUT_PRESENT output=H2 commit_seq=1 ns=20 presented=1'
r=replay(text);self.assertEqual(r['missing'],1);self.assertEqual(len(r['unmatched_presents']),1)
with self.assertRaises(InvalidEvidence):replay(text.replace('H2','H1').replace('ns=20','ns=9'))
with self.assertRaises(InvalidEvidence):replay(text.replace('presented=1',''))
def test_no_invented_generation_or_gpu_or_buffer(self):
for claim in ('atomic_generation','source_buffer_is_output','gpu_completion','all_frames_damage'):
with self.assertRaises(InvalidEvidence):validate_claims({claim:True})
def test_unknown_missing_not_guessed_from_teardown(self):
t='PI_OUTPUT_COMMIT output=H1 commit_seq=1 ns=10\noutput destroyed ns=11'
self.assertEqual(replay(t)['rows'][0]['missing_cause']['kind'],'UNKNOWN')
with self.assertRaises(InvalidEvidence):replay(t,{('H1',1):{'kind':'OUTPUT_DESTROY'}})
if __name__=='__main__':unittest.main()