aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/ProfileData/InstrProfTest.cpp
diff options
context:
space:
mode:
authorKazu Hirata <kazu@google.com>2024-11-20 14:03:27 -0800
committerGitHub <noreply@github.com>2024-11-20 14:03:27 -0800
commitec5b729e651c48dfff67487e6bb24c218c35cda9 (patch)
tree422293621993d49ad9dd15b498cb8a54769c9f8d /llvm/unittests/ProfileData/InstrProfTest.cpp
parent9be475af81ee36f1d360ad1d70b695c4b26c98fa (diff)
downloadllvm-ec5b729e651c48dfff67487e6bb24c218c35cda9.zip
llvm-ec5b729e651c48dfff67487e6bb24c218c35cda9.tar.gz
llvm-ec5b729e651c48dfff67487e6bb24c218c35cda9.tar.bz2
[memprof] Upgrade a unit test to MemProf Version 3 (#117063)
This patch upgrades a unit test to MemProf Version 3 while removing those bits that cannot be upgraded to Version 3. The bits being removed expect instrprof_error::hash_mismatch from a broken MemProf profile that references a frame that doesn't actually exist. Now, Version 3 no longer issues instrprof_error::hash_mismatch. Even if it still issued instrprof_error::hash_mismatch, we would have a couple of hurdles: - InstrProfWriter::addMemProfData will soon require all (or none) of the fields (frames, call stacks, and records) be populated. That is, it won't accept an instance of IndexedMemProfData with frames missing. - writeMemProfV3 asserts that every frame occurs at least once: assert(MemProfData.Frames.size() == FrameHistogram.size()); This patch gives up on instrprof_error::hash_mismatch and tries to trigger instrprof_error::unknown_function with the empty profile.
Diffstat (limited to 'llvm/unittests/ProfileData/InstrProfTest.cpp')
-rw-r--r--llvm/unittests/ProfileData/InstrProfTest.cpp22
1 files changed, 3 insertions, 19 deletions
diff --git a/llvm/unittests/ProfileData/InstrProfTest.cpp b/llvm/unittests/ProfileData/InstrProfTest.cpp
index 3beab89..8bd39fd 100644
--- a/llvm/unittests/ProfileData/InstrProfTest.cpp
+++ b/llvm/unittests/ProfileData/InstrProfTest.cpp
@@ -640,29 +640,13 @@ TEST_F(InstrProfTest, test_memprof_getrecord_error) {
ASSERT_THAT_ERROR(Writer.mergeProfileKind(InstrProfKind::MemProf),
Succeeded());
- const IndexedMemProfRecord IndexedMR = makeRecord(
- /*AllocFrames=*/
- {
- {0, 1},
- {2, 3},
- },
- /*CallSiteFrames=*/{
- {4, 5},
- });
- // We skip adding the frame mappings here unlike the test_memprof unit test
- // above to exercise the failure path when getMemProfRecord is invoked.
- Writer.addMemProfRecord(/*Id=*/0x9999, IndexedMR);
-
+ Writer.setMemProfVersionRequested(memprof::Version3);
+ // Generate an empty profile.
auto Profile = Writer.writeBuffer();
readProfile(std::move(Profile));
- // Missing frames give a hash_mismatch error.
- auto RecordOr = Reader->getMemProfRecord(0x9999);
- ASSERT_TRUE(
- ErrorEquals(instrprof_error::hash_mismatch, RecordOr.takeError()));
-
// Missing functions give a unknown_function error.
- RecordOr = Reader->getMemProfRecord(0x1111);
+ auto RecordOr = Reader->getMemProfRecord(0x1111);
ASSERT_TRUE(
ErrorEquals(instrprof_error::unknown_function, RecordOr.takeError()));
}