Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update expensify_prod branch #1977

Merged
merged 11 commits into from
Nov 25, 2024
5 changes: 4 additions & 1 deletion libstuff/SLog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ void SLogStackTrace(int level) {
// If the param name is not in this whitelist, we will log <REDACTED> in addLogParams.
static const set<string> PARAMS_WHITELIST = {
"accountID",
"accountIDs",
"attendees",
"bankAccountID",
"cardData",
Expand All @@ -59,6 +60,7 @@ static const set<string> PARAMS_WHITELIST = {
"feedID",
"feedName",
"field",
"index",
"indexName",
"invoice",
"isUnique",
Expand All @@ -68,14 +70,15 @@ static const set<string> PARAMS_WHITELIST = {
"policyID",
"reportID",
"requestTimestamp",
"secondaryLogin",
"shouldCompleteOnboarding",
"shouldDismissHybridAppOnboarding",
"status",
"step",
"timeDiff",
"token",
"transactionID",
"type",
"type"
};

string addLogParams(string&& message, const map<string, string>& params) {
Expand Down
27 changes: 14 additions & 13 deletions test/lib/tpunit++.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,10 @@ tpunit::_TestFixture::~_TestFixture() {
delete _tests;
}

int tpunit::_TestFixture::tpunit_detail_do_run(int threads, std::function<void()> threadInitFunction) {
int tpunit::_TestFixture::tpunit_detail_do_run(int threads, std::function<void()> threadInitFunction, std::function<bool(_TestFixture*, _TestFixture*)> sortFunction) {
const std::set<std::string> include, exclude;
const std::list<std::string> before, after;
return tpunit_detail_do_run(include, exclude, before, after, threads, threadInitFunction);
return tpunit_detail_do_run(include, exclude, before, after, threads, threadInitFunction, sortFunction);
}

void tpunit::_TestFixture::tpunit_run_test_class(_TestFixture* f) {
Expand All @@ -129,23 +129,24 @@ void tpunit::_TestFixture::tpunit_run_test_class(_TestFixture* f) {
cout << "\xE2\x9D\x8C !FAILED! \xE2\x9D\x8C cleaning up " << f->_name << "." << endl;
}
}
bool tpunit::_TestFixture::sorter(_TestFixture* a, _TestFixture* b) {
if (a->_name && b->_name) {
return strcmp(a->_name, b->_name) < 0;
}
return false;
}

int tpunit::_TestFixture::tpunit_detail_do_run(const set<string>& include, const set<string>& exclude,
const list<string>& before, const list<string>& after, int threads,
std::function<void()> threadInitFunction) {
std::function<void()> threadInitFunction, std::function<bool(_TestFixture*, _TestFixture*)> sortFunction) {
threadInitFunction();
/*
* Run specific tests by name. If 'include' is empty, then every test is
* run unless it's in 'exclude'. If 'include' has at least one entry,
* then only tests in 'include' are run, and 'exclude' is ignored.
*/
std::list<_TestFixture*> testFixtureList = *tpunit_detail_fixture_list();
testFixtureList.sort([&](_TestFixture* a, _TestFixture* b) {
if (a->_name && b->_name) {
return strcmp(a->_name, b->_name) < 0;
}
return false;
});
testFixtureList.sort(sortFunction);

// Make local, mutable copies of the include and exclude lists.
set<string> _include = include;
Expand Down Expand Up @@ -524,11 +525,11 @@ list<tpunit::_TestFixture*>* tpunit::_TestFixture::tpunit_detail_fixture_list()
return _fixtureList;
}

int tpunit::Tests::run(int threads, std::function<void()> threadInitFunction) {
return _TestFixture::tpunit_detail_do_run(threads, threadInitFunction);
int tpunit::Tests::run(int threads, std::function<void()> threadInitFunction, std::function<bool(_TestFixture*, _TestFixture*)> sortFunction) {
return _TestFixture::tpunit_detail_do_run(threads, threadInitFunction, sortFunction);
}

int tpunit::Tests::run(const set<string>& include, const set<string>& exclude,
const list<string>& before, const list<string>& after, int threads, std::function<void()> threadInitFunction) {
return _TestFixture::tpunit_detail_do_run(include, exclude, before, after, threads, threadInitFunction);
const list<string>& before, const list<string>& after, int threads, std::function<void()> threadInitFunction, std::function<bool(_TestFixture*, _TestFixture*)> sortFunction) {
return _TestFixture::tpunit_detail_do_run(include, exclude, before, after, threads, threadInitFunction, sortFunction);
}
14 changes: 10 additions & 4 deletions test/lib/tpunit++.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,8 @@ namespace tpunit {
recursive_mutex* _mutex;
int _threadID;

static bool sorter(_TestFixture* a, _TestFixture* b);

protected:
// Test buffer for printing to stdout if a test were to fail.
string testOutputBuffer;
Expand Down Expand Up @@ -285,11 +287,11 @@ namespace tpunit {
return new method(this, static_cast<void (_TestFixture::*)()>(_method), _name, _type);
}

static int tpunit_detail_do_run(int threads = 1, std::function<void()> threadInitFunction = [](){});
static int tpunit_detail_do_run(int threads = 1, std::function<void()> threadInitFunction = [](){}, std::function<bool(_TestFixture*, _TestFixture*)> sortFunction = &_TestFixture::sorter);

static int tpunit_detail_do_run(const std::set<std::string>& include, const std::set<std::string>& exclude,
const std::list<std::string>& before, const std::list<std::string>& after, int threads,
std::function<void()> threadInitFunction);
std::function<void()> threadInitFunction, std::function<bool(_TestFixture*, _TestFixture*)> sortFunction = &_TestFixture::sorter);

/**
* This method writes to a temporary buffer and formats the message nicely for debugging
Expand All @@ -303,6 +305,10 @@ namespace tpunit {

static void tpunit_detail_trace(_TestFixture* f, const char* _file, int _line, const char* _message);

const char* name() {
return _name;
}

protected:

/**
Expand Down Expand Up @@ -443,7 +449,7 @@ namespace tpunit {
*
* @return Number of failed assertions or zero if all tests pass.
*/
static int run(int threads = 1, std::function<void()> threadInitFunction = [](){});
static int run(int threads = 1, std::function<void()> threadInitFunction = [](){}, std::function<bool(_TestFixture*, _TestFixture*)> sortFunction = &_TestFixture::sorter);

/**
* Run specific tests by name. If 'include' is empty, then every test is
Expand All @@ -454,6 +460,6 @@ namespace tpunit {
*/
static int run(const std::set<std::string>& include, const std::set<std::string>& exclude,
const std::list<std::string>& before, const std::list<std::string>& after, int threads = 1,
std::function<void()> threadInitFunction = [](){});
std::function<void()> threadInitFunction = [](){}, std::function<bool(_TestFixture*, _TestFixture*)> sortFunction = &_TestFixture::sorter);
};
}