25 lines
1.7 KiB
Python
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()
|