diff options
author | Dan Shi <dshi@google.com> | 2019-11-07 15:05:45 -0800 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-11-07 15:05:45 -0800 |
commit | 078cb32b44aa225bb313d9e08bfd6d12b72097e8 (patch) | |
tree | 6a0dca7ddcf830e477a1664902fab46914d5defa | |
parent | 1c6a98b217651ff0ef6734ecf0c022681c61ee9f (diff) | |
parent | cea29d27836925e87562659a9c0ab4f3c6f74dc4 (diff) | |
download | platform_system_libhidl-078cb32b44aa225bb313d9e08bfd6d12b72097e8.tar.gz platform_system_libhidl-078cb32b44aa225bb313d9e08bfd6d12b72097e8.tar.bz2 platform_system_libhidl-078cb32b44aa225bb313d9e08bfd6d12b72097e8.zip |
Merge "Add a method to sanitize a string to be used as test name" am: c98f3763e3
am: cea29d2783
Change-Id: I6fd4f2bb3276052f19b532ad66b2c757b6b94fae
-rw-r--r-- | gtest_helper/hidl/GtestPrinter.h | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/gtest_helper/hidl/GtestPrinter.h b/gtest_helper/hidl/GtestPrinter.h index c9f5dd39..4b5ac2dd 100644 --- a/gtest_helper/hidl/GtestPrinter.h +++ b/gtest_helper/hidl/GtestPrinter.h @@ -19,17 +19,39 @@ namespace android { namespace hardware { +static inline std::string Sanitize(std::string name) { + for (size_t i = 0; i < name.size(); i++) { + // gtest test names must only contain alphanumeric characters + if (!std::isalnum(name[i])) name[i] = '_'; + } + return name; +} + static inline std::string PrintInstanceNameToString( const testing::TestParamInfo<std::string>& info) { // test names need to be unique -> index prefix std::string name = std::to_string(info.index) + "/" + info.param; + return Sanitize(name); +} - for (size_t i = 0; i < name.size(); i++) { - // gtest test names must only contain alphanumeric characters - if (!std::isalnum(name[i])) name[i] = '_'; +template <typename... T> +static inline std::string PrintInstanceTupleNameToString( + const testing::TestParamInfo<std::tuple<T...>>& info) { + std::vector<std::string> instances = std::apply( + [](auto&&... elems) { + std::vector<std::string> instances; + instances.reserve(sizeof...(elems)); + (instances.push_back(std::forward<decltype(elems)>(elems)), ...); + return instances; + }, + info.param); + std::string param_string; + for (const std::string& instance : instances) { + param_string += instance + "_"; } + param_string += std::to_string(info.index); - return name; + return Sanitize(param_string); } } // namespace hardware |