mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-12-22 14:12:27 +01:00
119 lines
4.6 KiB
Plaintext
119 lines
4.6 KiB
Plaintext
|
import {test} from "tb_basic.script";
|
||
|
|
||
|
test("run", (args.length === 1 && args[0] === "OK"));
|
||
|
|
||
|
//scan
|
||
|
res = scan();
|
||
|
test("scan1", res.includes("iron-gym") && res.includes("foodnstuff") &&
|
||
|
res.includes("sigma-cosmetics") && res.includes("joesguns") &&
|
||
|
res.includes("hong-fang-tea") && res.includes("harakiri-sushi"));
|
||
|
test("scan2", res.length === 6);
|
||
|
res = scan("foodnstuff");
|
||
|
test("scan3", res.includes("home"));
|
||
|
|
||
|
//hasRootAccess and nuke
|
||
|
svr = "foodnstuff";
|
||
|
test("hasRootAccess1", !hasRootAccess(svr));
|
||
|
test("nuke", nuke(svr));
|
||
|
test("hasRootAccess2", hasRootAccess(svr));
|
||
|
|
||
|
//sleep and Date.now();
|
||
|
time = Date.now();
|
||
|
sleep(10000);
|
||
|
time2 = Date.now();
|
||
|
test("sleep", time2 - time > 8000);
|
||
|
|
||
|
//hack, grow, weaken, and their effects
|
||
|
FORTIFYAMOUNT = 0.002;
|
||
|
WEAKENAMOUNT = 0.05;
|
||
|
|
||
|
playerStartingMoney = getServerMoneyAvailable("home");
|
||
|
serverStartingMoney = getServerMoneyAvailable("foodnstuff");
|
||
|
startingSecLvl = getServerSecurityLevel("foodnstuff");
|
||
|
|
||
|
res = hack(svr);
|
||
|
|
||
|
playerEndingMoney = getServerMoneyAvailable("home");
|
||
|
serverEndingMoney = getServerMoneyAvailable("foodnstuff");
|
||
|
endingSecLvl = getServerSecurityLevel("foodnstuff");
|
||
|
|
||
|
success = !(res == 0);
|
||
|
|
||
|
if (success) {
|
||
|
tprint("Hack succeeded");
|
||
|
test("hackplyrmoney", res === (playerEndingMoney - playerStartingMoney));
|
||
|
test("hacksvrmoney", res === (serverStartingMoney - serverEndingMoney));
|
||
|
//Dumb JS precision
|
||
|
test("seclevel", (endingSecLvl - startingSecLvl) - FORTIFYAMOUNT < 1e2 * Number.EPSILON);
|
||
|
} else {
|
||
|
tprint("Hack failed");
|
||
|
test("hackres", res === 0);
|
||
|
test("hackplymoney", playerEndingMoney === playerStartingMoney);
|
||
|
test("hacksvrmoney", serverEndingMoney === serverStartingMoney);
|
||
|
test("seclevel", endingSecLvl === startingSecLvl);
|
||
|
}
|
||
|
|
||
|
serverStartingMoney = getServerMoneyAvailable(svr);
|
||
|
res = grow(svr);
|
||
|
serverEndingMoney = getServerMoneyAvailable(svr);
|
||
|
test("grow", serverEndingMoney > serverStartingMoney);
|
||
|
test("growtest", res * serverStartingMoney - serverEndingMoney < Number.EPSILON);
|
||
|
|
||
|
startingSecLvl = getServerSecurityLevel(svr);
|
||
|
res = weaken(svr);
|
||
|
endingSecLvl = getServerSecurityLevel(svr);
|
||
|
test("weaken", res === WEAKENAMOUNT);
|
||
|
test("weakenres", startingSecLvl - endingSecLvl - res < 1e2 * Number.EPSILON);
|
||
|
|
||
|
//misc getter functions
|
||
|
test("getHostname", getHostname() === "home");
|
||
|
test("getHackingLevel", getHackingLevel() >= 1); //Can vary based on aug mults
|
||
|
res = getHackingMultipliers();
|
||
|
test("getHackingMultipliers", res.chance >= 1 && res.speed >= 1 &&
|
||
|
res.money >= 1 && res.growth >= 1);
|
||
|
svr = "joesguns";
|
||
|
baseSecLvl = getServerBaseSecurityLevel(svr);
|
||
|
minSecLvl = getServerMinSecurityLevel(svr);
|
||
|
test("getServerBase/MinSecurityLevel1", minSecLvl < baseSecLvl);
|
||
|
test("getServerBase/MinSecurityLevel1", minSecLvl === Math.max(1, Math.round(baseSecLvl / 3)));
|
||
|
test("getServerRequiredHackingLevel", getServerRequiredHackingLevel(svr) === 10);
|
||
|
test("getServerMaxMoney", getServerMaxMoney(svr) > getServerMoneyAvailable(svr)); //Can vary by BN
|
||
|
test("getServerGrowth", getServerGrowth(svr) >= 1); //Can vary by BN
|
||
|
test("getServerNumPortsRequired1", getServerNumPortsRequired(svr) === 0);
|
||
|
test("getServerNumPortsRequired1", getServerNumPortsRequired("neo-net") === 1);
|
||
|
test("getServerRam", getServerRam("home")[0] === 8 ||
|
||
|
getServerRam("home")[0] === 16 ||
|
||
|
getServerRam("home")[0] === 32);
|
||
|
test("serverExists1", serverExists("home"));
|
||
|
test("serverExists2", !serverExists("foofooofofofof"));
|
||
|
test("fileExists1", fileExists("tb_start.script"));
|
||
|
test("fileExists2", !fileExists("tosdifoodafgbiofdagbaod.txt"));
|
||
|
|
||
|
//run a misc script
|
||
|
test("isRunning1", !isRunning("tb_foo.script", "home"));
|
||
|
run("tb_foo.script", 1, 1, 2, 3);
|
||
|
test("isRunning2", !isRunning("tb_foo.script", "home", "foo"));
|
||
|
test("isRunning3", isRunning("tb_foo.script", "home", 1, 2, 3));
|
||
|
|
||
|
//kill
|
||
|
kill("tb_foo.script", "home", "fee");
|
||
|
sleep(10000);
|
||
|
test("isRunning4", isRunning("tb_foo.script", "home", 1, 2, 3));
|
||
|
kill("tb_foo.script", "home", 1, 2, 3);
|
||
|
sleep(10000);
|
||
|
test("isRunning4", !isRunning("tb_foo.script", "home", 1, 2, 3));
|
||
|
|
||
|
//scp
|
||
|
svr = "foodnstuff";
|
||
|
test("fileExists3", !fileExists("tb_remote.script", svr));
|
||
|
test("fileExists4", !fileExists("tb_basic.script", svr));
|
||
|
scp("tb_remote.script", "home", svr);
|
||
|
scp("tb_basic.script", svr);
|
||
|
test("fileExists5", fileExists("tb_remote.script", svr));
|
||
|
test("fileExists6", fileExists("tb_basic.script", svr));
|
||
|
|
||
|
write("tb_results.txt", ",tb_functions"); //Done, pretty much
|
||
|
|
||
|
//exec and spawn
|
||
|
exec("tb_remote.script", "foodnstuff", 1, "OK");
|
||
|
spawn("tb_functions2.script", 1, "OK");
|