dstest.config({
substrate = "docker",
seed = 654,
weights = {
["deprive:network"] = 1.0,
},
step_delay = 100,
http_timeout = 3,
})
local s = dstest.setup({
image = "kennethreitz/httpbin",
ports = { 80 },
})
local conn = dstest.tcp(s, 80)
if conn.connected then
dstest.info(string.format("Port 80 reachable at %s", conn.addr))
else
dstest.warn(string.format("Port 80 unreachable: %s", conn.error))
end
local result = dstest.step()
dstest.info(string.format("Injected: %s", result.fault))
conn = dstest.tcp(s, 80)
if conn.connected then
dstest.warn("Port 80 still reachable during network fault!")
else
dstest.info(string.format("Port 80 correctly blocked: %s", conn.error))
end
dstest.clear(s)
conn = dstest.tcp(s, 80)
if conn.connected then
dstest.info("Network recovered - port 80 reachable")
else
dstest.warn(string.format("Network not recovered: %s", conn.error))
end
dstest.clear(s)
dstest.info("tcp example complete")