runapptests - Fix promise use for step running

pull/3399/head
Martin Boonk 2024-05-04 15:00:37 +02:00
parent a84b6d1388
commit 7289d3fd2b
1 changed files with 30 additions and 17 deletions

View File

@ -150,7 +150,9 @@ function runStep(step, subtest, test, state){
if (state.ok) switch(step.t) { if (state.ok) switch(step.t) {
case "setup" : case "setup" :
test.setup.filter(e=>e.id==step.id)[0].steps.forEach(setupStep=>{ test.setup.filter(e=>e.id==step.id)[0].steps.forEach(setupStep=>{
p = p.then(runStep(setupStep, subtest, test, state)); p = p.then(()=>{
return runStep(setupStep, subtest, test, state);
});
}); });
break; break;
case "load" : case "load" :
@ -234,30 +236,37 @@ function runStep(step, subtest, test, state){
break; break;
case "checkMemoryUsage" : case "checkMemoryUsage" :
p = p.then(() => { p = p.then(() => {
emu.tx(`\x10print(process.memory().usage)\n`); emu.tx(`\x10print(process.memory().usage)\n`);
var memUsage = emu.getLastLine(); var memUsage = emu.getLastLine();
console.log("> CURRENT MEMORY USAGE", memUsage); console.log("> CURRENT MEMORY USAGE", memUsage);
if (subtest.memUsage != memUsage ) { if (subtest.memUsage != memUsage ) {
console.log("> FAIL: EXPECTED MEMORY USAGE OF "+subtest.memUsage); console.log("> FAIL: EXPECTED MEMORY USAGE OF "+subtest.memUsage);
state.ok = false; state.ok = false;
} }
}); });
break; break;
case "sleep" : case "sleep" :
p = p.then(new Promise(resolve => { p = p.then(()=>{
console.log("Start waiting for", step.ms); return new Promise(resolve => {
setTimeout(resolve, step.ms); setTimeout(()=>{
})); console.log("Waited for", step.ms);
resolve();
}, step.ms);
})
});
break; break;
case "upload" : case "upload" :
p = p.then(new Promise(() => { p = p.then(()=>{
console.log("Uploading", step.file); console.log("Uploading", step.file);
emu.tx(AppInfo.getFileUploadCommands(step.as, require("fs").readFileSync(BASE_DIR + "/" + step.file).toString())); emu.tx(AppInfo.getFileUploadCommands(step.as, require("fs").readFileSync(BASE_DIR + "/" + step.file).toString()));
})); });
break; break;
default: ERROR("Unknown step type "+step.t); default: ERROR("Unknown step type "+step.t);
} }
emu.idle(); p = p.then(()=> {
emu.idle();
});
return p;
} }
function runTest(test, testState) { function runTest(test, testState) {
@ -288,7 +297,9 @@ function runTest(test, testState) {
}); });
subtest.steps.forEach(step => { subtest.steps.forEach(step => {
p = p.then(runStep(step, subtest, test, state)); p = p.then(()=>{
return runStep(step, subtest, test, state)
});
}); });
p = p.then(() => { p = p.then(() => {
@ -322,7 +333,9 @@ emu.init({
if (!require("fs").existsSync(testFile)) return; if (!require("fs").existsSync(testFile)) return;
var test = JSON.parse(require("fs").readFileSync(testFile).toString()); var test = JSON.parse(require("fs").readFileSync(testFile).toString());
test.app = app.id; test.app = app.id;
p = p.then(() => runTest(test, testState)); p = p.then(()=>{
return runTest(test, testState)
});
}); });
p.finally(()=>{ p.finally(()=>{
console.log("\n\n"); console.log("\n\n");