OLD | NEW |
1 // Copyright 2015 The Crashpad Authors. All rights reserved. | 1 // Copyright 2015 The Crashpad Authors. All rights reserved. |
2 // | 2 // |
3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
6 // | 6 // |
7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
8 // | 8 // |
9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 EXPECT_EQ(CrashReportDatabase::kNoError, | 58 EXPECT_EQ(CrashReportDatabase::kNoError, |
59 db_->FinishedWritingCrashReport(new_report, &uuid)); | 59 db_->FinishedWritingCrashReport(new_report, &uuid)); |
60 | 60 |
61 EXPECT_EQ(CrashReportDatabase::kNoError, | 61 EXPECT_EQ(CrashReportDatabase::kNoError, |
62 db_->LookUpCrashReport(uuid, report)); | 62 db_->LookUpCrashReport(uuid, report)); |
63 ExpectPreparedCrashReport(*report); | 63 ExpectPreparedCrashReport(*report); |
64 ASSERT_TRUE(FileExists(report->file_path)); | 64 ASSERT_TRUE(FileExists(report->file_path)); |
65 } | 65 } |
66 | 66 |
67 void UploadReport(const UUID& uuid, bool successful, const std::string& id) { | 67 void UploadReport(const UUID& uuid, bool successful, const std::string& id) { |
68 #if !defined(OS_WIN) | |
69 // Enable when ported to Windows. | |
70 // https://code.google.com/p/crashpad/issues/detail?id=13 | |
71 Settings* const settings = db_->GetSettings(); | 68 Settings* const settings = db_->GetSettings(); |
72 ASSERT_TRUE(settings); | 69 ASSERT_TRUE(settings); |
73 time_t times[2]; | 70 time_t times[2]; |
74 ASSERT_TRUE(settings->GetLastUploadAttemptTime(×[0])); | 71 ASSERT_TRUE(settings->GetLastUploadAttemptTime(×[0])); |
75 #endif | |
76 | 72 |
77 const CrashReportDatabase::Report* report = nullptr; | 73 const CrashReportDatabase::Report* report = nullptr; |
78 ASSERT_EQ(CrashReportDatabase::kNoError, | 74 ASSERT_EQ(CrashReportDatabase::kNoError, |
79 db_->GetReportForUploading(uuid, &report)); | 75 db_->GetReportForUploading(uuid, &report)); |
80 EXPECT_NE(UUID(), report->uuid); | 76 EXPECT_NE(UUID(), report->uuid); |
81 EXPECT_FALSE(report->file_path.empty()); | 77 EXPECT_FALSE(report->file_path.empty()); |
82 EXPECT_TRUE(FileExists(report->file_path)) | 78 EXPECT_TRUE(FileExists(report->file_path)) |
83 << report->file_path.value(); | 79 << report->file_path.value(); |
84 EXPECT_GT(report->creation_time, 0); | 80 EXPECT_GT(report->creation_time, 0); |
85 EXPECT_EQ(CrashReportDatabase::kNoError, | 81 EXPECT_EQ(CrashReportDatabase::kNoError, |
86 db_->RecordUploadAttempt(report, successful, id)); | 82 db_->RecordUploadAttempt(report, successful, id)); |
87 | 83 |
88 #if !defined(OS_WIN) | |
89 // Enable when ported to Windows. | |
90 // https://code.google.com/p/crashpad/issues/detail?id=13 | |
91 ASSERT_TRUE(settings->GetLastUploadAttemptTime(×[1])); | 84 ASSERT_TRUE(settings->GetLastUploadAttemptTime(×[1])); |
92 EXPECT_NE(times[1], 0); | 85 EXPECT_NE(times[1], 0); |
93 EXPECT_GE(times[1], times[0]); | 86 EXPECT_GE(times[1], times[0]); |
94 #endif | |
95 } | 87 } |
96 | 88 |
97 void ExpectPreparedCrashReport(const CrashReportDatabase::Report& report) { | 89 void ExpectPreparedCrashReport(const CrashReportDatabase::Report& report) { |
98 EXPECT_NE(UUID(), report.uuid); | 90 EXPECT_NE(UUID(), report.uuid); |
99 EXPECT_FALSE(report.file_path.empty()); | 91 EXPECT_FALSE(report.file_path.empty()); |
100 EXPECT_TRUE(FileExists(report.file_path)) << report.file_path.value(); | 92 EXPECT_TRUE(FileExists(report.file_path)) << report.file_path.value(); |
101 EXPECT_TRUE(report.id.empty()); | 93 EXPECT_TRUE(report.id.empty()); |
102 EXPECT_GT(report.creation_time, 0); | 94 EXPECT_GT(report.creation_time, 0); |
103 EXPECT_FALSE(report.uploaded); | 95 EXPECT_FALSE(report.uploaded); |
104 EXPECT_EQ(0, report.last_upload_attempt_time); | 96 EXPECT_EQ(0, report.last_upload_attempt_time); |
(...skipping 10 matching lines...) Expand all Loading... |
115 ScopedTempDir temp_dir_; | 107 ScopedTempDir temp_dir_; |
116 scoped_ptr<CrashReportDatabase> db_; | 108 scoped_ptr<CrashReportDatabase> db_; |
117 | 109 |
118 DISALLOW_COPY_AND_ASSIGN(CrashReportDatabaseTest); | 110 DISALLOW_COPY_AND_ASSIGN(CrashReportDatabaseTest); |
119 }; | 111 }; |
120 | 112 |
121 TEST_F(CrashReportDatabaseTest, Initialize) { | 113 TEST_F(CrashReportDatabaseTest, Initialize) { |
122 // Initialize the database for the first time, creating it. | 114 // Initialize the database for the first time, creating it. |
123 ASSERT_TRUE(db()); | 115 ASSERT_TRUE(db()); |
124 | 116 |
125 #if !defined(OS_WIN) | |
126 // Enable when ported to Windows. | |
127 // https://code.google.com/p/crashpad/issues/detail?id=13 | |
128 Settings* settings = db()->GetSettings(); | 117 Settings* settings = db()->GetSettings(); |
129 | 118 |
130 UUID client_ids[2]; | 119 UUID client_ids[2]; |
131 ASSERT_TRUE(settings->GetClientID(&client_ids[0])); | 120 ASSERT_TRUE(settings->GetClientID(&client_ids[0])); |
132 EXPECT_NE(client_ids[0], UUID()); | 121 EXPECT_NE(client_ids[0], UUID()); |
133 | 122 |
134 time_t last_upload_attempt_time; | 123 time_t last_upload_attempt_time; |
135 ASSERT_TRUE(settings->GetLastUploadAttemptTime(&last_upload_attempt_time)); | 124 ASSERT_TRUE(settings->GetLastUploadAttemptTime(&last_upload_attempt_time)); |
136 EXPECT_EQ(0, last_upload_attempt_time); | 125 EXPECT_EQ(0, last_upload_attempt_time); |
137 #endif | |
138 | 126 |
139 // Close and reopen the database at the same path. | 127 // Close and reopen the database at the same path. |
140 ResetDatabase(); | 128 ResetDatabase(); |
141 EXPECT_FALSE(db()); | 129 EXPECT_FALSE(db()); |
142 auto db = CrashReportDatabase::Initialize(path()); | 130 auto db = CrashReportDatabase::Initialize(path()); |
143 ASSERT_TRUE(db); | 131 ASSERT_TRUE(db); |
144 | 132 |
145 #if !defined(OS_WIN) | |
146 // Enable when ported to Windows. | |
147 // https://code.google.com/p/crashpad/issues/detail?id=13 | |
148 settings = db->GetSettings(); | 133 settings = db->GetSettings(); |
149 | 134 |
150 ASSERT_TRUE(settings->GetClientID(&client_ids[1])); | 135 ASSERT_TRUE(settings->GetClientID(&client_ids[1])); |
151 EXPECT_EQ(client_ids[0], client_ids[1]); | 136 EXPECT_EQ(client_ids[0], client_ids[1]); |
152 | 137 |
153 ASSERT_TRUE(settings->GetLastUploadAttemptTime(&last_upload_attempt_time)); | 138 ASSERT_TRUE(settings->GetLastUploadAttemptTime(&last_upload_attempt_time)); |
154 EXPECT_EQ(0, last_upload_attempt_time); | 139 EXPECT_EQ(0, last_upload_attempt_time); |
155 #endif | |
156 | 140 |
157 std::vector<CrashReportDatabase::Report> reports; | 141 std::vector<CrashReportDatabase::Report> reports; |
158 EXPECT_EQ(CrashReportDatabase::kNoError, db->GetPendingReports(&reports)); | 142 EXPECT_EQ(CrashReportDatabase::kNoError, db->GetPendingReports(&reports)); |
159 EXPECT_TRUE(reports.empty()); | 143 EXPECT_TRUE(reports.empty()); |
160 reports.clear(); | 144 reports.clear(); |
161 EXPECT_EQ(CrashReportDatabase::kNoError, db->GetCompletedReports(&reports)); | 145 EXPECT_EQ(CrashReportDatabase::kNoError, db->GetCompletedReports(&reports)); |
162 EXPECT_TRUE(reports.empty()); | 146 EXPECT_TRUE(reports.empty()); |
163 } | 147 } |
164 | 148 |
165 TEST_F(CrashReportDatabaseTest, NewCrashReport) { | 149 TEST_F(CrashReportDatabaseTest, NewCrashReport) { |
(...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
509 << ErrnoMessage("unlink"); | 493 << ErrnoMessage("unlink"); |
510 #endif | 494 #endif |
511 | 495 |
512 EXPECT_EQ(CrashReportDatabase::kReportNotFound, | 496 EXPECT_EQ(CrashReportDatabase::kReportNotFound, |
513 db()->LookUpCrashReport(uuid, &report)); | 497 db()->LookUpCrashReport(uuid, &report)); |
514 } | 498 } |
515 | 499 |
516 } // namespace | 500 } // namespace |
517 } // namespace test | 501 } // namespace test |
518 } // namespace crashpad | 502 } // namespace crashpad |
OLD | NEW |