| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 <time.h> | 5 #include <time.h> |
| 6 | 6 |
| 7 #include "base/values.h" | 7 #include "base/values.h" |
| 8 #include "chromecast/crash/linux/crash_testing_utils.h" | 8 #include "chromecast/crash/linux/crash_testing_utils.h" |
| 9 #include "chromecast/crash/linux/dump_info.h" | 9 #include "chromecast/crash/linux/dump_info.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 | 40 |
| 41 TEST(DumpInfoTest, AllRequiredFieldsIsValid) { | 41 TEST(DumpInfoTest, AllRequiredFieldsIsValid) { |
| 42 std::unique_ptr<DumpInfo> info( | 42 std::unique_ptr<DumpInfo> info( |
| 43 CreateDumpInfo("{" | 43 CreateDumpInfo("{" |
| 44 "\"name\": \"name\"," | 44 "\"name\": \"name\"," |
| 45 "\"dump_time\" : \"2001-11-12 18:31:01\"," | 45 "\"dump_time\" : \"2001-11-12 18:31:01\"," |
| 46 "\"dump\": \"dump_string\"," | 46 "\"dump\": \"dump_string\"," |
| 47 "\"uptime\": \"123456789\"," | 47 "\"uptime\": \"123456789\"," |
| 48 "\"logfile\": \"logfile.log\"" | 48 "\"logfile\": \"logfile.log\"" |
| 49 "}")); | 49 "}")); |
| 50 struct tm tm = {0}; | 50 base::Time::Exploded ex = {0}; |
| 51 tm.tm_isdst = 0; | 51 ex.second = 1; |
| 52 tm.tm_sec = 1; | 52 ex.minute = 31; |
| 53 tm.tm_min = 31; | 53 ex.hour = 18; |
| 54 tm.tm_hour = 18; | 54 ex.day_of_month = 12; |
| 55 tm.tm_mday = 12; | 55 ex.month = 11; |
| 56 tm.tm_mon = 10; | 56 ex.year = 2001; |
| 57 tm.tm_year = 101; | 57 base::Time dump_time = base::Time::FromLocalExploded(ex); |
| 58 time_t dump_time = mktime(&tm); | |
| 59 | 58 |
| 60 ASSERT_TRUE(info->valid()); | 59 ASSERT_TRUE(info->valid()); |
| 61 ASSERT_EQ("name", info->params().process_name); | 60 ASSERT_EQ("name", info->params().process_name); |
| 62 ASSERT_EQ(dump_time, info->dump_time()); | 61 ASSERT_EQ(dump_time, info->dump_time()); |
| 63 ASSERT_EQ("dump_string", info->crashed_process_dump()); | 62 ASSERT_EQ("dump_string", info->crashed_process_dump()); |
| 64 ASSERT_EQ(123456789u, info->params().process_uptime); | 63 ASSERT_EQ(123456789u, info->params().process_uptime); |
| 65 ASSERT_EQ("logfile.log", info->logfile()); | 64 ASSERT_EQ("logfile.log", info->logfile()); |
| 66 } | 65 } |
| 67 | 66 |
| 68 TEST(DumpInfoTest, EmptyProcessNameIsValid) { | 67 TEST(DumpInfoTest, EmptyProcessNameIsValid) { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 79 | 78 |
| 80 TEST(DumpInfoTest, SomeRequiredFieldsEmptyIsValid) { | 79 TEST(DumpInfoTest, SomeRequiredFieldsEmptyIsValid) { |
| 81 std::unique_ptr<DumpInfo> info( | 80 std::unique_ptr<DumpInfo> info( |
| 82 CreateDumpInfo("{" | 81 CreateDumpInfo("{" |
| 83 "\"name\": \"name\"," | 82 "\"name\": \"name\"," |
| 84 "\"dump_time\" : \"2001-11-12 18:31:01\"," | 83 "\"dump_time\" : \"2001-11-12 18:31:01\"," |
| 85 "\"dump\": \"\"," | 84 "\"dump\": \"\"," |
| 86 "\"uptime\": \"\"," | 85 "\"uptime\": \"\"," |
| 87 "\"logfile\": \"\"" | 86 "\"logfile\": \"\"" |
| 88 "}")); | 87 "}")); |
| 89 struct tm tm = {0}; | 88 base::Time::Exploded ex = {0}; |
| 90 tm.tm_isdst = 0; | 89 ex.second = 1; |
| 91 tm.tm_sec = 1; | 90 ex.minute = 31; |
| 92 tm.tm_min = 31; | 91 ex.hour = 18; |
| 93 tm.tm_hour = 18; | 92 ex.day_of_month = 12; |
| 94 tm.tm_mday = 12; | 93 ex.month = 11; |
| 95 tm.tm_mon = 10; | 94 ex.year = 2001; |
| 96 tm.tm_year = 101; | 95 base::Time dump_time = base::Time::FromLocalExploded(ex); |
| 97 time_t dump_time = mktime(&tm); | |
| 98 | 96 |
| 99 ASSERT_TRUE(info->valid()); | 97 ASSERT_TRUE(info->valid()); |
| 100 ASSERT_EQ("name", info->params().process_name); | 98 ASSERT_EQ("name", info->params().process_name); |
| 101 ASSERT_EQ(dump_time, info->dump_time()); | 99 ASSERT_EQ(dump_time, info->dump_time()); |
| 102 ASSERT_EQ("", info->crashed_process_dump()); | 100 ASSERT_EQ("", info->crashed_process_dump()); |
| 103 ASSERT_EQ(0u, info->params().process_uptime); | 101 ASSERT_EQ(0u, info->params().process_uptime); |
| 104 ASSERT_EQ("", info->logfile()); | 102 ASSERT_EQ("", info->logfile()); |
| 105 } | 103 } |
| 106 | 104 |
| 107 TEST(DumpInfoTest, AllOptionalFieldsIsValid) { | 105 TEST(DumpInfoTest, AllOptionalFieldsIsValid) { |
| 108 std::unique_ptr<DumpInfo> info( | 106 std::unique_ptr<DumpInfo> info( |
| 109 CreateDumpInfo("{" | 107 CreateDumpInfo("{" |
| 110 "\"name\": \"name\"," | 108 "\"name\": \"name\"," |
| 111 "\"dump_time\" : \"2001-11-12 18:31:01\"," | 109 "\"dump_time\" : \"2001-11-12 18:31:01\"," |
| 112 "\"dump\": \"dump_string\"," | 110 "\"dump\": \"dump_string\"," |
| 113 "\"uptime\": \"123456789\"," | 111 "\"uptime\": \"123456789\"," |
| 114 "\"logfile\": \"logfile.log\"," | 112 "\"logfile\": \"logfile.log\"," |
| 115 "\"suffix\": \"suffix\"," | 113 "\"suffix\": \"suffix\"," |
| 116 "\"prev_app_name\": \"previous_app\"," | 114 "\"prev_app_name\": \"previous_app\"," |
| 117 "\"cur_app_name\": \"current_app\"," | 115 "\"cur_app_name\": \"current_app\"," |
| 118 "\"last_app_name\": \"last_app\"," | 116 "\"last_app_name\": \"last_app\"," |
| 119 "\"release_version\": \"RELEASE\"," | 117 "\"release_version\": \"RELEASE\"," |
| 120 "\"build_number\": \"BUILD_NUMBER\"," | 118 "\"build_number\": \"BUILD_NUMBER\"," |
| 121 "\"reason\": \"foo\"" | 119 "\"reason\": \"foo\"" |
| 122 "}")); | 120 "}")); |
| 123 struct tm tm = {0}; | 121 base::Time::Exploded ex = {0}; |
| 124 tm.tm_isdst = 0; | 122 ex.second = 1; |
| 125 tm.tm_sec = 1; | 123 ex.minute = 31; |
| 126 tm.tm_min = 31; | 124 ex.hour = 18; |
| 127 tm.tm_hour = 18; | 125 ex.day_of_month = 12; |
| 128 tm.tm_mday = 12; | 126 ex.month = 11; |
| 129 tm.tm_mon = 10; | 127 ex.year = 2001; |
| 130 tm.tm_year = 101; | 128 base::Time dump_time = base::Time::FromLocalExploded(ex); |
| 131 time_t dump_time = mktime(&tm); | |
| 132 | 129 |
| 133 ASSERT_TRUE(info->valid()); | 130 ASSERT_TRUE(info->valid()); |
| 134 ASSERT_EQ("name", info->params().process_name); | 131 ASSERT_EQ("name", info->params().process_name); |
| 135 ASSERT_EQ(dump_time, info->dump_time()); | 132 ASSERT_EQ(dump_time, info->dump_time()); |
| 136 ASSERT_EQ("dump_string", info->crashed_process_dump()); | 133 ASSERT_EQ("dump_string", info->crashed_process_dump()); |
| 137 ASSERT_EQ(123456789u, info->params().process_uptime); | 134 ASSERT_EQ(123456789u, info->params().process_uptime); |
| 138 ASSERT_EQ("logfile.log", info->logfile()); | 135 ASSERT_EQ("logfile.log", info->logfile()); |
| 139 | 136 |
| 140 ASSERT_EQ("suffix", info->params().suffix); | 137 ASSERT_EQ("suffix", info->params().suffix); |
| 141 ASSERT_EQ("previous_app", info->params().previous_app_name); | 138 ASSERT_EQ("previous_app", info->params().previous_app_name); |
| 142 ASSERT_EQ("current_app", info->params().current_app_name); | 139 ASSERT_EQ("current_app", info->params().current_app_name); |
| 143 ASSERT_EQ("last_app", info->params().last_app_name); | 140 ASSERT_EQ("last_app", info->params().last_app_name); |
| 144 ASSERT_EQ("foo", info->params().reason); | 141 ASSERT_EQ("foo", info->params().reason); |
| 145 } | 142 } |
| 146 | 143 |
| 147 TEST(DumpInfoTest, SomeOptionalFieldsIsValid) { | 144 TEST(DumpInfoTest, SomeOptionalFieldsIsValid) { |
| 148 std::unique_ptr<DumpInfo> info( | 145 std::unique_ptr<DumpInfo> info( |
| 149 CreateDumpInfo("{" | 146 CreateDumpInfo("{" |
| 150 "\"name\": \"name\"," | 147 "\"name\": \"name\"," |
| 151 "\"dump_time\" : \"2001-11-12 18:31:01\"," | 148 "\"dump_time\" : \"2001-11-12 18:31:01\"," |
| 152 "\"dump\": \"dump_string\"," | 149 "\"dump\": \"dump_string\"," |
| 153 "\"uptime\": \"123456789\"," | 150 "\"uptime\": \"123456789\"," |
| 154 "\"logfile\": \"logfile.log\"," | 151 "\"logfile\": \"logfile.log\"," |
| 155 "\"suffix\": \"suffix\"," | 152 "\"suffix\": \"suffix\"," |
| 156 "\"prev_app_name\": \"previous_app\"" | 153 "\"prev_app_name\": \"previous_app\"" |
| 157 "}")); | 154 "}")); |
| 158 struct tm tm = {0}; | 155 base::Time::Exploded ex = {0}; |
| 159 tm.tm_isdst = 0; | 156 ex.second = 1; |
| 160 tm.tm_sec = 1; | 157 ex.minute = 31; |
| 161 tm.tm_min = 31; | 158 ex.hour = 18; |
| 162 tm.tm_hour = 18; | 159 ex.day_of_month = 12; |
| 163 tm.tm_mday = 12; | 160 ex.month = 11; |
| 164 tm.tm_mon = 10; | 161 ex.year = 2001; |
| 165 tm.tm_year = 101; | 162 base::Time dump_time = base::Time::FromLocalExploded(ex); |
| 166 time_t dump_time = mktime(&tm); | |
| 167 | 163 |
| 168 ASSERT_TRUE(info->valid()); | 164 ASSERT_TRUE(info->valid()); |
| 169 ASSERT_EQ("name", info->params().process_name); | 165 ASSERT_EQ("name", info->params().process_name); |
| 170 ASSERT_EQ(dump_time, info->dump_time()); | 166 ASSERT_EQ(dump_time, info->dump_time()); |
| 171 ASSERT_EQ("dump_string", info->crashed_process_dump()); | 167 ASSERT_EQ("dump_string", info->crashed_process_dump()); |
| 172 ASSERT_EQ(123456789u, info->params().process_uptime); | 168 ASSERT_EQ(123456789u, info->params().process_uptime); |
| 173 ASSERT_EQ("logfile.log", info->logfile()); | 169 ASSERT_EQ("logfile.log", info->logfile()); |
| 174 | 170 |
| 175 ASSERT_EQ("suffix", info->params().suffix); | 171 ASSERT_EQ("suffix", info->params().suffix); |
| 176 ASSERT_EQ("previous_app", info->params().previous_app_name); | 172 ASSERT_EQ("previous_app", info->params().previous_app_name); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 189 "\"cur_app_name\": \"current_app\"," | 185 "\"cur_app_name\": \"current_app\"," |
| 190 "\"last_app_name\": \"last_app\"," | 186 "\"last_app_name\": \"last_app\"," |
| 191 "\"release_version\": \"RELEASE\"," | 187 "\"release_version\": \"RELEASE\"," |
| 192 "\"build_number\": \"BUILD_NUMBER\"," | 188 "\"build_number\": \"BUILD_NUMBER\"," |
| 193 "\"hello\": \"extra_field\"" | 189 "\"hello\": \"extra_field\"" |
| 194 "}")); | 190 "}")); |
| 195 ASSERT_FALSE(info->valid()); | 191 ASSERT_FALSE(info->valid()); |
| 196 } | 192 } |
| 197 | 193 |
| 198 } // namespace chromecast | 194 } // namespace chromecast |
| OLD | NEW |