diff options
author | Justin DeMartino <jjdemartino@google.com> | 2020-10-14 19:39:53 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2020-10-14 19:39:53 +0000 |
commit | 0d11af03e43f110b0bb160f7e20436d0043e3038 (patch) | |
tree | 48f8bcca856276ec73a86dd3fb26143d3ca64578 /logd/SerializedLogChunkTest.cpp | |
parent | 075666ebd0dee8d0c4a2efa54f7c324a3f67ee2a (diff) | |
parent | a6c01e4e98d2b343dcecfc99611e2e6250c730db (diff) |
Merge changes from topic "SP1A.200921.001" into s-keystone-qcom-dev
* changes:
fs_mgr: adb-remount-test.sh: filter out more administrivia mounts.
Merge SP1A.200921.001 Change-Id: I90b97c4e9fb10b1f45e74def404823eed5b1aaa8
Diffstat (limited to 'logd/SerializedLogChunkTest.cpp')
-rw-r--r-- | logd/SerializedLogChunkTest.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/logd/SerializedLogChunkTest.cpp b/logd/SerializedLogChunkTest.cpp index f10b9c673..3b451252d 100644 --- a/logd/SerializedLogChunkTest.cpp +++ b/logd/SerializedLogChunkTest.cpp @@ -281,3 +281,27 @@ TEST_P(UidClearTest, save_beginning_and_end) { } INSTANTIATE_TEST_CASE_P(UidClearTests, UidClearTest, testing::Values(true, false)); + +// b/166187079: ClearUidLogs() should not compress the log if writer_active_ is true +TEST(SerializedLogChunk, ClearUidLogs_then_FinishWriting) { + static constexpr size_t kChunkSize = 10 * 4096; + static constexpr uid_t kUidToClear = 1000; + static constexpr uid_t kOtherUid = 1234; + + SerializedLogChunk chunk{kChunkSize}; + static const char msg1[] = "saved first message"; + static const char msg2[] = "cleared interior message"; + static const char msg3[] = "last message stays"; + ASSERT_NE(nullptr, chunk.Log(1, log_time(), kOtherUid, 1, 2, msg1, sizeof(msg1))); + ASSERT_NE(nullptr, chunk.Log(2, log_time(), kUidToClear, 1, 2, msg2, sizeof(msg2))); + ASSERT_NE(nullptr, chunk.Log(3, log_time(), kOtherUid, 1, 2, msg3, sizeof(msg3))); + + chunk.ClearUidLogs(kUidToClear, LOG_ID_MAIN, nullptr); + + ASSERT_NE(nullptr, chunk.Log(4, log_time(), kOtherUid, 1, 2, msg3, sizeof(msg3))); + + chunk.FinishWriting(); + // The next line would violate a CHECK() during decompression with the faulty code. + chunk.IncReaderRefCount(); + chunk.DecReaderRefCount(); +} |