Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
9 lines
659 B
Python
9 lines
659 B
Python
import json,os,socket,sys
|
|
state={"netns":os.readlink("/proc/self/ns/net"),"interfaces":socket.if_nameindex(),"routes":open("/proc/net/route").read(),"ipv6Routes":open("/proc/net/ipv6_route").read()}
|
|
print("ERR ISOLATION "+json.dumps(state),flush=True)
|
|
assert state["netns"] != sys.argv[1], "network namespace was not isolated"
|
|
assert [name for _,name in state["interfaces"]] == ["lo"], "non-loopback interface present"
|
|
assert len(state["routes"].splitlines()) == 1, "IPv4 route present"
|
|
assert all(line.split()[-1] == "lo" for line in state["ipv6Routes"].splitlines()), "non-loopback IPv6 route present"
|
|
if len(sys.argv)>2: os.execv(sys.argv[2],sys.argv[2:])
|