示例#1
0
        private void updateAllWinQualFieldsInProduct(IErrorIndex index)
        {
            index.Activate();
            int      i                = 0;
            int      productId        = 200;
            DateTime creationDateTime = new DateTime(2010, 04, 04, 22, 9, 0, DateTimeKind.Utc);
            DateTime modifiedDateTime = new DateTime(2010, 05, 05, 23, 10, 0, DateTimeKind.Utc);

            StackHashProduct product1 =
                new StackHashProduct(creationDateTime, modifiedDateTime, null, productId, "TestProduct1", 20 + i, 30 + i, "2.10.02123.1293", 20);

            index.AddProduct(product1);

            i = 1; // Causes the product fields to change (except the product id).
            StackHashProduct product2 =
                new StackHashProduct(creationDateTime.AddDays(1), modifiedDateTime.AddDays(1), null, productId, "TestProduct1", 20 + i + 1, 30 + i + 2, "2.10.02123.1293", 100);

            // Add the same product ID again - should replace all fields.
            index.AddProduct(product2, true);

            // Get the product list.
            StackHashProductCollection products = index.LoadProductList();

            Assert.AreNotEqual(null, products);
            Assert.AreEqual(1, products.Count);

            Assert.AreEqual(0, product2.CompareTo(products[0]));
            Assert.AreEqual(product2.TotalStoredEvents, products[0].TotalStoredEvents);

            StackHashProduct thisProduct = index.GetProduct(product2.Id);

            Assert.AreNotEqual(null, thisProduct);
            Assert.AreEqual(0, product2.CompareTo(thisProduct));
        }
示例#2
0
        private void testAddSameProductTwiceWithReset(bool useCache)
        {
            IErrorIndex index = new XmlErrorIndex(m_TempPath, "Cucku");

            if (useCache)
            {
                index = new ErrorIndexCache(index);
            }


            index.Activate();
            int i                     = 0;
            int productId             = 200;
            StackHashProduct product1 =
                new StackHashProduct(DateTime.Now.AddDays(i), DateTime.Now.AddDays(i), null, productId, "TestProduct1", 20 + i, 30 + i, "2.10.02123.1293");

            index.AddProduct(product1);

            i        = 1; // Causes the product fields to change (except the product id).
            product1 =
                new StackHashProduct(DateTime.Now.AddDays(i), DateTime.Now.AddDays(i), null, productId, "TestProduct1", 20 + i, 30 + i, "2.10.02123.1293");

            // Add the same product ID again - should replace.
            index.AddProduct(product1);

            // Reload.
            index = new XmlErrorIndex(m_TempPath, "Cucku");
            if (useCache)
            {
                index = new ErrorIndexCache(index);
            }

            index.Activate();

            // Get the product list.
            StackHashProductCollection products = index.LoadProductList();

            Assert.AreNotEqual(null, products);
            Assert.AreEqual(1, products.Count);

            Assert.AreEqual(0, product1.CompareTo(products[0]));

            StackHashProduct thisProduct = index.GetProduct(product1.Id);

            Assert.AreNotEqual(null, thisProduct);
            Assert.AreEqual(0, product1.CompareTo(thisProduct));
        }
示例#3
0
        private void checkIndexData(IErrorIndex index)
        {
            int numProducts = 100;
            int cabId       = 12345678;
            int fileId      = 2000;
            int eventId     = 1000;


            for (int productCount = 0; productCount < numProducts; productCount++)
            {
                StackHashProduct retrievedProduct = index.GetProduct(productCount + 10);

                DateTime         creationDateTime = new DateTime(2010, 04, 04, 22, 9, 0, DateTimeKind.Utc);
                DateTime         modifiedDateTime = new DateTime(2010, 05, 05, 23, 10, 0, DateTimeKind.Utc);
                StackHashProduct product1         =
                    new StackHashProduct(creationDateTime, modifiedDateTime, null, (productCount + 10), "TestProduct1", 20, 30, "2.10.02123.1293");

                Assert.AreEqual(0, product1.CompareTo(retrievedProduct));


                StackHashFile file1 = new StackHashFile(creationDateTime, modifiedDateTime, fileId++, creationDateTime, "FileName", "1.2.3.4");

                StackHashFile retrievedFile = index.GetFile(product1, file1.Id);
                Assert.AreEqual(0, file1.CompareTo(retrievedFile));

                StackHashEventSignature eventSignature = new StackHashEventSignature();
                eventSignature.Parameters = new StackHashParameterCollection();
                eventSignature.Parameters.Add(new StackHashParameter(StackHashEventSignature.ParamApplicationName, "AppName"));
                eventSignature.Parameters.Add(new StackHashParameter(StackHashEventSignature.ParamApplicationVersion, "1.2.3.4"));
                eventSignature.Parameters.Add(new StackHashParameter(StackHashEventSignature.ParamApplicationTimeStamp, creationDateTime.ToString()));
                eventSignature.Parameters.Add(new StackHashParameter(StackHashEventSignature.ParamModuleName, "ModuleName"));
                eventSignature.Parameters.Add(new StackHashParameter(StackHashEventSignature.ParamModuleVersion, "2.3.4.5"));
                eventSignature.Parameters.Add(new StackHashParameter(StackHashEventSignature.ParamModuleTimeStamp, creationDateTime.ToString()));
                eventSignature.Parameters.Add(new StackHashParameter(StackHashEventSignature.ParamExceptionCode, "1234"));
                eventSignature.Parameters.Add(new StackHashParameter(StackHashEventSignature.ParamOffset, "0x1234"));
                eventSignature.InterpretParameters();

                StackHashEvent thisEvent = new StackHashEvent(creationDateTime, modifiedDateTime, "CLR20", eventId++, eventSignature, 1, file1.Id);

                StackHashEvent retrievedEvent = index.GetEvent(product1, file1, thisEvent);
                Assert.AreEqual(0, thisEvent.CompareTo(retrievedEvent));

                StackHashCab cab = new StackHashCab(creationDateTime, modifiedDateTime, thisEvent.Id, thisEvent.EventTypeName, "cab12345_23232.cab", cabId++, 12000);
                cab.DumpAnalysis = new StackHashDumpAnalysis("2 days, 5 hours, 2 mins", "1 hour, 2 mins", "2.120.222.1121212", "Microsoft Windows Vista X64 6.0.212121212 (Build 2500)", "64 bit windows");

                cab.CabDownloaded = true;

                StackHashCab retrievedCab = index.GetCab(product1, file1, thisEvent, cab.Id);
                Assert.AreEqual(0, cab.CompareTo(retrievedCab));

                String cabFolder   = index.GetCabFolder(product1, file1, thisEvent, cab);
                String cabFileName = index.GetCabFileName(product1, file1, thisEvent, cab);

                Assert.AreEqual(true, Directory.Exists(cabFolder));
                Assert.AreEqual(true, File.Exists(cabFileName));
            }
        }
