summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-06-30 01:09:32 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-06-30 01:09:32 +0000
commitf1dcb0fba6ed8e9236283e12aaf479e545f522dc (patch)
treec4e9c00a78d01493d2c2350b041b1e08d76273fd
parentf834f0160eeff5a8ffe33843775190d11514c35a (diff)
parenta1258cb5b9beb18e04273ff7b90ff1cfecb5bbee (diff)
downloadextras-f1dcb0fba6ed8e9236283e12aaf479e545f522dc.tar.gz
Snap for 7505545 from a1258cb5b9beb18e04273ff7b90ff1cfecb5bbee to sc-d2-release
Change-Id: I4c6553626dd6b22f6782994c1e08dc23d6c981a1
-rw-r--r--simpleperf/dso_test.cpp36
-rw-r--r--simpleperf/get_test_data.h28
-rw-r--r--simpleperf/read_dex_file_test.cpp24
-rw-r--r--simpleperf/testdata/base.vdex (renamed from simpleperf/testdata/base_with_cdex_v1.vdex)bin2046136 -> 2046136 bytes
-rw-r--r--simpleperf/testdata/base_with_cdex_v2.vdexbin2626976 -> 0 bytes
5 files changed, 25 insertions, 63 deletions
diff --git a/simpleperf/dso_test.cpp b/simpleperf/dso_test.cpp
index c8618036..02958ce6 100644
--- a/simpleperf/dso_test.cpp
+++ b/simpleperf/dso_test.cpp
@@ -152,28 +152,24 @@ TEST(DebugElfFileFinder, build_id_mismatch) {
TEST(dso, dex_file_dso) {
#if defined(__linux__)
for (DsoType dso_type : {DSO_DEX_FILE, DSO_ELF_FILE}) {
- for (const DexFileTestData& entry : dex_file_test_data) {
- if (entry.filename == "base_with_cdex_v1.vdex") {
- continue; // TODO: reenable it.
- }
- std::unique_ptr<Dso> dso = Dso::CreateDso(dso_type, GetTestData(entry.filename));
- ASSERT_TRUE(dso);
- dso->AddDexFileOffset(entry.dexfile_offset);
- ASSERT_EQ(DSO_DEX_FILE, dso->type());
- const Symbol* symbol = dso->FindSymbol(entry.symbol_addr);
- ASSERT_NE(symbol, nullptr);
- ASSERT_EQ(symbol->addr, entry.symbol_addr);
- ASSERT_EQ(symbol->len, entry.symbol_len);
- ASSERT_STREQ(symbol->DemangledName(), entry.symbol_name.c_str());
- uint64_t min_vaddr;
- uint64_t file_offset_of_min_vaddr;
- dso->GetMinExecutableVaddr(&min_vaddr, &file_offset_of_min_vaddr);
- ASSERT_EQ(min_vaddr, 0);
- ASSERT_EQ(file_offset_of_min_vaddr, 0);
- }
+ std::unique_ptr<Dso> dso = Dso::CreateDso(dso_type, GetTestData("base.vdex"));
+ ASSERT_TRUE(dso);
+ dso->AddDexFileOffset(0x28);
+ ASSERT_EQ(DSO_DEX_FILE, dso->type());
+ const Symbol* symbol = dso->FindSymbol(0x6c77e);
+ ASSERT_NE(symbol, nullptr);
+ ASSERT_EQ(symbol->addr, static_cast<uint64_t>(0x6c77e));
+ ASSERT_EQ(symbol->len, static_cast<uint64_t>(0x16));
+ ASSERT_STREQ(symbol->DemangledName(),
+ "com.example.simpleperf.simpleperfexamplewithnative.MixActivity$1.run");
+ uint64_t min_vaddr;
+ uint64_t file_offset_of_min_vaddr;
+ dso->GetMinExecutableVaddr(&min_vaddr, &file_offset_of_min_vaddr);
+ ASSERT_EQ(min_vaddr, 0);
+ ASSERT_EQ(file_offset_of_min_vaddr, 0);
// Don't crash on not exist zip entry.
- std::unique_ptr<Dso> dso = Dso::CreateDso(dso_type, GetTestData("base.zip!/not_exist_entry"));
+ dso = Dso::CreateDso(dso_type, GetTestData("base.zip!/not_exist_entry"));
ASSERT_TRUE(dso);
ASSERT_EQ(nullptr, dso->FindSymbol(0));
}
diff --git a/simpleperf/get_test_data.h b/simpleperf/get_test_data.h
index b6a7999e..1ef663b9 100644
--- a/simpleperf/get_test_data.h
+++ b/simpleperf/get_test_data.h
@@ -149,32 +149,4 @@ static const std::string PERF_DATA_WITH_IP_ZERO_IN_CALLCHAIN =
// generated by `simpleperf record -e cs-etm:u ./etm_test_loop`
static const std::string PERF_DATA_ETM_TEST_LOOP = "etm/perf.data";
-struct DexFileTestData {
- std::string filename;
- uint64_t dexfile_offset;
- size_t symbol_count;
- // One symbol in the dex file.
- uint64_t symbol_addr;
- uint64_t symbol_len;
- std::string symbol_name;
-};
-
-static DexFileTestData dex_file_test_data[] = {
- DexFileTestData{
- "base_with_cdex_v1.vdex",
- 0x28,
- 12435,
- 0x6c77e,
- 0x16,
- "com.example.simpleperf.simpleperfexamplewithnative.MixActivity$1.run",
- },
- DexFileTestData{
- "base_with_cdex_v2.vdex",
- 0x40,
- 16891,
- 0x169b84,
- 0x25a,
- "com.android.calculator2.Calculator.onButtonClick",
- }};
-
#endif // SIMPLE_PERF_GET_TEST_DATA_H_
diff --git a/simpleperf/read_dex_file_test.cpp b/simpleperf/read_dex_file_test.cpp
index fc72ceda..843a964c 100644
--- a/simpleperf/read_dex_file_test.cpp
+++ b/simpleperf/read_dex_file_test.cpp
@@ -32,18 +32,12 @@ TEST(read_dex_file, smoke) {
auto symbol_callback = [&](DexFileSymbol* symbol) {
symbols.emplace_back(symbol->name, symbol->addr, symbol->size);
};
- for (DexFileTestData& entry : dex_file_test_data) {
- if (entry.filename == "base_with_cdex_v1.vdex") {
- continue; // TODO: reenable it.
- }
- ASSERT_TRUE(ReadSymbolsFromDexFile(GetTestData(entry.filename), {entry.dexfile_offset},
- symbol_callback));
- ASSERT_EQ(entry.symbol_count, symbols.size());
- auto it = std::find_if(symbols.begin(), symbols.end(),
- [&](const Symbol& symbol) { return symbol.addr == entry.symbol_addr; });
- ASSERT_NE(it, symbols.end());
- ASSERT_EQ(it->addr, entry.symbol_addr);
- ASSERT_EQ(it->len, entry.symbol_len);
- ASSERT_STREQ(it->Name(), entry.symbol_name.c_str());
- }
-} \ No newline at end of file
+ ASSERT_TRUE(ReadSymbolsFromDexFile(GetTestData("base.vdex"), {0x28}, symbol_callback));
+ ASSERT_EQ(12435u, symbols.size());
+ auto it = std::find_if(symbols.begin(), symbols.end(),
+ [](const Symbol& symbol) { return symbol.addr == 0x6c77e; });
+ ASSERT_NE(it, symbols.end());
+ ASSERT_EQ(it->addr, 0x6c77e);
+ ASSERT_EQ(it->len, 0x16);
+ ASSERT_STREQ(it->Name(), "com.example.simpleperf.simpleperfexamplewithnative.MixActivity$1.run");
+}
diff --git a/simpleperf/testdata/base_with_cdex_v1.vdex b/simpleperf/testdata/base.vdex
index b0ea0184..b0ea0184 100644
--- a/simpleperf/testdata/base_with_cdex_v1.vdex
+++ b/simpleperf/testdata/base.vdex
Binary files differ
diff --git a/simpleperf/testdata/base_with_cdex_v2.vdex b/simpleperf/testdata/base_with_cdex_v2.vdex
deleted file mode 100644
index 16ecc6fd..00000000
--- a/simpleperf/testdata/base_with_cdex_v2.vdex
+++ /dev/null
Binary files differ