@@ -29,21 +29,22 @@ namespace OpenTelemetry.Exporter.Prometheus.Tests
2929{
3030 public sealed class PrometheusCollectionManagerTests
3131 {
32- #if PROMETHEUS_HTTP_LISTENER
33- [ Fact ( Skip = "Might be flaky. Might be a bug. See: https://github.com/open-telemetry/opentelemetry-dotnet/issues/3679" ) ]
34- #else
35- [ Fact ]
32+ [ Theory ]
33+ [ InlineData ( 0 ) ] // disable cache, default value for HttpListener
34+ #if PROMETHEUS_ASPNETCORE
35+ [ InlineData ( 300 ) ] // default value for AspNetCore, no possibility to set on HttpListener
3636#endif
37- public async Task EnterExitCollectTest ( )
37+ public async Task EnterExitCollectTest ( int scrapeResponseCacheDurationMilliseconds )
3838 {
39+ bool cacheEnabled = scrapeResponseCacheDurationMilliseconds != 0 ;
3940 using var meter = new Meter ( Utils . GetCurrentMethodName ( ) ) ;
4041
4142 using ( var provider = Sdk . CreateMeterProviderBuilder ( )
4243 . AddMeter ( meter . Name )
4344#if PROMETHEUS_HTTP_LISTENER
4445 . AddPrometheusHttpListener ( )
4546#elif PROMETHEUS_ASPNETCORE
46- . AddPrometheusExporter ( )
47+ . AddPrometheusExporter ( x => x . ScrapeResponseCacheDurationMilliseconds = scrapeResponseCacheDurationMilliseconds )
4748#endif
4849 . Build ( ) )
4950 {
@@ -108,9 +109,18 @@ public async Task EnterExitCollectTest()
108109 var response = await task . ConfigureAwait ( false ) ;
109110 try
110111 {
111- Assert . Equal ( 1 , runningCollectCount ) ;
112- Assert . True ( response . FromCache ) ;
113- Assert . Equal ( firstResponse . CollectionResponse . GeneratedAtUtc , response . GeneratedAtUtc ) ;
112+ if ( cacheEnabled )
113+ {
114+ Assert . Equal ( 1 , runningCollectCount ) ;
115+ Assert . True ( response . FromCache ) ;
116+ Assert . Equal ( firstResponse . CollectionResponse . GeneratedAtUtc , response . GeneratedAtUtc ) ;
117+ }
118+ else
119+ {
120+ Assert . Equal ( 2 , runningCollectCount ) ;
121+ Assert . False ( response . FromCache ) ;
122+ Assert . True ( firstResponse . CollectionResponse . GeneratedAtUtc < response . GeneratedAtUtc ) ;
123+ }
114124 }
115125 finally
116126 {
@@ -143,7 +153,7 @@ public async Task EnterExitCollectTest()
143153
144154 await Task . WhenAll ( collectTasks ) . ConfigureAwait ( false ) ;
145155
146- Assert . Equal ( 2 , runningCollectCount ) ;
156+ Assert . Equal ( cacheEnabled ? 2 : 3 , runningCollectCount ) ;
147157 Assert . NotEqual ( firstResponse . ViewPayload , collectTasks [ 0 ] . Result . ViewPayload ) ;
148158 Assert . NotEqual ( firstResponse . CollectionResponse . GeneratedAtUtc , collectTasks [ 0 ] . Result . CollectionResponse . GeneratedAtUtc ) ;
149159
0 commit comments