criu/soccr/test/tcp-test.py
Adrian Reber f1341e3856 soccr/test: fix build and Python 3 compatibility
- Add -I../../include to CFLAGS so common/config.h is found.
- Guard the TCP queue enum in tcp-conn.c with
  #ifndef CONFIG_HAS_TCP_REPAIR, matching soccr.h, to avoid
  redeclaration errors on systems where <netinet/tcp.h> already
  provides these symbols.
- Use libsoccr_release(so) instead of libsoccr_resume(so) for the
  original socket handle whose fd was already closed, fixing a
  Bad file descriptor error from setsockopt.
- Port run.py and tcp-test.py to Python 3: use bytes literals for
  pipe I/O, read from sys.stdin.buffer, and decode pipe output
  before parsing.
- Replace eval() with ast.literal_eval() to avoid code injection
  warnings.
- Clean all test binaries in the clean target, and hook it into
  the top-level make clean/mrproper via clean-top.
- Add soccr/test Python files to the top-level ruff target.

Assisted-by: Claude Code (claude-opus-4-6)
Signed-off-by: Adrian Reber <areber@redhat.com>
2026-07-16 10:50:07 +01:00

20 lines
465 B
Python
Executable file

#!/usr/bin/env python3
import sys
import socket
import hashlib
sk = socket.fromfd(3, socket.AF_INET, socket.SOCK_STREAM)
s = sys.stdin.buffer.read()
ret = sk.send(s)
print("%s: send() -> %d" % (sys.argv[1], ret), file=sys.stderr)
sk.shutdown(socket.SHUT_WR)
m = hashlib.md5()
while True:
s = sk.recv((1 << 20) * 10)
if not s:
break
print("%s: recv() -> %d" % (sys.argv[1], len(s)), file=sys.stderr)
m.update(s)
print(repr(m.hexdigest()))