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" :
@ -244,20 +246,27 @@ function runStep(step, subtest, test, state){
}); });
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);
} }
p = p.then(()=> {
emu.idle(); 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");