@@ -27,6 +27,7 @@ import {
2727 resolveVariables ,
2828 showOpenRunSettingsErrorWindow ,
2929 TextHandler ,
30+ type WriteMode ,
3031} from "../utils/vscode" ;
3132import { getLogger } from "../utils/logging" ;
3233import {
@@ -654,19 +655,20 @@ export default class extends BaseViewProvider<typeof ProviderMessageSchema, Webv
654655
655656 const resendTruncatedData = (
656657 property : "stdin" | "stderr" | "stdout" | "acceptedStdout" | "interactorSecret" ,
658+ mode : WriteMode ,
657659 handler : TextHandler
658660 ) => {
659661 const data = handler . data ;
660662 super . _postMessage ( { type : "SET" , uuid, property, value : "" } ) ; // clear out old data
661663 handler . reset ( ) ;
662- handler . write ( data , "final" ) ;
664+ handler . write ( data , mode ) ;
663665 } ;
664666
665- resendTruncatedData ( "stdin" , testcase . stdin ) ;
666- resendTruncatedData ( "stderr" , testcase . stderr ) ;
667- resendTruncatedData ( "stdout" , testcase . stdout ) ;
668- resendTruncatedData ( "acceptedStdout" , testcase . acceptedStdout ) ;
669- resendTruncatedData ( "interactorSecret" , testcase . interactorSecret ) ;
667+ resendTruncatedData ( "stdin" , "force" , testcase . stdin ) ;
668+ resendTruncatedData ( "stderr" , "force" , testcase . stderr ) ;
669+ resendTruncatedData ( "stdout" , "force" , testcase . stdout ) ;
670+ resendTruncatedData ( "acceptedStdout" , "final" , testcase . acceptedStdout ) ;
671+ resendTruncatedData ( "interactorSecret" , "force" , testcase . interactorSecret ) ;
670672 }
671673
672674 protected override _switchToFile ( file : string ) {
@@ -1076,17 +1078,15 @@ export default class extends BaseViewProvider<typeof ProviderMessageSchema, Webv
10761078 file
10771079 ) ;
10781080
1079- newTestcase . stdin . write ( testcase ?. stdin ?? "" , testcase ? "final " : "batch" ) ;
1080- newTestcase . stderr . write ( testcase ?. stderr ?? "" , testcase ? "final " : "batch" ) ;
1081- newTestcase . stdout . write ( testcase ?. stdout ?? "" , testcase ? "final " : "batch" ) ;
1081+ newTestcase . stdin . write ( testcase ?. stdin ?? "" , testcase ? "force " : "batch" ) ;
1082+ newTestcase . stderr . write ( testcase ?. stderr ?? "" , testcase ? "force " : "batch" ) ;
1083+ newTestcase . stdout . write ( testcase ?. stdout ?? "" , testcase ? "force " : "batch" ) ;
10821084 newTestcase . acceptedStdout . write ( testcase ?. acceptedStdout ?? "" , "final" ) ; // force endline for empty answer comparison
10831085 // We treat interactor secrets as final because there are problems where
10841086 // the solution queries the interactor without reading any input first. The
10851087 // best assumption is to send the complete secret at the start.
10861088 newTestcase . interactorSecret . write ( testcase ?. interactorSecret ?? "" , "final" ) ;
10871089
1088- this . _syncTestcaseState ( newTestcase ) ;
1089-
10901090 return newTestcase ;
10911091 }
10921092
0 commit comments