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

Side by Side Diff: chromecast/crash/linux/dump_info_unittest.cc

Issue 1154383006: Adding crash utilities to chromecast/crash. (Closed) Base URL: https://eureka-internal.googlesource.com/chromium/src@master
Patch Set: cast_shell_unittests not built for android Created 5 years, 6 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
« no previous file with comments | « chromecast/crash/linux/dump_info.cc ('k') | chromecast/crash/linux/minidump_generator.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include <time.h>
6
7 #include "chromecast/crash/linux/dump_info.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9
10 namespace chromecast {
11
12 TEST(DumpInfoTest, EmptyStringIsNotValid) {
13 DumpInfo dump_info("");
14 ASSERT_FALSE(dump_info.valid());
15 }
16
17 TEST(DumpInfoTest, TooFewFieldsIsNotValid) {
18 DumpInfo dump_info("name|2001-11-12 18:31:01|dump_string");
19 ASSERT_FALSE(dump_info.valid());
20 }
21
22 TEST(DumpInfoTest, BadTimeStringIsNotValid) {
23 DumpInfo info("name|Mar 23 2014 01:23:45|dump_string|123456789|logfile.log");
24 ASSERT_FALSE(info.valid());
25 }
26
27 TEST(DumpInfoTest, AllRequiredFieldsIsValid) {
28 DumpInfo info("name|2001-11-12 18:31:01|dump_string|123456789|logfile.log");
29 struct tm tm = {};
30 tm.tm_isdst = 0;
31 tm.tm_sec = 1;
32 tm.tm_min = 31;
33 tm.tm_hour = 18;
34 tm.tm_mday = 12;
35 tm.tm_mon = 10;
36 tm.tm_year = 101;
37 time_t dump_time = mktime(&tm);
38
39 ASSERT_TRUE(info.valid());
40 ASSERT_EQ("name", info.params().process_name);
41 ASSERT_EQ(dump_time, info.dump_time());
42 ASSERT_EQ("dump_string", info.crashed_process_dump());
43 ASSERT_EQ(123456789u, info.params().process_uptime);
44 ASSERT_EQ("logfile.log", info.logfile());
45 }
46
47 TEST(DumpInfoTest, EmptyProcessNameIsValid) {
48 DumpInfo dump_info("|2001-11-12 18:31:01|dump_string|123456789|logfile.log");
49 ASSERT_TRUE(dump_info.valid());
50 }
51
52 TEST(DumpInfoTest, SomeRequiredFieldsEmptyIsValid) {
53 // TODO(slan): This test is failing non-deterministically (time result is
54 // occasionally off by an hour - has something to do with DST). It is a
55 // concurrency issue with mktime. Investigate.
56 DumpInfo info("name|2001-11-12 18:31:01|||");
57 struct tm tm = {};
58 tm.tm_isdst = 0;
59 tm.tm_sec = 1;
60 tm.tm_min = 31;
61 tm.tm_hour = 18;
62 tm.tm_mday = 12;
63 tm.tm_mon = 10;
64 tm.tm_year = 101;
65 time_t dump_time = mktime(&tm);
66
67 ASSERT_TRUE(info.valid());
68 ASSERT_EQ("name", info.params().process_name);
69 ASSERT_EQ(dump_time, info.dump_time());
70 ASSERT_EQ("", info.crashed_process_dump());
71 ASSERT_EQ(0u, info.params().process_uptime);
72 ASSERT_EQ("", info.logfile());
73 }
74
75 TEST(DumpInfoTest, AllOptionalFieldsIsValid) {
76 DumpInfo info(
77 "name|2001-11-12 18:31:01|dump_string|123456789|logfile.log|"
78 "suffix|previous_app|current_app|last_app|RELEASE|BUILD_NUMBER");
79 struct tm tm = {};
80 tm.tm_isdst = 0;
81 tm.tm_sec = 1;
82 tm.tm_min = 31;
83 tm.tm_hour = 18;
84 tm.tm_mday = 12;
85 tm.tm_mon = 10;
86 tm.tm_year = 101;
87 time_t dump_time = mktime(&tm);
88
89 ASSERT_TRUE(info.valid());
90 ASSERT_EQ("name", info.params().process_name);
91 ASSERT_EQ(dump_time, info.dump_time());
92 ASSERT_EQ("dump_string", info.crashed_process_dump());
93 ASSERT_EQ(123456789u, info.params().process_uptime);
94 ASSERT_EQ("logfile.log", info.logfile());
95
96 ASSERT_EQ("suffix", info.params().suffix);
97 ASSERT_EQ("previous_app", info.params().previous_app_name);
98 ASSERT_EQ("current_app", info.params().current_app_name);
99 ASSERT_EQ("last_app", info.params().last_app_name);
100 }
101
102 TEST(DumpInfoTest, SomeOptionalFieldsIsValid) {
103 DumpInfo info(
104 "name|2001-11-12 18:31:01|dump_string|123456789|logfile.log|"
105 "suffix|previous_app");
106 struct tm tm = {};
107 tm.tm_isdst = 0;
108 tm.tm_sec = 1;
109 tm.tm_min = 31;
110 tm.tm_hour = 18;
111 tm.tm_mday = 12;
112 tm.tm_mon = 10;
113 tm.tm_year = 101;
114 time_t dump_time = mktime(&tm);
115
116 ASSERT_TRUE(info.valid());
117 ASSERT_EQ("name", info.params().process_name);
118 ASSERT_EQ(dump_time, info.dump_time());
119 ASSERT_EQ("dump_string", info.crashed_process_dump());
120 ASSERT_EQ(123456789u, info.params().process_uptime);
121 ASSERT_EQ("logfile.log", info.logfile());
122
123 ASSERT_EQ("suffix", info.params().suffix);
124 ASSERT_EQ("previous_app", info.params().previous_app_name);
125 }
126
127 TEST(DumpInfoTest, TooManyFieldsIsNotValid) {
128 DumpInfo info(
129 "name|2001-11-12 18:31:01|dump_string|123456789|logfile.log|"
130 "suffix|previous_app|current_app|last_app|VERSION|BUILD_NUM|extra_field");
131 ASSERT_FALSE(info.valid());
132 }
133
134 } // chromecast
OLDNEW
« no previous file with comments | « chromecast/crash/linux/dump_info.cc ('k') | chromecast/crash/linux/minidump_generator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698