@@ -95,7 +95,7 @@ function setTestResults(results) {
9595 if ( ! validateResults ( results ) ) {
9696 return ;
9797 }
98-
98+ console . log ( "Setting test results: " + JSON . stringify ( results ) ) ;
9999 const div = document . getElementById ( 'test-results-content' ) ;
100100
101101 let html = `
@@ -127,7 +127,7 @@ function setTestResults(results) {
127127 document . getElementById ( 'tab-test-results-button' ) . click ( ) ;
128128}
129129
130- function run ( callback , testcase = 'All' ) {
130+ function run ( callback , testcase = 'All' , expected = false ) {
131131 saveSolution ( 'cpp' , editor . getValue ( ) ) ;
132132 const pathsFile = DirectoryManager . getPathsFile ( ) ;
133133 if ( ! file . existsSync ( pathsFile ) ) {
@@ -143,15 +143,18 @@ function run(callback, testcase = 'All') {
143143 `--language cpp ` +
144144 `--problem ${ activeProblem } ` +
145145 `--testcase ${ testcase } ` +
146+ `${ expected ? '--run-expected-tests ' : '' } ` +
146147 `--verbose` ;
147148
148149 console . log ( "Running command: " + command ) ;
149150
150151 var resultsFilename ;
151152 exec ( command , ( error , stdout , stderr ) => {
152153 if ( error ) {
154+ console . log ( "Error running the command, error: " + error +
155+ ", stderr: " + stderr + ", stdout: " + stdout ) ;
153156 var element = document . getElementById ( "compilation-content" ) ;
154- element . textContent = parseBuildError ( stdout ) ;
157+ element . textContent = parseBuildError ( stdout + "\n" + error ) ;
155158 document . getElementById ( 'tab-compilation-button' ) . click ( ) ;
156159 return ;
157160 }
@@ -187,13 +190,38 @@ function setCustomTestcaseResults(results) {
187190 }
188191
189192 if ( results . tests [ 0 ] . status !== "Skipped" ) {
190- console . error ( "Expected custom test status to be skipped, got " +
193+ console . error ( "Expected custom test status to be ' skipped' , got " +
191194 results . tests [ 0 ] . status ) ;
192195 }
193196
197+ console . log ( "Setting custom testcase results: " + JSON . stringify ( results ) ) ;
198+
194199 document . getElementById ( 'testcase-stdout' ) . textContent = results . stdout ;
195200 document . getElementById ( 'testcase-output' ) . textContent =
196201 results . tests [ 0 ] . actual ;
202+
203+ run ( setExpectedTestcaseResults , directoryManager . getCustomTestcaseName ( ) ,
204+ true ) ;
205+ }
206+
207+ function setExpectedTestcaseResults ( expected ) {
208+ if ( ! validateResults ( expected ) ) {
209+ return ;
210+ }
211+
212+ if ( expected . tests . length !== 1 ) {
213+ console . error ( "Expected 1 test results, got " +
214+ expected . tests . length ) ;
215+ return ;
216+ }
217+
218+ if ( expected . tests [ 0 ] . status !== "Skipped" ) {
219+ console . error ( "Expected test status to be 'skipped', got " +
220+ expected . tests [ 0 ] . status ) ;
221+ }
222+
223+ document . getElementById ( 'expected-output' ) . textContent =
224+ expected . tests [ 0 ] . actual ;
197225}
198226
199227function runCustomTestcase ( ) {
@@ -214,7 +242,6 @@ function runCustomTestcase() {
214242 }
215243
216244 console . log ( 'Custom testcase written to ' + customTestcaseFilename ) ;
217- console . log ( 'Testcase input: ' + input ) ;
218245
219246 run ( setCustomTestcaseResults , directoryManager . getCustomTestcaseName ( ) ) ;
220247}
0 commit comments