1 // This file is a dummy section_list.cpp used for test only.
2 #include "section_list.h"
3 
4 #include "frameworks/base/cmds/incidentd/tests/test_proto.pb.h"
5 
6 
7 namespace android {
8 namespace os {
9 namespace incidentd {
10 
11 class TestSection: public Section {
12 public:
13     TestSection(int id);
14     ~TestSection();
15     virtual status_t Execute(ReportWriter* writer) const;
16 };
17 
TestSection(int id)18 TestSection::TestSection(int id)
19         :Section(id, 5000 /* ms timeout */) {
20 }
21 
~TestSection()22 TestSection::~TestSection() {
23 }
24 
Execute(ReportWriter * writer) const25 status_t TestSection::Execute(ReportWriter* writer) const {
26     uint8_t buf[1024];
27     status_t err;
28 
29     TestSectionProto proto;
30     proto.set_field_1(this->id);
31     proto.set_field_2(this->id * 10);
32 
33     // Not infinitely scalable, but we know that our TestSectionProto will always
34     // fit in this many bytes.
35     if (!proto.SerializeToArray(buf, sizeof(buf))) {
36         return -1;
37     }
38     FdBuffer buffer;
39     err = buffer.write(buf, proto.ByteSize());
40     if (err != NO_ERROR) {
41         return err;
42     }
43 
44     return writer->writeSection(buffer);
45 }
46 
47 TestSection section1(1);
48 TestSection section2(2);
49 
50 const Section* SECTION_LIST[] = {
51     &section1,
52     &section2,
53     NULL
54 };
55 
56 Privacy sub_field_1{1, 1, NULL, PRIVACY_POLICY_LOCAL, NULL};
57 Privacy sub_field_2{2, 9, NULL, PRIVACY_POLICY_AUTOMATIC, NULL};
58 
59 Privacy* list[] = {&sub_field_1, &sub_field_2, NULL};
60 
61 Privacy field_0{0, 11, list, PRIVACY_POLICY_EXPLICIT, NULL};
62 Privacy field_1{1, 9, NULL, PRIVACY_POLICY_AUTOMATIC, NULL};
63 
64 Privacy* final_list[] = {&field_0, &field_1};
65 
66 const Privacy** PRIVACY_POLICY_LIST = const_cast<const Privacy**>(final_list);
67 
68 const int PRIVACY_POLICY_COUNT = 2;
69 
70 }  // namespace incidentd
71 }  // namespace os
72 }  // namespace android
73