diff --git a/test/EventStore.Client.Tests.Common/Fixtures/Base/EventStoreTestServer.cs b/test/EventStore.Client.Tests.Common/Fixtures/Base/EventStoreTestServer.cs index fb7e5f601..73d9b53a5 100644 --- a/test/EventStore.Client.Tests.Common/Fixtures/Base/EventStoreTestServer.cs +++ b/test/EventStore.Client.Tests.Common/Fixtures/Base/EventStoreTestServer.cs @@ -1,5 +1,6 @@ using System.Net; using System.Net.Http; +using System.Text.RegularExpressions; using Ductus.FluentDocker.Builders; using Ductus.FluentDocker.Extensions; using Ductus.FluentDocker.Model.Builders; @@ -101,6 +102,7 @@ public ValueTask DisposeAsync() { static Version GetVersion() { const string versionPrefix = "EventStoreDB version"; + var versionRegex = new Regex(@"\d+(\.\d+)*", RegexOptions.Compiled); using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); using var eventstore = new Builder().UseContainer() @@ -111,9 +113,11 @@ static Version GetVersion() { using var log = eventstore.Logs(true, cts.Token); foreach (var line in log.ReadToEnd()) - if (line.StartsWith(versionPrefix) && - Version.TryParse(line[(versionPrefix.Length + 1)..].Split(' ')[0], out var version)) - return version; + if (line.StartsWith(versionPrefix)) { + var versionMatch = versionRegex.Match(line); + if (versionMatch.Success && Version.TryParse(versionMatch.Value, out var version)) + return version; + } throw new InvalidOperationException("Could not determine server version."); }