Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(49)

Side by Side Diff: components/safe_browsing_db/v4_store_unittest.cc

Issue 2409793002: Add detailed UMA metrics for v4_store, broken down by storeid. (Closed)
Patch Set: Mark old histograms as obsolete instead of deleting them Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/base64.h" 5 #include "base/base64.h"
6 #include "base/bind.h" 6 #include "base/bind.h"
7 #include "base/files/file_util.h" 7 #include "base/files/file_util.h"
8 #include "base/files/scoped_temp_dir.h" 8 #include "base/files/scoped_temp_dir.h"
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 693 matching lines...) Expand 10 before | Expand all | Expand 10 after
704 #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) 704 #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON)
705 // This test hits a NOTREACHED so it is a release mode only test. 705 // This test hits a NOTREACHED so it is a release mode only test.
706 TEST_F(V4StoreTest, TestAdditionsWithRiceEncodingFailsWithInvalidInput) { 706 TEST_F(V4StoreTest, TestAdditionsWithRiceEncodingFailsWithInvalidInput) {
707 RepeatedPtrField<ThreatEntrySet> additions; 707 RepeatedPtrField<ThreatEntrySet> additions;
708 ThreatEntrySet* addition = additions.Add(); 708 ThreatEntrySet* addition = additions.Add();
709 addition->set_compression_type(RICE); 709 addition->set_compression_type(RICE);
710 addition->mutable_rice_hashes()->set_num_entries(-1); 710 addition->mutable_rice_hashes()->set_num_entries(-1);
711 HashPrefixMap additions_map; 711 HashPrefixMap additions_map;
712 EXPECT_EQ(RICE_DECODING_FAILURE, 712 EXPECT_EQ(RICE_DECODING_FAILURE,
713 V4Store(task_runner_, store_path_) 713 V4Store(task_runner_, store_path_)
714 .UpdateHashPrefixMapFromAdditions(additions, &additions_map)); 714 .UpdateHashPrefixMapFromAdditions("V4Metric", additions,
715 &additions_map));
715 } 716 }
716 #endif 717 #endif
717 718
718 TEST_F(V4StoreTest, TestAdditionsWithRiceEncodingSucceeds) { 719 TEST_F(V4StoreTest, TestAdditionsWithRiceEncodingSucceeds) {
719 RepeatedPtrField<ThreatEntrySet> additions; 720 RepeatedPtrField<ThreatEntrySet> additions;
720 ThreatEntrySet* addition = additions.Add(); 721 ThreatEntrySet* addition = additions.Add();
721 addition->set_compression_type(RICE); 722 addition->set_compression_type(RICE);
722 RiceDeltaEncoding* rice_hashes = addition->mutable_rice_hashes(); 723 RiceDeltaEncoding* rice_hashes = addition->mutable_rice_hashes();
723 rice_hashes->set_first_value(5); 724 rice_hashes->set_first_value(5);
724 rice_hashes->set_num_entries(3); 725 rice_hashes->set_num_entries(3);
725 rice_hashes->set_rice_parameter(28); 726 rice_hashes->set_rice_parameter(28);
726 // The following value is hand-crafted by getting inspiration from: 727 // The following value is hand-crafted by getting inspiration from:
727 // https://goto.google.com/testlargenumbersriceencoded 728 // https://goto.google.com/testlargenumbersriceencoded
728 // The value listed at that place fails the "integer overflow" check so I 729 // The value listed at that place fails the "integer overflow" check so I
729 // modified it until the decoder parsed it successfully. 730 // modified it until the decoder parsed it successfully.
730 rice_hashes->set_encoded_data( 731 rice_hashes->set_encoded_data(
731 "\xbf\xa8\x3f\xfb\xf\xf\x5e\x27\xe6\xc3\x1d\xc6\x38"); 732 "\xbf\xa8\x3f\xfb\xf\xf\x5e\x27\xe6\xc3\x1d\xc6\x38");
732 HashPrefixMap additions_map; 733 HashPrefixMap additions_map;
733 EXPECT_EQ(APPLY_UPDATE_SUCCESS, 734 EXPECT_EQ(APPLY_UPDATE_SUCCESS,
734 V4Store(task_runner_, store_path_) 735 V4Store(task_runner_, store_path_)
735 .UpdateHashPrefixMapFromAdditions(additions, &additions_map)); 736 .UpdateHashPrefixMapFromAdditions("V4Metric", additions,
737 &additions_map));
736 EXPECT_EQ(1u, additions_map.size()); 738 EXPECT_EQ(1u, additions_map.size());
737 EXPECT_EQ(std::string("\x5\0\0\0\fL\x93\xADV\x7F\xF6o\xCEo1\x81", 16), 739 EXPECT_EQ(std::string("\x5\0\0\0\fL\x93\xADV\x7F\xF6o\xCEo1\x81", 16),
738 additions_map[4]); 740 additions_map[4]);
739 } 741 }
740 742
741 TEST_F(V4StoreTest, TestRemovalsWithRiceEncodingSucceeds) { 743 TEST_F(V4StoreTest, TestRemovalsWithRiceEncodingSucceeds) {
742 HashPrefixMap prefix_map_old; 744 HashPrefixMap prefix_map_old;
743 EXPECT_EQ(APPLY_UPDATE_SUCCESS, 745 EXPECT_EQ(APPLY_UPDATE_SUCCESS,
744 V4Store::AddUnlumpedHashes(4, "1111abcdefgh", &prefix_map_old)); 746 V4Store::AddUnlumpedHashes(4, "1111abcdefgh", &prefix_map_old));
745 HashPrefixMap prefix_map_additions; 747 HashPrefixMap prefix_map_additions;
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
841 EXPECT_TRUE(another_store.expected_checksum_.empty()); 843 EXPECT_TRUE(another_store.expected_checksum_.empty());
842 844
843 EXPECT_EQ(READ_SUCCESS, another_store.ReadFromDisk()); 845 EXPECT_EQ(READ_SUCCESS, another_store.ReadFromDisk());
844 EXPECT_TRUE(!another_store.expected_checksum_.empty()); 846 EXPECT_TRUE(!another_store.expected_checksum_.empty());
845 EXPECT_EQ("test_client_state", another_store.state()); 847 EXPECT_EQ("test_client_state", another_store.state());
846 848
847 EXPECT_TRUE(another_store.VerifyChecksum()); 849 EXPECT_TRUE(another_store.VerifyChecksum());
848 } 850 }
849 851
850 } // namespace safe_browsing 852 } // namespace safe_browsing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698