"""Imported live/offline scientific predicates, not a parallel test model.""" import re from geometry import need,exact,crossing,expected_outputs from predicates import protocol def client_exit(log,code): if 'TOPLEVEL CREATE ' in log: order=re.findall(r'(POPUP_[AB]|TOPLEVEL) DESTROY',log) need(order in (['POPUP_B','POPUP_A','TOPLEVEL'],['TOPLEVEL']),'popup child-first destruction order') need(log.index('CLOSE_RECEIVED')0 and releases[0][0]==releases[0][1],'client SHM release incomplete/unobserved') need(code==0,'client nonzero');errors=re.findall(r'EXIT[^\n]*error=(\d+)',log) need(bool(errors) and all(e=='0' for e in errors),'client error/nonobservable exit') need(not re.search(r'protocol error|wl_display[^\n]*\.error\(',log,re.I),'wire error') def window(start,end,events): need(start