Add `WaitForStorageContractFinished` for marketplace tests

This commit is contained in:
Eric 2023-09-14 14:46:03 +10:00
parent ef2c18c599
commit f2ad9e1198
No known key found for this signature in database
2 changed files with 22 additions and 1 deletions

View File

@ -187,6 +187,18 @@ namespace DistTestCore.Marketplace
WaitForStorageContractState(timeout, "finished"); WaitForStorageContractState(timeout, "finished");
} }
public void WaitForStorageContractFinished(ByteSize contractFileSize)
{
if (!contractStartUtc.HasValue)
{
WaitForStorageContractStarted(contractFileSize.ToTimeSpan());
}
var gracePeriod = TimeSpan.FromSeconds(10);
var currentContractTime = DateTime.UtcNow - contractStartUtc!.Value;
var timeout = (ContractDuration - currentContractTime) + gracePeriod;
WaitForStorageContractState(timeout, "finished");
}
/// <summary> /// <summary>
/// Wait for contract to start. Max timeout depends on contract filesize. Allows more time for larger files. /// Wait for contract to start. Max timeout depends on contract filesize. Allows more time for larger files.
/// </summary> /// </summary>

View File

@ -10,6 +10,8 @@
public long SizeInBytes { get; } public long SizeInBytes { get; }
public const double DefaultSecondsPerMB = 10.0;
public long ToMB() public long ToMB()
{ {
return SizeInBytes / (1024 * 1024); return SizeInBytes / (1024 * 1024);
@ -36,6 +38,12 @@
{ {
return Formatter.FormatByteSize(SizeInBytes); return Formatter.FormatByteSize(SizeInBytes);
} }
public TimeSpan ToTimeSpan(double secsPerMB = DefaultSecondsPerMB)
{
var filesizeInMb = SizeInBytes / (1024 * 1024);
return TimeSpan.FromSeconds(filesizeInMb * secsPerMB);
}
} }
public static class ByteSizeIntExtensions public static class ByteSizeIntExtensions
@ -91,5 +99,6 @@
{ {
return Convert.ToInt64(i).TB(); return Convert.ToInt64(i).TB();
} }
} }
} }