42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
import os
|
|
import glob
|
|
import xml.etree.ElementTree as ET
|
|
|
|
dumps = glob.glob('debug/xml_dumps/*.xml')
|
|
|
|
edge_cases = {
|
|
'dialogs': set(),
|
|
'bottom_sheets': set(),
|
|
'errors': set(),
|
|
'weird_states': set()
|
|
}
|
|
|
|
for dump in dumps:
|
|
try:
|
|
tree = ET.parse(dump)
|
|
root = tree.getroot()
|
|
for node in root.iter('node'):
|
|
rid = node.get('resource-id', '')
|
|
class_name = node.get('class', '')
|
|
text = node.get('text', '')
|
|
|
|
if 'dialog' in rid.lower() or 'alert' in rid.lower() or 'popup' in rid.lower():
|
|
edge_cases['dialogs'].add(rid)
|
|
elif 'bottom_sheet' in rid.lower() or 'action_sheet' in rid.lower():
|
|
edge_cases['bottom_sheets'].add(rid)
|
|
elif 'error' in rid.lower() or 'fail' in rid.lower():
|
|
edge_cases['errors'].add(rid)
|
|
|
|
# Unusual views that might break logic
|
|
if 'survey' in rid.lower() or 'rate' in rid.lower() or 'nux' in rid.lower():
|
|
edge_cases['weird_states'].add(rid)
|
|
except:
|
|
pass
|
|
|
|
print("=== Discovered Edge Cases in Dumps ===")
|
|
for k, v in edge_cases.items():
|
|
print(f"\n[{k.upper()}]")
|
|
for item in list(v)[:10]:
|
|
print(f" - {item}")
|
|
|