diff options
Diffstat (limited to 'cmds/incidentd/tests/Reporter_test.cpp')
-rw-r--r-- | cmds/incidentd/tests/Reporter_test.cpp | 102 |
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 +} +*/ |