summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKweku Adams <kwekua@google.com>2018-06-13 12:24:38 -0700
committerKweku Adams <kwekua@google.com>2018-06-13 12:46:12 -0700
commite04ef777c156b2a496021847bb52c3042f154e18 (patch)
tree9cf2e686621fa89705ca495f21ef69c673e5fb0c
parent5304145fbf9bc141396773534757e543f06939cc (diff)
Treating all FileSection files as device specific.
Arc++ devices don't have the /d/wakeup_sources file. There's a chance other device won't have it either, and there may be other files that we thought were standard but are actually not, so it's safer to just assume that not every file will be available on every device and not treat a missing file as an error. Bug: 110109543 Test: atest incidentd_test Change-Id: Ief09427f08d18aee611d057ddafdb9a3466744db
-rw-r--r--cmds/incidentd/src/Section.cpp14
-rw-r--r--cmds/incidentd/src/Section.h6
-rw-r--r--cmds/incidentd/tests/Section_test.cpp8
-rw-r--r--core/proto/android/os/incident.proto2
-rw-r--r--libs/incident/proto/android/section.proto3
-rw-r--r--tools/incident_section_gen/main.cpp3
6 files changed, 15 insertions, 21 deletions
diff --git a/cmds/incidentd/src/Section.cpp b/cmds/incidentd/src/Section.cpp
index bdfcd98abd47..87799b38906c 100644
--- a/cmds/incidentd/src/Section.cpp
+++ b/cmds/incidentd/src/Section.cpp
@@ -151,11 +151,10 @@ DONE:
}
// ================================================================================
-Section::Section(int i, int64_t timeoutMs, bool userdebugAndEngOnly, bool deviceSpecific)
+Section::Section(int i, int64_t timeoutMs, bool userdebugAndEngOnly)
: id(i),
timeoutMs(timeoutMs),
- userdebugAndEngOnly(userdebugAndEngOnly),
- deviceSpecific(deviceSpecific) {}
+ userdebugAndEngOnly(userdebugAndEngOnly) {}
Section::~Section() {}
@@ -240,9 +239,8 @@ status_t MetadataSection::Execute(ReportRequestSet* requests) const {
// ================================================================================
static inline bool isSysfs(const char* filename) { return strncmp(filename, "/sys/", 5) == 0; }
-FileSection::FileSection(int id, const char* filename, const bool deviceSpecific,
- const int64_t timeoutMs)
- : Section(id, timeoutMs, false, deviceSpecific), mFilename(filename) {
+FileSection::FileSection(int id, const char* filename, const int64_t timeoutMs)
+ : Section(id, timeoutMs, false), mFilename(filename) {
name = "file ";
name += filename;
mIsSysfs = isSysfs(filename);
@@ -256,7 +254,9 @@ status_t FileSection::Execute(ReportRequestSet* requests) const {
unique_fd fd(open(mFilename, O_RDONLY | O_CLOEXEC));
if (fd.get() == -1) {
ALOGW("[%s] failed to open file", this->name.string());
- return this->deviceSpecific ? NO_ERROR : -errno;
+ // There may be some devices/architectures that won't have the file.
+ // Just return here without an error.
+ return NO_ERROR;
}
FdBuffer buffer;
diff --git a/cmds/incidentd/src/Section.h b/cmds/incidentd/src/Section.h
index a031a15fe7c9..302b4ef7ae34 100644
--- a/cmds/incidentd/src/Section.h
+++ b/cmds/incidentd/src/Section.h
@@ -41,11 +41,9 @@ public:
const int id;
const int64_t timeoutMs; // each section must have a timeout
const bool userdebugAndEngOnly;
- const bool deviceSpecific;
String8 name;
- Section(int id, int64_t timeoutMs = REMOTE_CALL_TIMEOUT_MS, bool userdebugAndEngOnly = false,
- bool deviceSpecific = false);
+ Section(int id, int64_t timeoutMs = REMOTE_CALL_TIMEOUT_MS, bool userdebugAndEngOnly = false);
virtual ~Section();
virtual status_t Execute(ReportRequestSet* requests) const = 0;
@@ -78,7 +76,7 @@ public:
*/
class FileSection : public Section {
public:
- FileSection(int id, const char* filename, bool deviceSpecific = false,
+ FileSection(int id, const char* filename,
int64_t timeoutMs = 5000 /* 5 seconds */);
virtual ~FileSection();
diff --git a/cmds/incidentd/tests/Section_test.cpp b/cmds/incidentd/tests/Section_test.cpp
index 3c338b3a36c8..9b684a060286 100644
--- a/cmds/incidentd/tests/Section_test.cpp
+++ b/cmds/incidentd/tests/Section_test.cpp
@@ -144,15 +144,15 @@ TEST_F(SectionTest, FileSection) {
}
TEST_F(SectionTest, FileSectionNotExist) {
- FileSection fs1(NOOP_PARSER, "notexist", false, QUICK_TIMEOUT_MS);
- ASSERT_EQ(NAME_NOT_FOUND, fs1.Execute(&requests));
+ FileSection fs1(NOOP_PARSER, "notexist", QUICK_TIMEOUT_MS);
+ ASSERT_EQ(NO_ERROR, fs1.Execute(&requests));
- FileSection fs2(NOOP_PARSER, "notexist", true, QUICK_TIMEOUT_MS);
+ FileSection fs2(NOOP_PARSER, "notexist", QUICK_TIMEOUT_MS);
ASSERT_EQ(NO_ERROR, fs2.Execute(&requests));
}
TEST_F(SectionTest, FileSectionTimeout) {
- FileSection fs(TIMEOUT_PARSER, tf.path, false, QUICK_TIMEOUT_MS);
+ FileSection fs(TIMEOUT_PARSER, tf.path, QUICK_TIMEOUT_MS);
ASSERT_EQ(NO_ERROR, fs.Execute(&requests));
ASSERT_TRUE(requests.sectionStats(TIMEOUT_PARSER)->timed_out());
}
diff --git a/core/proto/android/os/incident.proto b/core/proto/android/os/incident.proto
index 3aea3a767f46..39e65cabda18 100644
--- a/core/proto/android/os/incident.proto
+++ b/core/proto/android/os/incident.proto
@@ -162,7 +162,6 @@ message IncidentProto {
optional CpuFreqProto cpu_freq = 2004 [
(section).type = SECTION_FILE,
- (section).device_specific = true,
(section).args = "/sys/devices/system/cpu/cpufreq/all_time_in_state"
];
@@ -173,7 +172,6 @@ message IncidentProto {
optional BatteryTypeProto battery_type = 2006 [
(section).type = SECTION_FILE,
- (section).device_specific = true,
(section).args = "/sys/class/power_supply/bms/battery_type"
];
diff --git a/libs/incident/proto/android/section.proto b/libs/incident/proto/android/section.proto
index 45f3c91850e7..5afe22a3095f 100644
--- a/libs/incident/proto/android/section.proto
+++ b/libs/incident/proto/android/section.proto
@@ -51,10 +51,9 @@ enum SectionType {
message SectionFlags {
optional SectionType type = 1 [default = SECTION_NONE];
optional string args = 2;
- optional bool device_specific = 3 [default = false];
// If true, then the section will only be generated for userdebug and eng
// builds.
- optional bool userdebug_and_eng_only = 4 [default = false];
+ optional bool userdebug_and_eng_only = 3 [default = false];
}
extend google.protobuf.FieldOptions {
diff --git a/tools/incident_section_gen/main.cpp b/tools/incident_section_gen/main.cpp
index 3689a8f2981e..1f77719ea4d5 100644
--- a/tools/incident_section_gen/main.cpp
+++ b/tools/incident_section_gen/main.cpp
@@ -412,8 +412,7 @@ static bool generateSectionListCpp(Descriptor const* descriptor) {
case SECTION_NONE:
continue;
case SECTION_FILE:
- printf(" new FileSection(%d, \"%s\", %s),\n", field->number(), s.args().c_str(),
- s.device_specific() ? "true" : "false");
+ printf(" new FileSection(%d, \"%s\"),\n", field->number(), s.args().c_str());
break;
case SECTION_COMMAND:
printf(" new CommandSection(%d,", field->number());