summaryrefslogtreecommitdiff
path: root/cmds/incidentd/tests/Reporter_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cmds/incidentd/tests/Reporter_test.cpp')
-rw-r--r--cmds/incidentd/tests/Reporter_test.cpp102
1 files changed, 71 insertions, 31 deletions
diff --git a/cmds/incidentd/tests/Reporter_test.cpp b/cmds/incidentd/tests/Reporter_test.cpp
index b5e41d767295..9becf173ee1a 100644
--- a/cmds/incidentd/tests/Reporter_test.cpp
+++ b/cmds/incidentd/tests/Reporter_test.cpp
@@ -17,7 +17,7 @@
#include "Reporter.h"
#include <android/os/BnIncidentReportStatusListener.h>
-#include <frameworks/base/libs/incident/proto/android/os/header.pb.h>
+#include <frameworks/base/core/proto/android/os/header.pb.h>
#include <dirent.h>
#include <string.h>
@@ -36,6 +36,7 @@ using ::testing::StrEq;
using ::testing::Test;
namespace {
+/*
void getHeaderData(const IncidentHeaderProto& headerProto, vector<uint8_t>* out) {
out->clear();
auto serialized = headerProto.SerializeAsString();
@@ -43,6 +44,7 @@ void getHeaderData(const IncidentHeaderProto& headerProto, vector<uint8_t>* out)
out->resize(serialized.length());
std::copy(serialized.begin(), serialized.end(), out->begin());
}
+*/
}
class TestListener : public IIncidentReportStatusListener {
@@ -82,6 +84,24 @@ public:
return Status::ok();
};
+ int sectionStarted(int sectionId) const {
+ map<int, int>::const_iterator found = startSections.find(sectionId);
+ if (found != startSections.end()) {
+ return found->second;
+ } else {
+ return 0;
+ }
+ };
+
+ int sectionFinished(int sectionId) const {
+ map<int, int>::const_iterator found = finishSections.find(sectionId);
+ if (found != finishSections.end()) {
+ return found->second;
+ } else {
+ return 0;
+ }
+ };
+
protected:
virtual IBinder* onAsBinder() override { return nullptr; };
};
@@ -89,8 +109,7 @@ protected:
class ReporterTest : public Test {
public:
virtual void SetUp() {
- reporter = new Reporter(td.path);
- l = new TestListener();
+ listener = new TestListener();
}
vector<string> InspectFiles() {
@@ -115,9 +134,7 @@ public:
protected:
TemporaryDir td;
- ReportRequestSet requests;
- sp<Reporter> reporter;
- sp<TestListener> l;
+ sp<TestListener> listener;
size_t size;
};
@@ -132,18 +149,17 @@ TEST_F(ReporterTest, IncidentReportArgs) {
ASSERT_TRUE(args1.containsSection(3));
}
-TEST_F(ReporterTest, ReportRequestSetEmpty) {
- requests.setMainFd(STDOUT_FILENO);
- ASSERT_EQ(requests.mainFd(), STDOUT_FILENO);
-}
-
+/*
TEST_F(ReporterTest, RunReportEmpty) {
+ vector<sp<ReportRequest>> requests;
+ sp<Reporter> reporter = new Reporter(requests, td.path);
+
ASSERT_EQ(Reporter::REPORT_FINISHED, reporter->runReport(&size));
- EXPECT_EQ(l->startInvoked, 0);
- EXPECT_EQ(l->finishInvoked, 0);
- EXPECT_TRUE(l->startSections.empty());
- EXPECT_TRUE(l->finishSections.empty());
- EXPECT_EQ(l->failedInvoked, 0);
+ EXPECT_EQ(0, listener->startInvoked);
+ EXPECT_EQ(0, listener->finishInvoked);
+ EXPECT_TRUE(listener->startSections.empty());
+ EXPECT_TRUE(listener->finishSections.empty());
+ EXPECT_EQ(0, listener->failedInvoked);
}
TEST_F(ReporterTest, RunReportWithHeaders) {
@@ -157,11 +173,11 @@ TEST_F(ReporterTest, RunReportWithHeaders) {
vector<uint8_t> out;
getHeaderData(header, &out);
args2.addHeader(out);
- sp<ReportRequest> r1 = new ReportRequest(args1, l, tf.fd);
- sp<ReportRequest> r2 = new ReportRequest(args2, l, tf.fd);
- reporter->batch.add(r1);
- reporter->batch.add(r2);
+ sp<WorkDirectory> workDirectory = new WorkDirectory(td.path);
+ sp<ReportBatch> batch = new ReportBatch();
+ batch->addStreamingReport(args1, listener, tf.fd);
+ sp<Reporter> reporter = new Reporter(workDirectory, batch);
ASSERT_EQ(Reporter::REPORT_FINISHED, reporter->runReport(&size));
@@ -170,11 +186,11 @@ TEST_F(ReporterTest, RunReportWithHeaders) {
EXPECT_THAT(result, StrEq("\n\x2"
"\b\f"));
- EXPECT_EQ(l->startInvoked, 2);
- EXPECT_EQ(l->finishInvoked, 2);
- EXPECT_TRUE(l->startSections.empty());
- EXPECT_TRUE(l->finishSections.empty());
- EXPECT_EQ(l->failedInvoked, 0);
+ EXPECT_EQ(listener->startInvoked, 1);
+ EXPECT_EQ(listener->finishInvoked, 1);
+ EXPECT_FALSE(listener->startSections.empty());
+ EXPECT_FALSE(listener->finishSections.empty());
+ EXPECT_EQ(listener->failedInvoked, 0);
}
TEST_F(ReporterTest, RunReportToGivenDirectory) {
@@ -188,8 +204,10 @@ TEST_F(ReporterTest, RunReportToGivenDirectory) {
args.addHeader(out);
getHeaderData(header2, &out);
args.addHeader(out);
- sp<ReportRequest> r = new ReportRequest(args, l, -1);
- reporter->batch.add(r);
+
+ vector<sp<ReportRequest>> requests;
+ requests.push_back(new ReportRequest(args, listener, -1));
+ sp<Reporter> reporter = new Reporter(requests, td.path);
ASSERT_EQ(Reporter::REPORT_FINISHED, reporter->runReport(&size));
vector<string> results = InspectFiles();
@@ -204,14 +222,36 @@ TEST_F(ReporterTest, RunReportToGivenDirectory) {
TEST_F(ReporterTest, ReportMetadata) {
IncidentReportArgs args;
args.addSection(1);
- args.setDest(android::os::DEST_EXPLICIT);
- sp<ReportRequest> r = new ReportRequest(args, l, -1);
- reporter->batch.add(r);
+ args.setPrivacyPolicy(android::os::PRIVACY_POLICY_EXPLICIT);
+ vector<sp<ReportRequest>> requests;
+ requests.push_back(new ReportRequest(args, listener, -1));
+ sp<Reporter> reporter = new Reporter(requests, td.path);
ASSERT_EQ(Reporter::REPORT_FINISHED, reporter->runReport(&size));
- IncidentMetadata metadata = reporter->batch.metadata();
+ IncidentMetadata metadata = reporter->metadata();
EXPECT_EQ(IncidentMetadata_Destination_EXPLICIT, metadata.dest());
EXPECT_EQ(1, metadata.request_size());
EXPECT_TRUE(metadata.use_dropbox());
EXPECT_EQ(0, metadata.sections_size());
}
+
+TEST_F(ReporterTest, RunReportLocal_1_2) {
+ IncidentReportArgs args;
+ args.addSection(1);
+ args.addSection(2);
+ args.setPrivacyPolicy(android::os::PRIVACY_POLICY_LOCAL);
+
+ vector<sp<ReportRequest>> requests;
+ requests.push_back(new ReportRequest(args, listener, -1));
+ sp<Reporter> reporter = new Reporter(requests, td.path);
+
+ ASSERT_EQ(Reporter::REPORT_FINISHED, reporter->runReport(&size));
+
+ EXPECT_EQ(1, listener->sectionStarted(1));
+ EXPECT_EQ(1, listener->sectionFinished(1));
+ EXPECT_EQ(1, listener->sectionStarted(2));
+ EXPECT_EQ(1, listener->sectionFinished(2));
+
+ // TODO: validate that a file was created in the directory
+}
+*/