예제 #1
0
        public void DeepEquals_NoStores()
        {
            var serverA = new SymbolServer();
            var serverB = new SymbolServer();

            Assert.True(serverA.DeepEquals(serverB));
            Assert.True(serverB.DeepEquals(serverA));
        }
예제 #2
0
        public void DeepEquals_IsCacheMismatch()
        {
            var serverA = new SymbolServer();
            var serverB = new SymbolServer(isCache: true);

            Assert.False(serverA.DeepEquals(serverB));
            Assert.False(serverB.DeepEquals(serverA));
        }
        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);
        }
예제 #4
0
        public override void SetUp()
        {
            base.SetUp();

            storeA       = new StructuredSymbolStore(fakeFileSystem, STORE_A_PATH);
            storeB       = new StructuredSymbolStore(fakeFileSystem, STORE_B_PATH);
            storeC       = new StructuredSymbolStore(fakeFileSystem, STORE_C_PATH);
            invalidStore = new StructuredSymbolStore(fakeFileSystem, INVALID_PATH);
            symbolServer = new SymbolServer();
        }
        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);
        }
예제 #7
0
        public void GetAllStores()
        {
            symbolServer.AddStore(storeA);
            var subServer = new SymbolServer();

            subServer.AddStore(storeB);
            symbolServer.AddStore(subServer);

            CollectionAssert.AreEqual(new[] { symbolServer, storeA, subServer, storeB },
                                      symbolServer.GetAllStores());
        }
        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 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);
        }
예제 #10
0
        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);
        }
예제 #11
0
        public void DeepEquals_StoresNotEqual()
        {
            var serverA = new SymbolServer();

            serverA.AddStore(storeA);
            var serverB = new SymbolServer();

            serverB.AddStore(storeB);

            Assert.False(serverA.DeepEquals(serverB));
            Assert.False(serverB.DeepEquals(serverA));
        }
예제 #12
0
        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);
        }
예제 #13
0
        public void DeepEquals_DifferentLengths()
        {
            var serverA = new SymbolServer();

            serverA.AddStore(storeA);
            serverA.AddStore(storeB);
            var serverB = new SymbolServer();

            serverB.AddStore(storeA);

            Assert.False(serverA.DeepEquals(serverB));
            Assert.False(serverB.DeepEquals(serverA));
        }
예제 #14
0
        public void DeepEquals_WithStores()
        {
            var serverA = new SymbolServer();

            serverA.AddStore(storeA);
            serverA.AddStore(storeB);
            var serverB = new SymbolServer();

            serverB.AddStore(storeA);
            serverB.AddStore(storeB);

            Assert.True(serverA.DeepEquals(serverB));
            Assert.True(serverB.DeepEquals(serverA));
        }
예제 #15
0
        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);
        }
예제 #16
0
        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);
        }
예제 #17
0
        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());
        }
예제 #18
0
        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);
        }
예제 #19
0
        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());
        }
예제 #20
0
        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);
        }
예제 #21
0
        public void Constructor_IsCache(bool isCache)
        {
            var store = new SymbolServer(isCache);

            Assert.AreEqual(isCache, store.IsCache);
        }