Fixes for the DiskSlabAllocator.cs, ListValidator.cs, and the constantly breaking URL test.

This commit is contained in:
Timothy Baldridge 2020-07-19 17:09:59 -06:00
parent c3b11e788e
commit 7bc1bcb861
7 changed files with 9 additions and 25 deletions

View File

@ -23,7 +23,7 @@ namespace Wabbajack.Common
{
_file = new TempFile();
_fileStream = _file.File.Open(FileMode.Create, FileAccess.ReadWrite);
_size = size;
_size = Math.Max(size, 1024);
_mmap = MemoryMappedFile.CreateFromFile(_fileStream, null, size, MemoryMappedFileAccess.ReadWrite, HandleInheritability.None, false);
}

View File

@ -261,6 +261,7 @@ namespace Wabbajack.Lib
foreach (var bsa in bsas)
{
Status($"Building {bsa.To}");
Info($"Building {bsa.To}");
var sourceDir = OutputFolder.Combine(Consts.BSACreationDir, bsa.TempID);
var bsaSize = bsa.FileStates.Select(state => sourceDir.Combine(state.Path).Size).Sum();

View File

@ -167,6 +167,7 @@ namespace Wabbajack.BuildServer.Controllers
if (string.IsNullOrWhiteSpace(itm.Archive.Name))
itm.Archive.Name = itm.Archive.State.PrimaryKeyString;
});
results.Archives = results.Archives.OrderBy(a => a.Name).ToList();
return results;
}

View File

@ -76,7 +76,9 @@ namespace Wabbajack.BuildServer.Controllers
}
catch (Exception ex)
{
// ignore
_logger.LogInformation(
$"Refusing to upgrade ({request.OldArchive.State.PrimaryKeyString}), due to upgrade failure");
return NotFound("File is Valid");
}
var oldDownload = await _sql.GetOrEnqueueArchive(request.OldArchive);

View File

@ -164,15 +164,7 @@ namespace Wabbajack.Server.DataLayer
@"SELECT p.SrcId, p.DestId, p.PatchSize, p.Finished, p.IsFailed, p.FailMessage
FROM dbo.Patches p
LEFT JOIN dbo.ArchiveDownloads a ON p.SrcId = a.Id
LEFT JOIN dbo.ModListArchives m ON m.PrimaryKeyString = a.PrimaryKeyString AND m.Hash = a.Hash
WHERE m.PrimaryKeyString is null
UNION
SELECT p.SrcId, p.DestId, p.PatchSize, p.Finished, p.IsFailed, p.FailMessage
FROM dbo.Patches p
LEFT JOIN dbo.ArchiveDownloads a ON p.SrcId = a.Id
LEFT JOIN dbo.ModListArchives m ON m.PrimaryKeyString = a.PrimaryKeyString AND m.Hash = a.Hash
WHERE m.PrimaryKeyString is not null
AND (p.LastUsed < DATEADD(d, -7, getutcdate()) OR p.LastUsed is null and p.Finished < DATEADD(d, -7, getutcdate()))");
WHERE a.Hash not in (SELECT Hash FROM dbo.ModListArchives)");
return await AsPatches(patches);
}

View File

@ -210,6 +210,8 @@ namespace Wabbajack.Server.Services
return (archive, ArchiveStatus.Valid);
case ModDBDownloader.State _:
return (archive, ArchiveStatus.Valid);
case MediaFireDownloader.State _:
return (archive, ArchiveStatus.Valid);
default:
{
if (data.ArchiveStatus.TryGetValue((archive.State.PrimaryKeyString, archive.Hash),

View File

@ -16,20 +16,6 @@ namespace Wabbajack.Test
var modlists = await ModlistMetadata.LoadFromGithub();
Assert.True(modlists.Count > 0);
}
[Fact]
public async Task VerifyLogoURLs()
{
var modlists = await ModlistMetadata.LoadFromGithub();
foreach (var modlist in modlists.Select(m => m.Links))
{
var logoState = DownloadDispatcher.ResolveArchive(modlist.ImageUri);
Assert.NotNull(logoState);
Assert.True(await logoState.Verify(new Archive(state: null){Size = 0}), $"{modlist.ImageUri} is not valid");
}
}
public ModlistMetadataTests(ITestOutputHelper output) : base(output)
{