示例#4
0
        private void testGetProductUnknownId(IErrorIndex index)
        {
            index.Activate();
            int              i                = 0;
            int              productId        = 200;
            DateTime         creationDateTime = new DateTime(2010, 04, 04, 22, 9, 0, DateTimeKind.Utc);
            DateTime         modifiedDateTime = new DateTime(2010, 05, 05, 23, 10, 0, DateTimeKind.Utc);
            StackHashProduct product1         =
                new StackHashProduct(creationDateTime, modifiedDateTime, null, productId, "TestProduct1", 20 + i, 30 + i, "2.10.02123.1293");

            index.AddProduct(product1);

            // Get the product list.
            StackHashProductCollection products = index.LoadProductList();

            Assert.AreNotEqual(null, products);
            Assert.AreEqual(1, products.Count);

            Assert.AreEqual(0, product1.CompareTo(products[0]));

            StackHashProduct thisProduct = index.GetProduct(product1.Id + 1);

            Assert.AreEqual(null, thisProduct);
        }
示例#5
0
        private void testCacheInitialiseNProductsAddAnotherProduct(IErrorIndex realIndex, int numProducts)
        {
            realIndex.Activate();
            StackHashProductCollection allProducts = new StackHashProductCollection();

            for (int i = 0; i < numProducts; i++)
            {
                DateTime         creationDateTime = new DateTime(2010, 04, 04, 22, 9, 0, DateTimeKind.Utc).AddDays(i);
                DateTime         modifiedDateTime = new DateTime(2010, 05, 05, 23, 10, 0, DateTimeKind.Utc).AddDays(i);
                int              productId        = 200 + i;
                StackHashProduct product1         =
                    new StackHashProduct(creationDateTime, modifiedDateTime, null, productId, "TestProduct1", 20 + i, 30 + i, "2.10.02123.1293");

                realIndex.AddProduct(product1);
            }

            // Hook up the cache and call LoadProductList.
            ErrorIndexCache indexCache = new ErrorIndexCache(realIndex);

            indexCache.Activate();

            // Get the product list.
            StackHashProductCollection products = indexCache.LoadProductList();

            Assert.AreNotEqual(null, products);
            Assert.AreEqual(numProducts, products.Count);

            for (int i = 0; i < allProducts.Count; i++)
            {
                Assert.AreEqual(0, allProducts[0].CompareTo(products.FindProduct(allProducts[0].Id)));
            }

            // Hook up the cache afresh and call GetProduct.
            indexCache = new ErrorIndexCache(realIndex);
            indexCache.Activate();

            for (int i = 0; i < allProducts.Count; i++)
            {
                StackHashProduct thisProduct = indexCache.GetProduct(allProducts[i].Id);
                Assert.AreNotEqual(null, thisProduct);
                Assert.AreEqual(0, allProducts[i].CompareTo(thisProduct));
            }


            // Now add one more product.
            StackHashProduct finalProduct =
                new StackHashProduct(DateTime.Now.AddDays(99), DateTime.Now.AddDays(99), null, 99, "TestProduct99", 99, 98, "2.10.02123.1293");

            indexCache.AddProduct(finalProduct);

            // Now reload and check it is still there.
            indexCache = new ErrorIndexCache(realIndex);
            indexCache.Activate();

            products = indexCache.LoadProductList();

            Assert.AreNotEqual(null, products);
            Assert.AreEqual(numProducts + 1, products.Count);

            StackHashProduct latestProduct = indexCache.GetProduct(finalProduct.Id);

            Assert.AreNotEqual(null, latestProduct);
            Assert.AreEqual(0, finalProduct.CompareTo(latestProduct));
        }