bitburner-src/test/netscript/tb_ports.script
2022-01-26 05:35:21 -05:00

73 lines
1.6 KiB
Plaintext

import {test} from "tb_basic.script";
test("run", (args.length === 1 && args[0] === "OK"));
MAXPORTS = 20;
MAXPORTSIZE = 100;
for (i = 1; i <= MAXPORTS; ++i) {
clear(i);
}
//write
for (i = 1; i <= MAXPORTS; ++i) {
for (j = 1; j <= 5; ++j) {
write(i, j);
}
}
for (i = 1; i <= MAXPORTS; ++i) {
port = getPortHandle(i);
test("write" + i, port.data.length === 5);
}
//read
for (i = 1; i <= MAXPORTS; ++i) {
for (j = 1; j <= 2; ++j) {
res = read(i);
test("read-p" + i + "-" + j, res === j);
}
}
for (i = 1; i <= MAXPORTS; ++i) {
port = getPortHandle(i); //Check that read removes elements
test("readpops" + i, port.data.length === 3);
}
//peek
for (i = 1; i <= MAXPORTS; ++i) {
test("peek" + i, peek(i) === 3);
port = getPortHandle(i);
test("peeknopop" + i, port.data.length === 3);
}
//clear and empty
for (i = 1; i <= MAXPORTS; ++i) {
clear(i);
port = getPortHandle(i);
test("clear" + i, port.data.length === 0);
test("empty" + i, port.empty());
}
//Write so that the port is full (only port 1 for this)
for (i = 0; i < MAXPORTSIZE + 1; ++i) {
write(1, i)
}
//full
port = getPortHandle(1);
test("full", port.full());
test("notempty", !port.empty());
//tryWrite
firstElem = peek(1);
test("trywritefails", !port.tryWrite("foo"));
test("trywritenochange", peek(1) === firstElem);
read(1);
test("trywritesucceeds", port.tryWrite("foo"));
test("trywritewrites", port.data.pop() === "foo");
test("notfull", !port.full());
write("tb_results.txt", ",tb_ports");
run("tb_functions.script", 1, "OK");