aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPablo Gamito <pablogamito@google.com>2024-04-25 16:05:30 +0000
committerPablo Gamito <pablogamito@google.com>2024-04-26 13:20:54 +0000
commit43851e716a212e8d7bed04107cd98f626aadda02 (patch)
treee432add93b2c67ea77d46ed0de3e2ba273464181
parent72d015eeccd5c5532a5686b925685c09a64b486f (diff)
downloadperfetto-43851e716a212e8d7bed04107cd98f626aadda02.tar.gz
Add test for dropped messages
To make sure the protolog parser can handle dropped packets Bug: 336781034 Test: tools/ninja -C out/linux_clang_release && tools/diff_test_trace_processor.py ./out/linux_clang_release/trace_processor_shell --name-filter "ProtoLog" Change-Id: I9f8e9df64558abf744a90ca4959f8f734fcd86d2
-rw-r--r--test/trace_processor/diff_tests/parser/android/protolog_packet_loss.textproto118
-rw-r--r--test/trace_processor/diff_tests/parser/android/tests_protolog.py10
2 files changed, 128 insertions, 0 deletions
diff --git a/test/trace_processor/diff_tests/parser/android/protolog_packet_loss.textproto b/test/trace_processor/diff_tests/parser/android/protolog_packet_loss.textproto
new file mode 100644
index 000000000..ab6fda5f6
--- /dev/null
+++ b/test/trace_processor/diff_tests/parser/android/protolog_packet_loss.textproto
@@ -0,0 +1,118 @@
+packet {
+ trusted_uid: 1000
+ trusted_packet_sequence_id: 3
+ sequence_flags: 1
+ previous_packet_dropped: true
+ trusted_pid: 1716
+ first_packet_on_sequence: true
+}
+packet {
+ trusted_uid: 1000
+ trusted_packet_sequence_id: 3
+ interned_data {
+ protolog_string_args {
+ iid: 1
+ str: "MyTestString"
+ }
+ }
+ trusted_pid: 1716
+}
+packet {
+ trusted_uid: 1000
+ trusted_packet_sequence_id: 3
+ interned_data {
+ protolog_string_args {
+ iid: 2
+ str: "MyOtherTestString"
+ }
+ }
+ trusted_pid: 1716
+}
+packet {
+ trusted_uid: 1000
+ trusted_packet_sequence_id: 3
+ sequence_flags: 2
+ trusted_pid: 1716
+ timestamp: 857384130
+ protolog_message {
+ message_id: 6924537961316301726
+ str_param_iids: 1
+ str_param_iids: 1
+ }
+}
+packet {
+ trusted_uid: 1000
+ trusted_packet_sequence_id: 3
+ sequence_flags: 2
+ trusted_pid: 1716
+ timestamp: 857384130
+ protolog_message {
+ message_id: 6924537961316301726
+ str_param_iids: 1
+ str_param_iids: 2
+ }
+ previous_packet_dropped: true
+}
+packet {
+ trusted_uid: 1000
+ trusted_packet_sequence_id: 3
+ sequence_flags: 2
+ trusted_pid: 1716
+ timestamp: 857384130
+ protolog_message {
+ message_id: 6924537961316301726
+ str_param_iids: 2
+ str_param_iids: 2
+ }
+}
+packet {
+ trusted_uid: 1000
+ trusted_packet_sequence_id: 4
+ sequence_flags: 1
+ previous_packet_dropped: true
+ trusted_pid: 1716
+ first_packet_on_sequence: true
+}
+packet {
+ trusted_uid: 1000
+ trusted_packet_sequence_id: 4
+ interned_data {
+ protolog_string_args {
+ iid: 1
+ str: "MyNextTestString"
+ }
+ }
+ trusted_pid: 1716
+}
+packet {
+ trusted_uid: 1000
+ trusted_packet_sequence_id: 4
+ sequence_flags: 2
+ trusted_pid: 1716
+ timestamp: 857384130
+ protolog_message {
+ message_id: 6924537961316301726
+ str_param_iids: 1
+ str_param_iids: 1
+ }
+}
+packet {
+ trusted_uid: 10224
+ trusted_packet_sequence_id: 10
+ previous_packet_dropped: true
+ trusted_pid: 2063
+ first_packet_on_sequence: true
+ protolog_viewer_config {
+ messages {
+ message_id: 6924537961316301726
+ message: "Test message with two strings: %s and %s"
+ level: PROTOLOG_LEVEL_DEBUG
+ group_id: 1
+ }
+ groups {
+ id: 1
+ name: "MY_FIRST_GROUP"
+ tag: "MyFirstGroup"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/trace_processor/diff_tests/parser/android/tests_protolog.py b/test/trace_processor/diff_tests/parser/android/tests_protolog.py
index 404f34e1a..358fe5125 100644
--- a/test/trace_processor/diff_tests/parser/android/tests_protolog.py
+++ b/test/trace_processor/diff_tests/parser/android/tests_protolog.py
@@ -31,3 +31,13 @@ class ProtoLog(TestSuite):
1,857384110,"WARN","MySecondGroup","Test message with different int formats: 1776, 0o3360, 0x6f0, 888.000000, 8.880000e+02.","[NULL]"
2,857384130,"ERROR","MyThirdGroup","Message re-using interned string 'MyOtherTestString' == 'MyOtherTestString', but 'SomeOtherTestString' != 'MyOtherTestString'","[NULL]"
"""))
+
+ def test_handles_packet_loss(self):
+ return DiffTestBlueprint(
+ trace=Path('protolog_packet_loss.textproto'),
+ query="SELECT id, ts, level, tag, message, stacktrace FROM protolog;",
+ out=Csv("""
+ "id","ts","level","tag","message","stacktrace"
+ 0,857384130,"DEBUG","MyFirstGroup","Test message with two strings: MyTestString and MyTestString","[NULL]"
+ 1,857384130,"DEBUG","MyFirstGroup","Test message with two strings: MyNextTestString and MyNextTestString","[NULL]"
+ """))