@@ -484,6 +484,33 @@ await TestHelpers.Await(() =>
484
484
Assert . Equal ( ScriptHostState . Running , hostManager . State ) ;
485
485
}
486
486
487
+ [ Fact ]
488
+ public async Task RunAndBlock_SelfHost_Succeeds ( )
489
+ {
490
+ var traceWriter = new TestTraceWriter ( TraceLevel . Verbose ) ;
491
+ ScriptHostConfiguration config = new ScriptHostConfiguration ( )
492
+ {
493
+ RootScriptPath = Environment . CurrentDirectory ,
494
+ TraceWriter = traceWriter ,
495
+ IsSelfHost = true
496
+ } ;
497
+
498
+ TraceEvent [ ] traces = null ;
499
+ using ( var manager = new ScriptHostManager ( config , _settingsManager ) )
500
+ {
501
+ var tIgnore = Task . Run ( ( ) => manager . RunAndBlock ( ) ) ;
502
+
503
+ await TestHelpers . Await ( ( ) =>
504
+ {
505
+ traces = traceWriter . GetTraces ( ) . ToArray ( ) ;
506
+ return manager . State == ScriptHostState . Error || traces . Any ( p => p . Message . Contains ( "Job host started" ) ) ;
507
+ } ) ;
508
+
509
+ Assert . Equal ( ScriptHostState . Running , manager . State ) ;
510
+ Assert . Equal ( 0 , traces . Count ( p => p . Level == TraceLevel . Error ) ) ;
511
+ }
512
+ }
513
+
487
514
[ Fact ]
488
515
public void IsHostHealthy_ReturnsExpectedResult ( )
489
516
{
@@ -553,12 +580,13 @@ public async Task EmptyHost_StartsSuccessfully()
553
580
} ;
554
581
File . WriteAllText ( Path . Combine ( functionDir , ScriptConstants . HostMetadataFileName ) , hostConfig . ToString ( ) ) ;
555
582
583
+ var testTraceWriter = new TestTraceWriter ( TraceLevel . Info ) ;
556
584
ScriptHostConfiguration config = new ScriptHostConfiguration ( )
557
585
{
558
586
RootScriptPath = functionDir ,
559
587
RootLogPath = logDir ,
560
588
FileLoggingMode = FileLoggingMode . Always ,
561
- TraceWriter = new TestTraceWriter ( TraceLevel . Info )
589
+ TraceWriter = testTraceWriter
562
590
} ;
563
591
564
592
var eventManagerMock = new Mock < IScriptEventManager > ( ) ;
@@ -577,15 +605,11 @@ public async Task EmptyHost_StartsSuccessfully()
577
605
hostManager . Stop ( ) ;
578
606
Assert . Equal ( ScriptHostState . Default , hostManager . State ) ;
579
607
580
- await Task . Delay ( FileTraceWriter . LogFlushIntervalMs ) ;
581
-
582
- string hostLogFilePath = Directory . EnumerateFiles ( Path . Combine ( logDir , "Host" ) ) . Single ( ) ;
583
- string hostLogs = File . ReadAllText ( hostLogFilePath ) ;
584
-
585
- Assert . Contains ( "Generating 0 job function(s)" , hostLogs ) ;
586
- Assert . Contains ( "No job functions found." , hostLogs ) ;
587
- Assert . Contains ( "Job host started" , hostLogs ) ;
588
- Assert . Contains ( "Job host stopped" , hostLogs ) ;
608
+ var logs = testTraceWriter . GetTraces ( ) . Select ( p => p . Message ) . ToArray ( ) ;
609
+ Assert . True ( logs . Any ( p => p == "Generating 0 job function(s)" ) ) ;
610
+ Assert . True ( logs . Any ( p => p . StartsWith ( "No job functions found." ) ) ) ;
611
+ Assert . True ( logs . Any ( p => p == "Job host started" ) ) ;
612
+ Assert . True ( logs . Any ( p => p == "Job host stopped" ) ) ;
589
613
}
590
614
591
615
[ Fact ]
0 commit comments