public void RecordMetrics() { var sequence = new SymbolStoreSequence(Substitute.For <IBinaryFileUtil>()); for (int i = 0; i < 4; ++i) { sequence.AddStore(Substitute.For <IFlatSymbolStore>()); } for (int i = 0; i < 3; ++i) { sequence.AddStore(Substitute.For <IStructuredSymbolStore>()); } for (int i = 0; i < 2; ++i) { sequence.AddStore(Substitute.For <IHttpSymbolStore>()); } sequence.AddStore(Substitute.For <IStadiaSymbolStore>()); mockSymbolPathParser = Substitute.For <SymbolPathParser>(); mockSymbolPathParser.Parse(SEARCH_PATHS).Returns(sequence); moduleFileFinder = new ModuleFileFinder(mockSymbolPathParser); var data = new LoadSymbolData(); moduleFileFinder.SetSearchPaths(SEARCH_PATHS); moduleFileFinder.RecordMetrics(data); Assert.AreEqual(4, data.FlatSymbolStoresCount); Assert.AreEqual(3, data.StructuredSymbolStoresCount); Assert.AreEqual(2, data.HttpSymbolStoresCount); Assert.AreEqual(1, data.StadiaSymbolStoresCount); }
public void Parse_EmptyPathElements() { var store = pathParser.Parse(";;"); var expected = new SymbolStoreSequence(fakeBinaryFileUtil); AssertEqualStores(expected, store); }
public void Parse_StadiaStore_NoDefaultCache() { var store = pathParser.Parse(STADIA_STORE); var expected = new SymbolStoreSequence(fakeBinaryFileUtil); AssertEqualStores(expected, store); }
public void DeepEquals_NoStores() { var sequenceA = new SymbolStoreSequence(fakeBinaryFileUtil); var sequenceB = new SymbolStoreSequence(fakeBinaryFileUtil); Assert.True(sequenceA.DeepEquals(sequenceB)); Assert.True(sequenceB.DeepEquals(sequenceA)); }
public void Parse_StructuredStore() { var store = pathParser.Parse(INITIALIZED_STORE); var expected = new SymbolStoreSequence(fakeBinaryFileUtil); expected.AddStore(new StructuredSymbolStore(fakeFileSystem, INITIALIZED_STORE)); AssertEqualStores(expected, store); }
public void Parse_FlatStore() { var store = pathParser.Parse(FLAT_STORE); var expected = new SymbolStoreSequence(fakeBinaryFileUtil); expected.AddStore(new FlatSymbolStore(fakeFileSystem, fakeBinaryFileUtil, FLAT_STORE)); AssertEqualStores(expected, store); }
public void Parse_NoDefaultCache() { var store = pathParser.Parse($"cache*"); var expected = new SymbolStoreSequence(fakeBinaryFileUtil); var cache = new SymbolServer(isCache: true); expected.AddStore(cache); AssertEqualStores(expected, store); }
public void Parse_NoDefaultStore() { var store = pathParser.Parse($"srv*"); var expected = new SymbolStoreSequence(fakeBinaryFileUtil); var server = new SymbolServer(isCache: false); expected.AddStore(server); AssertEqualStores(expected, store); }
public void Parse_EmptySymSrv() { var store = pathParser.Parse("symsrv*symsrv.dll*"); var expected = new SymbolStoreSequence(fakeBinaryFileUtil); var server = new SymbolServer(isCache: false); expected.AddStore(server); AssertEqualStores(expected, store); }
public override void SetUp() { base.SetUp(); storeSequence = new SymbolStoreSequence(fakeBinaryFileUtil); cacheA = new StructuredSymbolStore(fakeFileSystem, CACHE_A_PATH, isCache: true); cacheB = new StructuredSymbolStore(fakeFileSystem, CACHE_B_PATH, isCache: true); storeA = new StructuredSymbolStore(fakeFileSystem, STORE_A_PATH); storeB = new StructuredSymbolStore(fakeFileSystem, STORE_B_PATH); }
public void Parse_Cache() { var store = pathParser.Parse($"cache*{CACHE_A}"); var expected = new SymbolStoreSequence(fakeBinaryFileUtil); var cache = new SymbolServer(isCache: true); cache.AddStore(new StructuredSymbolStore(fakeFileSystem, CACHE_A)); expected.AddStore(cache); AssertEqualStores(expected, store); }
public void DeepEquals_StoresNotEquals() { var sequenceA = new SymbolStoreSequence(fakeBinaryFileUtil); sequenceA.AddStore(storeA); var sequenceB = new SymbolStoreSequence(fakeBinaryFileUtil); sequenceB.AddStore(storeB); Assert.False(sequenceA.DeepEquals(sequenceB)); Assert.False(sequenceB.DeepEquals(sequenceA)); }
public void Parse_HttpStore_Excluded() { pathParser = new SymbolPathParser(fakeFileSystem, fakeBinaryFileUtil, httpClient, crashReportClient, null, null, new string[] { "example.com" }); var store = pathParser.Parse(HTTP_STORE); var expected = new SymbolStoreSequence(fakeBinaryFileUtil); AssertEqualStores(expected, store); }
public void Parse_SrvWithStadiaStore() { var store = pathParser.Parse($"srv*{STORE_A}*{STADIA_STORE}"); // Stadia store not supported in symsrv configuration. var expected = new SymbolStoreSequence(fakeBinaryFileUtil); var server = new SymbolServer(isCache: false); server.AddStore(new StructuredSymbolStore(fakeFileSystem, STORE_A)); expected.AddStore(server); AssertEqualStores(expected, store); }
public void Parse_SymSrv() { var store = pathParser.Parse($"symsrv*symsrv.dll*{STORE_A}*{STORE_B}"); var expected = new SymbolStoreSequence(fakeBinaryFileUtil); var server = new SymbolServer(isCache: false); server.AddStore(new StructuredSymbolStore(fakeFileSystem, STORE_A)); server.AddStore(new StructuredSymbolStore(fakeFileSystem, STORE_B)); expected.AddStore(server); AssertEqualStores(expected, store); }
public void Parse_SrvWithHttpStore() { var store = pathParser.Parse($"srv*{STORE_A}*{HTTP_STORE}"); var expected = new SymbolStoreSequence(fakeBinaryFileUtil); var server = new SymbolServer(isCache: false); server.AddStore(new StructuredSymbolStore(fakeFileSystem, STORE_A)); server.AddStore(new HttpSymbolStore(fakeFileSystem, httpClient, HTTP_STORE)); expected.AddStore(server); AssertEqualStores(expected, store); }
public void GetAllStores() { storeSequence.AddStore(storeA); storeSequence.AddStore(cacheA); var subStoreSequence = new SymbolStoreSequence(fakeBinaryFileUtil); subStoreSequence.AddStore(storeB); storeSequence.AddStore(subStoreSequence); CollectionAssert.AreEqual( new[] { storeSequence, storeA, cacheA, subStoreSequence, storeB }, storeSequence.GetAllStores()); }
public void Parse_UnsupportedSymSrv() { var logSpy = new LogSpy(); logSpy.Attach(); var store = pathParser.Parse("symsrv*unsupported.dll*"); var expected = new SymbolStoreSequence(fakeBinaryFileUtil); AssertEqualStores(expected, store); StringAssert.Contains(Strings.UnsupportedSymbolServer("unsupported.dll"), logSpy.GetOutput()); }
public void Parse_DownstreamHttpStore() { var store = pathParser.Parse($"srv*{STORE_A}*{HTTP_STORE}*{STORE_B}"); var expected = new SymbolStoreSequence(fakeBinaryFileUtil); var server = new SymbolServer(isCache: false); server.AddStore(new StructuredSymbolStore(fakeFileSystem, STORE_A)); server.AddStore(new HttpSymbolStore(fakeFileSystem, httpClient, HTTP_STORE)); server.AddStore(new StructuredSymbolStore(fakeFileSystem, STORE_B)); expected.AddStore(server); AssertEqualStores(expected, store); StringAssert.Contains("Warning", logSpy.GetOutput()); }
public void Parse_DefaultCache() { pathParser = new SymbolPathParser(fakeFileSystem, fakeBinaryFileUtil, httpClient, crashReportClient, DEFAULT_CACHE, null); var store = pathParser.Parse($"cache*"); var expected = new SymbolStoreSequence(fakeBinaryFileUtil); var cache = new SymbolServer(isCache: true); cache.AddStore(new StructuredSymbolStore(fakeFileSystem, DEFAULT_CACHE)); expected.AddStore(cache); AssertEqualStores(expected, store); }
public void Parse_DefaultStore() { pathParser = new SymbolPathParser(fakeFileSystem, fakeBinaryFileUtil, httpClient, crashReportClient, null, DEFAULT_STORE); var store = pathParser.Parse($"srv*"); var expected = new SymbolStoreSequence(fakeBinaryFileUtil); var server = new SymbolServer(isCache: false); server.AddStore(new StructuredSymbolStore(fakeFileSystem, DEFAULT_STORE)); expected.AddStore(server); AssertEqualStores(expected, store); }
public void Parse_StadiaStore_ExplicitCache() { var store = pathParser.Parse($"cache*{CACHE_A};{STADIA_STORE}"); var expected = new SymbolStoreSequence(fakeBinaryFileUtil); var cache = new SymbolServer(isCache: true); cache.AddStore(new StructuredSymbolStore(fakeFileSystem, CACHE_A)); expected.AddStore(cache); var server = new SymbolServer(isCache: false); server.AddStore(new StadiaSymbolStore(fakeFileSystem, httpClient, crashReportClient)); expected.AddStore(server); AssertEqualStores(expected, store); }
public void Parse_CacheWithHttpStore() { pathParser = new SymbolPathParser(fakeFileSystem, fakeBinaryFileUtil, httpClient, crashReportClient, DEFAULT_CACHE, null); var store = pathParser.Parse($"cache*{HTTP_STORE}"); var expected = new SymbolStoreSequence(fakeBinaryFileUtil); var cache = new SymbolServer(isCache: true); cache.AddStore(new StructuredSymbolStore(fakeFileSystem, DEFAULT_CACHE)); cache.AddStore(new HttpSymbolStore(fakeFileSystem, httpClient, HTTP_STORE)); expected.AddStore(cache); AssertEqualStores(expected, store); StringAssert.Contains("Warning", logSpy.GetOutput()); }
public void Parse_MultipleElements() { var store = pathParser.Parse( $"cache*{CACHE_A};{FLAT_STORE};{INITIALIZED_STORE};srv*{STORE_A}*{STORE_B}"); var expected = new SymbolStoreSequence(fakeBinaryFileUtil); var cache = new SymbolServer(isCache: true); cache.AddStore(new StructuredSymbolStore(fakeFileSystem, CACHE_A)); expected.AddStore(cache); expected.AddStore(new FlatSymbolStore(fakeFileSystem, fakeBinaryFileUtil, FLAT_STORE)); expected.AddStore(new StructuredSymbolStore(fakeFileSystem, INITIALIZED_STORE)); var server = new SymbolServer(isCache: false); server.AddStore(new StructuredSymbolStore(fakeFileSystem, STORE_A)); server.AddStore(new StructuredSymbolStore(fakeFileSystem, STORE_B)); expected.AddStore(server); AssertEqualStores(expected, store); }