mirror of
https://github.com/radareorg/radare2-rlang.git
synced 2026-11-10 04:11:28 -10:00
40 lines
765 B
Python
40 lines
765 B
Python
import r2lang
|
|
|
|
|
|
def pyio(_):
|
|
def _open(path, rw, mode):
|
|
return {"path": path, "mode": mode, "off": 0, "rw": rw}
|
|
|
|
def _check(path, many):
|
|
return path.startswith("pytestio://")
|
|
|
|
def _read(state, size):
|
|
return b"A" * size
|
|
|
|
def _seek(state, offset, whence):
|
|
if whence == 0:
|
|
state["off"] = offset
|
|
elif whence == 1:
|
|
state["off"] += offset
|
|
elif whence == 2:
|
|
state["off"] = 0x40 + offset
|
|
return state["off"]
|
|
|
|
def _close(state):
|
|
return 1
|
|
|
|
return {
|
|
"name": "pytest-io",
|
|
"license": "MIT",
|
|
"desc": "IO plugin for the Python integration tests",
|
|
"check": _check,
|
|
"open": _open,
|
|
"read": _read,
|
|
"seek": _seek,
|
|
"close": _close,
|
|
}
|
|
|
|
|
|
if not r2lang.plugin("io", pyio):
|
|
raise RuntimeError("failed to register the Python IO test plugin")
|