1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #include "epid/common-testhelper/testapp-testhelper.h"
- #include <sstream>
- #include <string>
- #include <vector>
- void split_filter(std::vector<std::string>* positive,
- std::vector<std::string>* negative, std::string filter_expr) {
- std::istringstream f(filter_expr);
- std::string s;
- bool is_neg = false;
- while (getline(f, s, ':')) {
- if (!is_neg) {
- if (s.compare(0, 1, "-") == 0) {
- is_neg = true;
- s = s.substr(1);
- } else {
- positive->push_back(s);
- }
- }
- if (is_neg) {
- negative->push_back(s);
- }
- }
- }
- std::string join_filter(std::vector<std::string> const& positive,
- std::vector<std::string> const& negative) {
- std::ostringstream s;
- bool first = true;
- bool first_neg = true;
- if (!positive.empty() || !negative.empty()) {
- s << "--gtest_filter=";
- }
- for (const auto& i : positive) {
- if (!first) {
- s << ":";
- } else {
- first = false;
- }
- s << i;
- }
- for (const auto& i : negative) {
- if (!first) {
- s << ":";
- } else {
- first = false;
- }
- if (first_neg) {
- s << "-";
- first_neg = false;
- }
- s << i;
- }
- return s.str();
- }
|