Files
snippets/speedtest.py
T

30 lines
4.0 MiB
Python
Raw Normal View History

2025-11-09 01:36:34 +03:00
#!/usr/bin/env python3
2025-11-10 04:27:21 +03:00
import sys
2025-11-12 23:13:42 +03:00
if sys.version_info < (3,3):
sys.stderr.write('Python 3.3+ required\n')
2025-11-10 04:27:21 +03:00
sys.exit(1)
import os, base64, lzma, hashlib
2025-11-09 01:36:34 +03:00
BINARY_B64 = """
2025-11-10 04:16:03 +03:00
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
2025-11-09 01:36:34 +03:00
"""
2025-11-10 04:16:03 +03:00
EXPECTED_SHA256 = '949aedebaca9840115ad7bf10f6bf14cc6dfe1b85dc5ba19e20196dc188722b0'
2025-11-09 01:36:34 +03:00
COMPRESSED = base64.b64decode(BINARY_B64)
BINARY = lzma.decompress(COMPRESSED)
2025-11-10 04:16:03 +03:00
h = hashlib.sha256()
h.update(BINARY)
got = h.hexdigest()
if got.lower() != EXPECTED_SHA256.lower():
print(f"SHA256 mismatch: expected {EXPECTED_SHA256}, got {got}", file=sys.stderr)
sys.exit(2)
print("SHA256 sum good.")
2025-11-09 01:36:34 +03:00
fd = os.memfd_create("runme", 0)
os.write(fd, BINARY)
os.fchmod(fd, 0o755)
2025-11-09 02:11:15 +03:00
argv = ["runme", *sys.argv[1:]]
os.execve(f"/proc/self/fd/{fd}", argv, os.environ)