public void TwoModulesInIndexCorrect() { TestDumpFile dumpFile = CreateValidDumpFile(); _fileSystem.AddFile(dumpPath, new MockFileData(dumpFile.Bytes)); DumpReadResult dump = _provider.GetModules(dumpPath); Assert.That(dump.Warning, Is.EqualTo(DumpReadWarning.None)); Assert.That(dump.Modules.Count(), Is.EqualTo(2)); Assert.That(dump.Modules.ElementAt(0).Path, Is.EqualTo(expectedFileName)); Assert.That(dump.Modules.ElementAt(0).Id, Is.EqualTo(TestData.expectedId)); Assert.That(dump.Modules.ElementAt(1).Path, Is.EqualTo(anotherExpectedFileName)); Assert.That(dump.Modules.ElementAt(1).Id, Is.EqualTo(TestData.anotherExpectedId)); }
public void TruncatedFileIndexReturnsEmptyModules() { TestDumpFile dumpFile = CreateValidDumpFile(); // If the file is truncated before the end of the NtFile note segment, we should only // get empty module list back. for (ulong i = 0; i < dumpFile.NoteNtFileEnd; i += 10) { byte[] truncatedDumpBytes = dumpFile.Bytes.Take((int)i).ToArray(); _fileSystem.AddFile(dumpPath, new MockFileData(truncatedDumpBytes)); DumpReadResult dump = _provider.GetModules(dumpPath); Assert.That(dump.Modules.Count(), Is.EqualTo(0)); Assert.That(dump.Warning, Is.AnyOf(DumpReadWarning.FileIsTruncated, DumpReadWarning.ElfHeaderIsCorrupted)); } }
public void TruncatedFileNotInModules() { TestDumpFile dumpFile = CreateValidDumpFile(); // If the embedded module file is truncated after the NtFile note but before the end of // the build ID of the second file, we should only get back the non-truncated module. for (int i = (int)dumpFile.NoteNtFileEnd; i < dumpFile.Bytes.Length; i += 10) { byte[] truncatedDumpBytes = dumpFile.Bytes.Take(i).ToArray(); _fileSystem.AddFile(dumpPath, new MockFileData(truncatedDumpBytes)); DumpReadResult dump = _provider.GetModules(dumpPath); Assert.That(dump.Modules.Count(), Is.EqualTo(1)); Assert.That(dump.Modules.ElementAt(0).Path, Is.EqualTo(expectedFileName)); Assert.That(dump.Modules.ElementAt(0).Id, Is.EqualTo(TestData.expectedId)); Assert.That(dump.Warning, Is.EqualTo(DumpReadWarning.FileIsTruncated)); } }