Trace Redaction - Rename RedactSchedSwitchHarness
RedactSchedSwitchHarness was originally used to manage multiple
every way a switch event could be redacted. This class will be
growing to include all sched events. This renames the class before
making any functional changes.
Bug: 339504266
Change-Id: Ia3222370d1a4b6a002cadc9703a0159d3d2709ac
diff --git a/Android.bp b/Android.bp
index 381e654..86bcbba 100644
--- a/Android.bp
+++ b/Android.bp
@@ -13599,7 +13599,7 @@
"src/trace_redaction/proto_util.cc",
"src/trace_redaction/prune_package_list.cc",
"src/trace_redaction/redact_ftrace_event.cc",
- "src/trace_redaction/redact_sched_switch.cc",
+ "src/trace_redaction/redact_sched_events.cc",
"src/trace_redaction/redact_task_newtask.cc",
"src/trace_redaction/remap_scheduling_events.cc",
"src/trace_redaction/remove_process_free_comm.cc",
@@ -13629,7 +13629,7 @@
"src/trace_redaction/process_thread_timeline_unittest.cc",
"src/trace_redaction/proto_util_unittest.cc",
"src/trace_redaction/prune_package_list_unittest.cc",
- "src/trace_redaction/redact_sched_switch_unittest.cc",
+ "src/trace_redaction/redact_sched_events_unittest.cc",
"src/trace_redaction/redact_task_newtask_unittest.cc",
"src/trace_redaction/remap_scheduling_events_unittest.cc",
"src/trace_redaction/remove_process_free_comm_unittest.cc",
diff --git a/src/trace_redaction/BUILD.gn b/src/trace_redaction/BUILD.gn
index c9ab86e..1077891 100644
--- a/src/trace_redaction/BUILD.gn
+++ b/src/trace_redaction/BUILD.gn
@@ -59,8 +59,8 @@
"prune_package_list.h",
"redact_ftrace_event.cc",
"redact_ftrace_event.h",
- "redact_sched_switch.cc",
- "redact_sched_switch.h",
+ "redact_sched_events.cc",
+ "redact_sched_events.h",
"redact_task_newtask.cc",
"redact_task_newtask.h",
"remap_scheduling_events.cc",
@@ -106,7 +106,7 @@
"filter_sched_waking_events_integrationtest.cc",
"filter_task_rename_integrationtest.cc",
"prune_package_list_integrationtest.cc",
- "redact_sched_switch_integrationtest.cc",
+ "redact_sched_events_integrationtest.cc",
"remap_scheduling_events_integrationtest.cc",
"scrub_ftrace_events_integrationtest.cc",
"scrub_process_stats_integrationtest.cc",
@@ -144,7 +144,7 @@
"process_thread_timeline_unittest.cc",
"proto_util_unittest.cc",
"prune_package_list_unittest.cc",
- "redact_sched_switch_unittest.cc",
+ "redact_sched_events_unittest.cc",
"redact_task_newtask_unittest.cc",
"remap_scheduling_events_unittest.cc",
"remove_process_free_comm_unittest.cc",
diff --git a/src/trace_redaction/main.cc b/src/trace_redaction/main.cc
index 798d1a0..9a554a6 100644
--- a/src/trace_redaction/main.cc
+++ b/src/trace_redaction/main.cc
@@ -28,7 +28,7 @@
#include "src/trace_redaction/populate_allow_lists.h"
#include "src/trace_redaction/prune_package_list.h"
#include "src/trace_redaction/redact_ftrace_event.h"
-#include "src/trace_redaction/redact_sched_switch.h"
+#include "src/trace_redaction/redact_sched_events.h"
#include "src/trace_redaction/redact_task_newtask.h"
#include "src/trace_redaction/remap_scheduling_events.h"
#include "src/trace_redaction/remove_process_free_comm.h"
@@ -86,7 +86,7 @@
redactor.emplace_transform<PrunePackageList>();
redactor.emplace_transform<ScrubProcessStats>();
- auto* comms_harness = redactor.emplace_transform<RedactSchedSwitchHarness>();
+ auto* comms_harness = redactor.emplace_transform<RedactSchedEvents>();
comms_harness->emplace_transform<ClearComms>();
auto* redact_ftrace_events = redactor.emplace_transform<RedactFtraceEvent>();
diff --git a/src/trace_redaction/redact_sched_switch.cc b/src/trace_redaction/redact_sched_events.cc
similarity index 88%
rename from src/trace_redaction/redact_sched_switch.cc
rename to src/trace_redaction/redact_sched_events.cc
index d2ce751..193643e 100644
--- a/src/trace_redaction/redact_sched_switch.cc
+++ b/src/trace_redaction/redact_sched_events.cc
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include "src/trace_redaction/redact_sched_switch.h"
+#include "src/trace_redaction/redact_sched_events.h"
#include "perfetto/protozero/scattered_heap_buffer.h"
#include "src/trace_processor/util/status_macros.h"
@@ -106,9 +106,9 @@
// collection of ftrace event messages) because data in a sched_switch message
// is needed in order to know if the event should be added to the bundle.
-RedactSchedSwitchHarness::Modifier::~Modifier() = default;
+SchedEventModifier::~SchedEventModifier() = default;
-base::Status RedactSchedSwitchHarness::Transform(const Context& context,
+base::Status RedactSchedEvents::Transform(const Context& context,
std::string* packet) const {
protozero::HeapBuffered<protos::pbzero::TracePacket> message;
protozero::ProtoDecoder decoder(*packet);
@@ -117,7 +117,7 @@
field = decoder.ReadField()) {
if (field.id() == protos::pbzero::TracePacket::kFtraceEventsFieldNumber) {
RETURN_IF_ERROR(
- TransformFtraceEvents(context, field, message->set_ftrace_events()));
+ OnFtraceEvents(context, field, message->set_ftrace_events()));
} else {
proto_util::AppendField(field, message.get());
}
@@ -128,7 +128,7 @@
return base::OkStatus();
}
-base::Status RedactSchedSwitchHarness::TransformFtraceEvents(
+base::Status RedactSchedEvents::OnFtraceEvents(
const Context& context,
protozero::Field ftrace_events,
protos::pbzero::FtraceEventBundle* message) const {
@@ -141,13 +141,13 @@
decoder.FindField(protos::pbzero::FtraceEventBundle::kCpuFieldNumber);
if (!cpu.valid()) {
return base::ErrStatus(
- "RedactSchedSwitchHarness: missing cpu in ftrace event bundle.");
+ "RedactSchedEvents: missing cpu in ftrace event bundle.");
}
for (auto field = decoder.ReadField(); field.valid();
field = decoder.ReadField()) {
if (field.id() == protos::pbzero::FtraceEventBundle::kEventFieldNumber) {
- RETURN_IF_ERROR(TransformFtraceEvent(context, cpu.as_int32(), field,
+ RETURN_IF_ERROR(OnFtraceEvent(context, cpu.as_int32(), field,
message->add_event()));
continue;
}
@@ -156,7 +156,7 @@
protos::pbzero::FtraceEventBundle::kCompactSchedFieldNumber) {
protos::pbzero::FtraceEventBundle::CompactSched::Decoder comp_sched(
field.as_bytes());
- RETURN_IF_ERROR(TransformCompSched(context, cpu.as_int32(), comp_sched,
+ RETURN_IF_ERROR(OnCompSched(context, cpu.as_int32(), comp_sched,
message->set_compact_sched()));
continue;
}
@@ -167,7 +167,7 @@
return base::OkStatus();
}
-base::Status RedactSchedSwitchHarness::TransformFtraceEvent(
+base::Status RedactSchedEvents::OnFtraceEvent(
const Context& context,
int32_t cpu,
protozero::Field ftrace_event,
@@ -181,7 +181,7 @@
decoder.FindField(protos::pbzero::FtraceEvent::kTimestampFieldNumber);
if (!ts.valid()) {
return base::ErrStatus(
- "RedactSchedSwitchHarness: missing timestamp in ftrace event.");
+ "RedactSchedEvents: missing timestamp in ftrace event.");
}
std::string scratch_str;
@@ -192,7 +192,7 @@
case protos::pbzero::FtraceEvent::kSchedSwitchFieldNumber: {
protos::pbzero::SchedSwitchFtraceEvent::Decoder sched_switch(
field.as_bytes());
- RETURN_IF_ERROR(TransformFtraceEventSchedSwitch(
+ RETURN_IF_ERROR(OnFtraceEventSwitch(
context, ts.as_uint64(), cpu, sched_switch, &scratch_str,
message->set_sched_switch()));
break;
@@ -201,7 +201,7 @@
case protos::pbzero::FtraceEvent::kSchedWakingFieldNumber: {
protos::pbzero::SchedWakingFtraceEvent::Decoder sched_waking(
field.as_bytes());
- RETURN_IF_ERROR(TransformFtraceEventSchedWaking(
+ RETURN_IF_ERROR(OnFtraceEventWaking(
context, ts.as_uint64(), cpu, sched_waking, &scratch_str,
message->set_sched_waking()));
break;
@@ -217,7 +217,7 @@
return base::OkStatus();
}
-base::Status RedactSchedSwitchHarness::TransformFtraceEventSchedSwitch(
+base::Status RedactSchedEvents::OnFtraceEventSwitch(
const Context& context,
uint64_t ts,
int32_t cpu,
@@ -236,7 +236,7 @@
if (!std::all_of(has_fields.begin(), has_fields.end(), IsTrue)) {
return base::ErrStatus(
- "RedactSchedSwitchHarness: missing required SchedSwitchFtraceEvent "
+ "RedactSchedEvents: missing required SchedSwitchFtraceEvent "
"field.");
}
@@ -270,7 +270,7 @@
return base::OkStatus();
}
-base::Status RedactSchedSwitchHarness::TransformFtraceEventSchedWaking(
+base::Status RedactSchedEvents::OnFtraceEventWaking(
const Context& context,
uint64_t ts,
int32_t cpu,
@@ -287,7 +287,7 @@
if (!std::all_of(has_fields.begin(), has_fields.end(), IsTrue)) {
return base::ErrStatus(
- "RedactSchedSwitchHarness: missing required SchedWakingFtraceEvent "
+ "RedactSchedEvents: missing required SchedWakingFtraceEvent "
"field.");
}
@@ -311,7 +311,7 @@
return base::OkStatus();
}
-base::Status RedactSchedSwitchHarness::TransformCompSched(
+base::Status RedactSchedEvents::OnCompSched(
const Context& context,
int32_t cpu,
protos::pbzero::FtraceEventBundle::CompactSched::Decoder& comp_sched,
@@ -339,13 +339,13 @@
if (index < 0) {
return base::ErrStatus(
- "RedactSchedSwitchHarness: failed to insert string into intern "
+ "RedactSchedEvents: failed to insert string into intern "
"table.");
}
}
if (std::any_of(has_switch_fields.begin(), has_switch_fields.end(), IsTrue)) {
- RETURN_IF_ERROR(TransformCompSchedSwitch(context, cpu, comp_sched,
+ RETURN_IF_ERROR(OnCompSchedSwitch(context, cpu, comp_sched,
&intern_table, message));
}
@@ -362,7 +362,7 @@
return base::OkStatus();
}
-base::Status RedactSchedSwitchHarness::TransformCompSchedSwitch(
+base::Status RedactSchedEvents::OnCompSchedSwitch(
const Context& context,
int32_t cpu,
protos::pbzero::FtraceEventBundle::CompactSched::Decoder& comp_sched,
@@ -382,8 +382,7 @@
if (!std::all_of(has_fields.begin(), has_fields.end(), IsTrue)) {
return base::ErrStatus(
- "RedactSchedSwitchHarness: missing required "
- "FtraceEventBundle::CompactSched switch field.");
+ "RedactSchedEvents: missing required FtraceEventBundle::CompactSched switch field.");
}
std::array<bool, 3> parse_errors = {false, false, false};
@@ -393,8 +392,7 @@
auto it_comm = comp_sched.switch_next_comm_index(&parse_errors.at(2));
if (std::any_of(parse_errors.begin(), parse_errors.end(), IsTrue)) {
- return base::ErrStatus(
- "RedactSchedSwitchHarness: failed to parse CompactSched.");
+ return base::ErrStatus("RedactSchedEvents: failed to parse CompactSched.");
}
std::string scratch_str;
@@ -422,8 +420,7 @@
if (found < 0) {
return base::ErrStatus(
- "RedactSchedSwitchHarness: failed to insert string into intern "
- "table.");
+ "RedactSchedEvents: failed to insert string into intern table.");
}
packed_comm.Append(found);
@@ -436,7 +433,7 @@
if (it_ts || it_pid || it_comm) {
return base::ErrStatus(
- "RedactSchedSwitchHarness: uneven associative arrays in "
+ "RedactSchedEvents: uneven associative arrays in "
"FtraceEventBundle::CompactSched (switch).");
}
@@ -475,7 +472,7 @@
if (!std::all_of(passed_through.begin(), passed_through.end(), IsTrue)) {
return base::ErrStatus(
- "RedactSchedSwitchHarness: missing required "
+ "RedactSchedEvents: missing required "
"FtraceEventBundle::CompactSched switch field.");
}
diff --git a/src/trace_redaction/redact_sched_switch.h b/src/trace_redaction/redact_sched_events.h
similarity index 72%
rename from src/trace_redaction/redact_sched_switch.h
rename to src/trace_redaction/redact_sched_events.h
index 906eb11..b393353 100644
--- a/src/trace_redaction/redact_sched_switch.h
+++ b/src/trace_redaction/redact_sched_events.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef SRC_TRACE_REDACTION_REDACT_SCHED_SWITCH_H_
-#define SRC_TRACE_REDACTION_REDACT_SCHED_SWITCH_H_
+#ifndef SRC_TRACE_REDACTION_REDACT_SCHED_EVENTS_H_
+#define SRC_TRACE_REDACTION_REDACT_SCHED_EVENTS_H_
#include "src/trace_redaction/trace_redaction_framework.h"
@@ -44,22 +44,18 @@
std::vector<std::string_view> interned_comms_;
};
-// TODO(vaage): Rename this class. When it was first created, it only handled
-// switch events, so having "switch" in the name sense. Now that it is
-// expanding to include waking events, a more general name is needed (e.g.
-// scheduling covers both switch and waking events).
-class RedactSchedSwitchHarness : public TransformPrimitive {
+class SchedEventModifier {
public:
- class Modifier {
- public:
- virtual ~Modifier();
- virtual base::Status Modify(const Context& context,
- uint64_t ts,
- int32_t cpu,
- int32_t* pid,
- std::string* comm) const = 0;
- };
+ virtual ~SchedEventModifier();
+ virtual base::Status Modify(const Context& context,
+ uint64_t ts,
+ int32_t cpu,
+ int32_t* pid,
+ std::string* comm) const = 0;
+};
+class RedactSchedEvents : public TransformPrimitive {
+ public:
base::Status Transform(const Context& context,
std::string* packet) const override;
@@ -69,19 +65,19 @@
}
private:
- base::Status TransformFtraceEvents(
+ base::Status OnFtraceEvents(
const Context& context,
protozero::Field ftrace_events,
protos::pbzero::FtraceEventBundle* message) const;
- base::Status TransformFtraceEvent(const Context& context,
+ base::Status OnFtraceEvent(const Context& context,
int32_t cpu,
protozero::Field ftrace_event,
protos::pbzero::FtraceEvent* message) const;
// scratch_str is a reusable string, allowing comm modifications to be done in
// a shared buffer, avoiding allocations when processing ftrace events.
- base::Status TransformFtraceEventSchedSwitch(
+ base::Status OnFtraceEventSwitch(
const Context& context,
uint64_t ts,
int32_t cpu,
@@ -89,7 +85,7 @@
std::string* scratch_str,
protos::pbzero::SchedSwitchFtraceEvent* message) const;
- base::Status TransformFtraceEventSchedWaking(
+ base::Status OnFtraceEventWaking(
const Context& context,
uint64_t ts,
int32_t cpu,
@@ -97,23 +93,23 @@
std::string* scratch_str,
protos::pbzero::SchedWakingFtraceEvent* message) const;
- base::Status TransformCompSched(
+ base::Status OnCompSched(
const Context& context,
int32_t cpu,
protos::pbzero::FtraceEventBundle::CompactSched::Decoder& comp_sched,
protos::pbzero::FtraceEventBundle::CompactSched* message) const;
- base::Status TransformCompSchedSwitch(
+ base::Status OnCompSchedSwitch(
const Context& context,
int32_t cpu,
protos::pbzero::FtraceEventBundle::CompactSched::Decoder& comp_sched,
InternTable* intern_table,
protos::pbzero::FtraceEventBundle::CompactSched* message) const;
- std::unique_ptr<Modifier> modifier_;
+ std::unique_ptr<SchedEventModifier> modifier_;
};
-class ClearComms : public RedactSchedSwitchHarness::Modifier {
+class ClearComms : public SchedEventModifier {
base::Status Modify(const Context& context,
uint64_t ts,
int32_t cpu,
@@ -123,4 +119,4 @@
} // namespace perfetto::trace_redaction
-#endif // SRC_TRACE_REDACTION_REDACT_SCHED_SWITCH_H_
+#endif // SRC_TRACE_REDACTION_REDACT_SCHED_EVENTS_H_
diff --git a/src/trace_redaction/redact_sched_switch_integrationtest.cc b/src/trace_redaction/redact_sched_events_integrationtest.cc
similarity index 97%
rename from src/trace_redaction/redact_sched_switch_integrationtest.cc
rename to src/trace_redaction/redact_sched_events_integrationtest.cc
index 247d44b..59e582f 100644
--- a/src/trace_redaction/redact_sched_switch_integrationtest.cc
+++ b/src/trace_redaction/redact_sched_events_integrationtest.cc
@@ -22,7 +22,7 @@
#include "src/base/test/status_matchers.h"
#include "src/trace_redaction/collect_timeline_events.h"
#include "src/trace_redaction/find_package_uid.h"
-#include "src/trace_redaction/redact_sched_switch.h"
+#include "src/trace_redaction/redact_sched_events.h"
#include "src/trace_redaction/trace_redaction_framework.h"
#include "src/trace_redaction/trace_redaction_integration_fixture.h"
#include "src/trace_redaction/trace_redactor.h"
@@ -95,7 +95,7 @@
trace_redactor()->emplace_collect<CollectTimelineEvents>();
auto* harness =
- trace_redactor()->emplace_transform<RedactSchedSwitchHarness>();
+ trace_redactor()->emplace_transform<RedactSchedEvents>();
harness->emplace_transform<ClearComms>();
context()->package_name = "com.Unity.com.unity.multiplayer.samples.coop";
diff --git a/src/trace_redaction/redact_sched_switch_unittest.cc b/src/trace_redaction/redact_sched_events_unittest.cc
similarity index 91%
rename from src/trace_redaction/redact_sched_switch_unittest.cc
rename to src/trace_redaction/redact_sched_events_unittest.cc
index cd05794..4885fa2 100644
--- a/src/trace_redaction/redact_sched_switch_unittest.cc
+++ b/src/trace_redaction/redact_sched_events_unittest.cc
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include "src/trace_redaction/redact_sched_switch.h"
+#include "src/trace_redaction/redact_sched_events.h"
#include "src/base/test/status_matchers.h"
#include "test/gtest_and_gmock.h"
@@ -36,6 +36,7 @@
constexpr int32_t kPidA = 11;
constexpr int32_t kPidB = 12;
constexpr int32_t kPidC = 13;
+constexpr int32_t kPidD = 14;
constexpr int32_t kCpuA = 0;
constexpr int32_t kCpuB = 1;
@@ -51,7 +52,8 @@
constexpr auto kCommC = "comm-c";
constexpr auto kCommNone = "";
-class ChangePidToMax : public RedactSchedSwitchHarness::Modifier {
+template<int32_t new_pid>
+class ChangePidTo : public SchedEventModifier {
public:
base::Status Modify(const Context& context,
uint64_t ts,
@@ -59,7 +61,7 @@
int32_t* pid,
std::string*) const override {
if (!context.timeline->PidConnectsToUid(ts, *pid, *context.package_uid)) {
- *pid = std::numeric_limits<int32_t>::max();
+ *pid = new_pid;
}
return base::OkStatus();
@@ -124,7 +126,7 @@
// In this case, the target uid will be UID A. That means the comm values for
// PID B should be removed, and the comm values for PID A should remain.
TEST_F(RedactSchedSwitchFtraceEventTest, KeepsTargetCommValues) {
- RedactSchedSwitchHarness redact;
+ RedactSchedEvents redact;
redact.emplace_transform<ClearComms>();
context_.package_uid = kUidA;
@@ -158,7 +160,7 @@
// verifies all comm values will be removed when testing against an unused
// uid.
TEST_F(RedactSchedSwitchFtraceEventTest, RemovesAllCommsIfPackageDoesntExist) {
- RedactSchedSwitchHarness redact;
+ RedactSchedEvents redact;
redact.emplace_transform<ClearComms>();
context_.package_uid = kUidC;
@@ -236,7 +238,7 @@
auto packet_buffer = packet_.SerializeAsString();
- RedactSchedSwitchHarness redact;
+ RedactSchedEvents redact;
redact.emplace_transform<ClearComms>();
ASSERT_OK(redact.Transform(context_, &packet_buffer));
@@ -270,7 +272,7 @@
auto packet_buffer = packet_.SerializeAsString();
- RedactSchedSwitchHarness redact;
+ RedactSchedEvents redact;
redact.emplace_transform<ClearComms>();
ASSERT_OK(redact.Transform(context_, &packet_buffer));
@@ -305,7 +307,7 @@
auto packet_buffer = packet_.SerializeAsString();
- RedactSchedSwitchHarness redact;
+ RedactSchedEvents redact;
redact.emplace_transform<ClearComms>();
ASSERT_OK(redact.Transform(context_, &packet_buffer));
@@ -339,8 +341,8 @@
auto packet_buffer = packet_.SerializeAsString();
- RedactSchedSwitchHarness redact;
- redact.emplace_transform<ChangePidToMax>();
+ RedactSchedEvents redact;
+ redact.emplace_transform<ChangePidTo<kPidC>>();
ASSERT_OK(redact.Transform(context_, &packet_buffer));
@@ -357,7 +359,9 @@
ASSERT_EQ(compact_sched.switch_next_pid_size(), 2);
ASSERT_EQ(compact_sched.switch_next_pid().at(0), kPidA);
- ASSERT_NE(compact_sched.switch_next_pid().at(1), kPidB);
+
+ // Because Pid B was not connected to Uid A, it should have its pid changed.
+ ASSERT_EQ(compact_sched.switch_next_pid().at(1), kPidC);
}
class RedactSchedWakingFtraceEventTest : public testing::Test {
@@ -414,7 +418,7 @@
};
TEST_F(RedactSchedWakingFtraceEventTest, WakeeKeepsCommWhenConnectedToPackage) {
- RedactSchedSwitchHarness redact;
+ RedactSchedEvents redact;
redact.emplace_transform<ClearComms>();
context_.package_uid = kUidB;
@@ -437,7 +441,7 @@
TEST_F(RedactSchedWakingFtraceEventTest,
WakeeLosesCommWhenNotConnectedToPackage) {
- RedactSchedSwitchHarness redact;
+ RedactSchedEvents redact;
redact.emplace_transform<ClearComms>();
context_.package_uid = kUidA;
@@ -459,8 +463,8 @@
}
TEST_F(RedactSchedWakingFtraceEventTest, WakeeKeepsPidWhenConnectedToPackage) {
- RedactSchedSwitchHarness redact;
- redact.emplace_transform<ChangePidToMax>();
+ RedactSchedEvents redact;
+ redact.emplace_transform<ChangePidTo<kPidD>>();
context_.package_uid = kUidB;
@@ -477,13 +481,15 @@
ASSERT_EQ(events.size(), 2u);
ASSERT_EQ(events.front().sched_waking().pid(), kPidB);
- ASSERT_NE(events.back().sched_waking().pid(), kPidC);
+
+ // Because Pid C was not connected to Uid B, it should have its pid changed.
+ ASSERT_EQ(events.back().sched_waking().pid(), kPidD);
}
TEST_F(RedactSchedWakingFtraceEventTest,
WakeeLosesPidWhenNotConnectedToPackage) {
- RedactSchedSwitchHarness redact;
- redact.emplace_transform<ChangePidToMax>();
+ RedactSchedEvents redact;
+ redact.emplace_transform<ChangePidTo<kPidD>>();
context_.package_uid = kUidA;
@@ -499,13 +505,14 @@
ASSERT_EQ(events.size(), 2u);
- ASSERT_NE(events.front().sched_waking().pid(), kPidB);
- ASSERT_NE(events.back().sched_waking().pid(), kPidC);
+ // Both pids should have changed.
+ ASSERT_EQ(events.at(0).sched_waking().pid(), kPidD);
+ ASSERT_EQ(events.at(1).sched_waking().pid(), kPidD);
}
TEST_F(RedactSchedWakingFtraceEventTest, WakerPidIsLeftUnaffected) {
- RedactSchedSwitchHarness redact;
- redact.emplace_transform<ChangePidToMax>();
+ RedactSchedEvents redact;
+ redact.emplace_transform<ChangePidTo<kPidD>>();
context_.package_uid = kUidB;
@@ -521,8 +528,11 @@
ASSERT_EQ(events.size(), 2u);
- ASSERT_EQ(events.front().pid(), static_cast<uint32_t>(kPidA));
- ASSERT_EQ(events.back().pid(), static_cast<uint32_t>(kPidA));
+ // The waker in the ftrace event waking event should change, but by another
+ // primitive. This case only appears in the ftrace events because the waker is
+ // inferred in the comp sched case.
+ ASSERT_EQ(events.at(0).pid(), static_cast<uint32_t>(kPidA));
+ ASSERT_EQ(events.at(1).pid(), static_cast<uint32_t>(kPidA));
}
} // namespace perfetto::trace_redaction
diff --git a/src/trace_redaction/redact_task_newtask.h b/src/trace_redaction/redact_task_newtask.h
index 61c8b52..b162a9b 100644
--- a/src/trace_redaction/redact_task_newtask.h
+++ b/src/trace_redaction/redact_task_newtask.h
@@ -18,7 +18,7 @@
#define SRC_TRACE_REDACTION_REDACT_TASK_NEWTASK_H_
#include "src/trace_redaction/redact_ftrace_event.h"
-#include "src/trace_redaction/redact_sched_switch.h"
+#include "src/trace_redaction/redact_sched_events.h"
#include "src/trace_redaction/trace_redaction_framework.h"
namespace perfetto::trace_redaction {
@@ -42,7 +42,7 @@
}
public:
- std::unique_ptr<RedactSchedSwitchHarness::Modifier> modifier_;
+ std::unique_ptr<SchedEventModifier> modifier_;
};
} // namespace perfetto::trace_redaction