Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
            }
        }
Ejemplo n.º 3
0
        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));
            }
        }