Files
ASC/test_samples.py
2026-06-10 01:49:50 +08:00

53 lines
1.5 KiB
Python

import os
import time
from core.dex.dex_manager import DexManager
from utils.decompiler import decompile_dex_bytes
SAMPLE = "classes5.dex"
# Initialize manager once, as it loads the DEX file which is heavy
manager = DexManager(SAMPLE, debug=False)
testcases = []
with open("testcase.txt", "r") as f:
for line in f:
line = line.strip()
if line:
testcases.append(line)
print(f"[INFO] Loaded {len(testcases)} testcases.")
total_time = 0
success_count = 0
for i, clazz in enumerate(testcases):
try:
t_start = time.perf_counter()
new_dex = manager.extract_and_rebuild(clazz)
# source_code = decompile_dex_bytes(new_dex, clazz)
t_end = time.perf_counter()
# print(source_code)
exec_time = (t_end - t_start) * 1000000
total_time += exec_time
success_count += 1
if (i + 1) % 100 == 0:
print(f"[INFO] Processed {i + 1}/{len(testcases)} classes...")
except Exception as e:
print(f"[ERROR] Failed to process {clazz}: {e}")
if success_count > 0:
avg_time = total_time / success_count
print(f"\n[RESULT] Total Successful: {success_count}/{len(testcases)}")
print(f"[RESULT] Average Execution Time per class: {avg_time:.2f} us")
print(f"[RESULT] Total Execution Time for {success_count} classes: {total_time / 1000000:.4f} s")
else:
print("\n[RESULT] All testcases failed.")