@@ -31,7 +31,6 @@ public ScaleHostEndToEndTests() : base(isSession: false)
31
31
}
32
32
33
33
[ Test ]
34
- [ Ignore ( "Consistently failing in CI; awaiting investigation" ) ]
35
34
[ TestCase ( false ) ]
36
35
[ TestCase ( true ) ]
37
36
public async Task ScaleHostEndToEndTest ( bool tbsEnabled )
@@ -68,9 +67,12 @@ public async Task ScaleHostEndToEndTest(bool tbsEnabled)
68
67
}}
69
68
]}}" ;
70
69
71
- IHost host = new HostBuilder ( ) . ConfigureServices ( services => services . AddAzureClientsCore ( ) ) . Build ( ) ;
72
- AzureComponentFactory defaultAzureComponentFactory = host . Services . GetService < AzureComponentFactory > ( ) ;
73
- TestComponentFactory factoryWrapper = new TestComponentFactory ( defaultAzureComponentFactory , ServiceBusTestEnvironment . Instance . Credential ) ;
70
+ TestComponentFactory factoryWrapper = null ;
71
+ using ( IHost host = new HostBuilder ( ) . ConfigureServices ( services => services . AddAzureClientsCore ( ) ) . Build ( ) )
72
+ {
73
+ AzureComponentFactory defaultAzureComponentFactory = host . Services . GetService < AzureComponentFactory > ( ) ;
74
+ factoryWrapper = new TestComponentFactory ( defaultAzureComponentFactory , ServiceBusTestEnvironment . Instance . Credential ) ;
75
+ }
74
76
75
77
string hostId = "test-host" ;
76
78
var loggerProvider = new TestLoggerProvider ( ) ;
@@ -125,60 +127,63 @@ public async Task ScaleHostEndToEndTest(bool tbsEnabled)
125
127
scaleOptions . ScaleMetricsSampleInterval = TimeSpan . FromSeconds ( 1 ) ;
126
128
} ) ;
127
129
128
- IHost scaleHost = hostBuilder . Build ( ) ;
129
- await scaleHost . StartAsync ( ) ;
130
-
131
- // add some messages to the queue
132
- await WriteQueueMessage ( "test" ) ;
133
- await WriteQueueMessage ( "test" ) ;
134
- await WriteQueueMessage ( "test" , queueName : SecondQueueScope . QueueName ) ;
135
- await WriteQueueMessage ( "test" , queueName : SecondQueueScope . QueueName ) ;
136
- await WriteQueueMessage ( "test" , queueName : SecondQueueScope . QueueName ) ;
137
-
138
- await TestHelpers . Await ( async ( ) =>
130
+ using ( IHost scaleHost = hostBuilder . Build ( ) )
139
131
{
140
- IScaleStatusProvider scaleManager = scaleHost . Services . GetService < IScaleStatusProvider > ( ) ;
132
+ await scaleHost . StartAsync ( ) ;
141
133
142
- var scaleStatus = await scaleManager . GetScaleStatusAsync ( new ScaleStatusContext ( ) ) ;
134
+ // add some messages to the queue
135
+ await WriteQueueMessage ( "test" ) ;
136
+ await WriteQueueMessage ( "test" ) ;
137
+ await WriteQueueMessage ( "test" , queueName : SecondQueueScope . QueueName ) ;
138
+ await WriteQueueMessage ( "test" , queueName : SecondQueueScope . QueueName ) ;
139
+ await WriteQueueMessage ( "test" , queueName : SecondQueueScope . QueueName ) ;
143
140
144
- bool scaledOut = false ;
145
- if ( ! tbsEnabled )
141
+ await TestHelpers . Await ( async ( ) =>
146
142
{
147
- scaledOut = scaleStatus . Vote == ScaleVote . ScaleOut && scaleStatus . TargetWorkerCount == null
148
- && scaleStatus . FunctionScaleStatuses [ Function1Name ] . Vote == ScaleVote . ScaleOut
149
- && scaleStatus . FunctionScaleStatuses [ Function2Name ] . Vote == ScaleVote . ScaleOut ;
143
+ IScaleStatusProvider scaleManager = scaleHost . Services . GetService < IScaleStatusProvider > ( ) ;
150
144
151
- if ( scaledOut )
145
+ var scaleStatus = await scaleManager . GetScaleStatusAsync ( new ScaleStatusContext ( ) ) ;
146
+
147
+ bool scaledOut = false ;
148
+ if ( ! tbsEnabled )
152
149
{
153
- var logMessages = loggerProvider . GetAllLogMessages ( ) . Select ( p => p . FormattedMessage ) . ToArray ( ) ;
154
- Assert . Contains ( "2 scale monitors to sample" , logMessages ) ;
150
+ scaledOut = scaleStatus . Vote == ScaleVote . ScaleOut && scaleStatus . TargetWorkerCount == null
151
+ && scaleStatus . FunctionScaleStatuses [ Function1Name ] . Vote == ScaleVote . ScaleOut
152
+ && scaleStatus . FunctionScaleStatuses [ Function2Name ] . Vote == ScaleVote . ScaleOut ;
153
+
154
+ if ( scaledOut )
155
+ {
156
+ var logMessages = loggerProvider . GetAllLogMessages ( ) . Select ( p => p . FormattedMessage ) . ToArray ( ) ;
157
+ Assert . Contains ( "2 scale monitors to sample" , logMessages ) ;
158
+ }
155
159
}
156
- }
157
- else
158
- {
159
- scaledOut = scaleStatus . Vote == ScaleVote . ScaleOut && scaleStatus . TargetWorkerCount == 3
160
- && scaleStatus . FunctionTargetScalerResults [ Function1Name ] . TargetWorkerCount == 2
161
- && scaleStatus . FunctionTargetScalerResults [ Function2Name ] . TargetWorkerCount == 3 ;
162
-
163
- if ( scaledOut )
160
+ else
164
161
{
165
- var logMessages = loggerProvider . GetAllLogMessages ( ) . Select ( p => p . FormattedMessage ) . ToArray ( ) ;
166
- Assert . Contains ( "2 target scalers to sample" , logMessages ) ;
162
+ scaledOut = scaleStatus . Vote == ScaleVote . ScaleOut && scaleStatus . TargetWorkerCount == 3
163
+ && scaleStatus . FunctionTargetScalerResults [ Function1Name ] . TargetWorkerCount == 2
164
+ && scaleStatus . FunctionTargetScalerResults [ Function2Name ] . TargetWorkerCount == 3 ;
165
+
166
+ if ( scaledOut )
167
+ {
168
+ var logMessages = loggerProvider . GetAllLogMessages ( ) . Select ( p => p . FormattedMessage ) . ToArray ( ) ;
169
+ Assert . Contains ( "2 target scalers to sample" , logMessages ) ;
170
+ }
167
171
}
168
- }
169
172
170
- if ( scaledOut )
171
- {
172
- var logMessages = loggerProvider . GetAllLogMessages ( ) . Select ( p => p . FormattedMessage ) . ToArray ( ) ;
173
- Assert . IsNotEmpty ( logMessages . Where ( x => x . StartsWith ( "Runtime scale monitoring is enabled." ) ) ) ;
174
- if ( ! tbsEnabled )
173
+ if ( scaledOut )
175
174
{
176
- Assert . Contains ( "Scaling out based on votes" , logMessages ) ;
175
+ var logMessages = loggerProvider . GetAllLogMessages ( ) . Select ( p => p . FormattedMessage ) . ToArray ( ) ;
176
+ Assert . IsNotEmpty ( logMessages . Where ( x => x . StartsWith ( "Runtime scale monitoring is enabled." ) ) ) ;
177
+ if ( ! tbsEnabled )
178
+ {
179
+ Assert . Contains ( "Scaling out based on votes" , logMessages ) ;
180
+ }
177
181
}
178
- }
179
182
180
- return scaledOut ;
181
- } , pollingInterval : 2000 , timeout : 180000 , throwWhenDebugging : true ) ;
183
+ return scaledOut ;
184
+ } , pollingInterval : 2000 , timeout : 180000 , throwWhenDebugging : true ) ;
185
+ await scaleHost . StopAsync ( ) ;
186
+ }
182
187
}
183
188
}
184
189
}
0 commit comments