From 4e3a86866acf00f4e58c4c3ab61bfc8cd9b4667a Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Fri, 16 Feb 2018 15:25:36 -0500 Subject: [PATCH] progtest: Display reader errors in browser --- progtest/bin/runner.js | 6 +++++- progtest/src/TestRunner.js | 2 +- progtest/src/env.js | 16 +++++++++++++--- src/current/scripts/entry-form.js | 3 ++- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/progtest/bin/runner.js b/progtest/bin/runner.js index d0a95ada..11248672 100644 --- a/progtest/bin/runner.js +++ b/progtest/bin/runner.js @@ -32,4 +32,8 @@ const runner = require( '../src/env' ).console( program, process.stdout ); -runner( case_yaml ); +// XXX: work around issue with consts not being initialized ahead of time +program.rater( {} ); + +runner( case_yaml ) + .catch( e => console.error( e ) ); diff --git a/progtest/src/TestRunner.js b/progtest/src/TestRunner.js index d24f38f2..504c1a16 100644 --- a/progtest/src/TestRunner.js +++ b/progtest/src/TestRunner.js @@ -97,7 +97,7 @@ module.exports = Class( 'TestRunner', { const total = dfns.length; - return new Promise( resolve => + return new Promise( ( resolve, reject ) => { const results = []; diff --git a/progtest/src/env.js b/progtest/src/env.js index 7c09cf6c..8eeb8375 100644 --- a/progtest/src/env.js +++ b/progtest/src/env.js @@ -52,8 +52,18 @@ module.exports = { .use( ConstResolver( program ) ) ( yaml_reader, TestCase ); - return yaml => runner.runTests( - reader.loadCases( yaml ) - ); + return yaml => new Promise( ( resolve, reject ) => + { + try + { + const cases = reader.loadCases( yaml ); + + resolve( runner.runTests( cases ) ); + } + catch ( e ) + { + reject( e ); + } + } ); }, }; diff --git a/src/current/scripts/entry-form.js b/src/current/scripts/entry-form.js index 2f1f728e..56bf7a47 100644 --- a/src/current/scripts/entry-form.js +++ b/src/current/scripts/entry-form.js @@ -1591,7 +1591,8 @@ var client = ( function() { const yaml = ev.target.result; - runner( yaml ); + runner( yaml ) + .catch( e => alert( e.message ) ); // run for remaining files runYamlTestCases( files, runner );