from pathlib import Path
root=Path(__file__).resolve().parents[1]
store=(root/"src/com/lemenzo/messenger/data/BroadcastStore.java").read_text()
compose=(root/"src/com/lemenzo/messenger/ComposeActivity.java").read_text()
broadcast=(root/"src/com/lemenzo/messenger/BroadcastActivity.java").read_text()
checks={
"BroadcastStore has process-wide lock":"private static final Object LOCK" in store,
"BroadcastStore methods use process-wide lock":"synchronized (LOCK)" in store,
"Compose accepted sends are not force-cancelled":
    "sendExecutor.shutdown();" in compose and "sendExecutor.shutdownNow();" not in compose,
"Broadcast resend is not force-cancelled":
    "sendExecutor.shutdown();" in broadcast and "sendExecutor.shutdownNow();" not in broadcast,
}
bad=[k for k,v in checks.items() if not v]
if bad:
 print("BROADCAST RUNTIME HARDENING: FAIL")
 for x in bad:print("-",x)
 raise SystemExit(1)
print("BROADCAST RUNTIME HARDENING: PASS")
for x in checks:print("-",x)
