Wait for code to finish w/ crappy set timeout

This commit is contained in:
plondon 2021-10-23 15:44:15 -04:00
parent 45b2a66e19
commit 3e3a180352
2 changed files with 9 additions and 5 deletions

View File

@ -12,7 +12,7 @@ import * as util from "./util.js";
import { bash, getUUID, logError } from "./util.js"; import { bash, getUUID, logError } from "./util.js";
const allSessions = new Set(); const allSessions = new Set();
const TEST_RUN_FINISHED = 'Test run!\n' export const TEST_RUN_FINISHED = 'Test run finished!\n'
export class Session { export class Session {
get homedir() { get homedir() {
return "/home/riju/src"; return "/home/riju/src";
@ -234,8 +234,10 @@ export class Session {
this.logBadMessage(msg); this.logBadMessage(msg);
break; break;
} }
await this.runCode(msg.code, true, msg.expectedOutput); await this.runCode(msg.code, msg.expectedOutput);
this.term.pty.stdin.write(TEST_RUN_FINISHED); setTimeout(() => {
this.term.pty.stdin.write(TEST_RUN_FINISHED);
}, 1500)
break; break;
case "formatCode": case "formatCode":
if (typeof msg.code !== "string") { if (typeof msg.code !== "string") {
@ -287,7 +289,7 @@ export class Session {
await this.run(this.privilegedExec(`cat > ${file}`), { input: code }); await this.run(this.privilegedExec(`cat > ${file}`), { input: code });
}; };
runCode = async (code, isTest = false, expectedOutput) => { runCode = async (code, expectedOutput) => {
try { try {
const { name, repl, suffix, createEmpty, compile, run, template } = const { name, repl, suffix, createEmpty, compile, run, template } =
this.config; this.config;
@ -334,6 +336,7 @@ export class Session {
this.send({ this.send({
event: "terminalOutput", event: "terminalOutput",
output: data.toString(), output: data.toString(),
expectedOutput
}); });
} }
}); });

View File

@ -2,6 +2,7 @@ import { Terminal } from "xterm";
import { FitAddon } from "xterm-addon-fit"; import { FitAddon } from "xterm-addon-fit";
import "xterm/css/xterm.css"; import "xterm/css/xterm.css";
import { TEST_RUN_FINISHED } from "../../backend/api";
const DEBUG = window.location.hash === "#debug"; const DEBUG = window.location.hash === "#debug";
const config = window.rijuConfig; const config = window.rijuConfig;
@ -152,7 +153,7 @@ async function main() {
term.write(message.output); term.write(message.output);
testData.push(message.output); testData.push(message.output);
if (testData.join("").includes("Test run!")) { if (testData.join("").includes(TEST_RUN_FINISHED)) {
postTestResults(testData, message.expectedOutput); postTestResults(testData, message.expectedOutput);
testData = []; testData = [];
} }