You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.1 KiB
43 lines
1.1 KiB
4 months ago
|
#include <link.h>
|
||
|
|
||
|
#include <string>
|
||
|
#include <vector>
|
||
|
|
||
|
#include <android-base/stringprintf.h>
|
||
|
|
||
|
#include <gtest/gtest.h>
|
||
|
|
||
|
#include <google/protobuf/message_lite.h>
|
||
|
|
||
|
TEST(vendor_suffix, suffix) {
|
||
|
std::vector<std::string> libs;
|
||
|
dl_iterate_phdr([](dl_phdr_info* info, size_t, void* data) -> int {
|
||
|
auto local_libs = static_cast<decltype(&libs)>(data);
|
||
|
std::string name = info->dlpi_name;
|
||
|
size_t libprotobuf = name.find("libprotobuf-cpp");
|
||
|
if (libprotobuf != name.npos) {
|
||
|
local_libs->push_back(name.substr(libprotobuf, name.size()));
|
||
|
}
|
||
|
return 0;
|
||
|
}, &libs);
|
||
|
|
||
|
std::sort(libs.begin(), libs.end());
|
||
|
|
||
|
std::string version = android::base::StringPrintf("-%d.%d.%d",
|
||
|
GOOGLE_PROTOBUF_VERSION / 1000000,
|
||
|
GOOGLE_PROTOBUF_VERSION / 1000 % 1000,
|
||
|
GOOGLE_PROTOBUF_VERSION % 1000);
|
||
|
|
||
|
std::string suffix = GOOGLE_PROTOBUF_VERSION_SUFFIX;
|
||
|
if (suffix != "") {
|
||
|
version += "-" + suffix;
|
||
|
}
|
||
|
|
||
|
std::vector<std::string> expect = {
|
||
|
"libprotobuf-cpp-full" + version + ".so",
|
||
|
"libprotobuf-cpp-lite" + version + ".so",
|
||
|
};
|
||
|
|
||
|
ASSERT_EQ(expect, libs);
|
||
|
}
|