feat(third_party): add oatpp,googltest,benchmark
All checks were successful
sm-rpc / build (Debug, aarch64-linux-gnu) (push) Successful in 1m7s
sm-rpc / build (Debug, arm-linux-gnueabihf) (push) Successful in 1m15s
sm-rpc / build (Debug, host.gcc) (push) Successful in 1m4s
sm-rpc / build (Debug, mipsel-linux-gnu) (push) Successful in 1m16s
sm-rpc / build (Release, aarch64-linux-gnu) (push) Successful in 1m34s
sm-rpc / build (Release, arm-linux-gnueabihf) (push) Successful in 1m33s
sm-rpc / build (Release, host.gcc) (push) Successful in 1m23s
sm-rpc / build (Release, mipsel-linux-gnu) (push) Successful in 1m30s
All checks were successful
sm-rpc / build (Debug, aarch64-linux-gnu) (push) Successful in 1m7s
sm-rpc / build (Debug, arm-linux-gnueabihf) (push) Successful in 1m15s
sm-rpc / build (Debug, host.gcc) (push) Successful in 1m4s
sm-rpc / build (Debug, mipsel-linux-gnu) (push) Successful in 1m16s
sm-rpc / build (Release, aarch64-linux-gnu) (push) Successful in 1m34s
sm-rpc / build (Release, arm-linux-gnueabihf) (push) Successful in 1m33s
sm-rpc / build (Release, host.gcc) (push) Successful in 1m23s
sm-rpc / build (Release, mipsel-linux-gnu) (push) Successful in 1m30s
This commit is contained in:
105
third_party/benchmark/test/spec_arg_test.cc
vendored
Normal file
105
third_party/benchmark/test/spec_arg_test.cc
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
#include <algorithm>
|
||||
#include <cassert>
|
||||
#include <cstdint>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include <iostream>
|
||||
#include <limits>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "benchmark/benchmark.h"
|
||||
|
||||
// Tests that we can override benchmark-spec value from FLAGS_benchmark_filter
|
||||
// with argument to RunSpecifiedBenchmarks(...).
|
||||
|
||||
namespace {
|
||||
|
||||
class TestReporter : public benchmark::ConsoleReporter {
|
||||
public:
|
||||
bool ReportContext(const Context& context) override {
|
||||
return ConsoleReporter::ReportContext(context);
|
||||
};
|
||||
|
||||
void ReportRuns(const std::vector<Run>& report) override {
|
||||
assert(report.size() == 1);
|
||||
matched_functions.push_back(report[0].run_name.function_name);
|
||||
ConsoleReporter::ReportRuns(report);
|
||||
};
|
||||
|
||||
TestReporter() {}
|
||||
|
||||
~TestReporter() override {}
|
||||
|
||||
const std::vector<std::string>& GetMatchedFunctions() const {
|
||||
return matched_functions;
|
||||
}
|
||||
|
||||
private:
|
||||
std::vector<std::string> matched_functions;
|
||||
};
|
||||
|
||||
} // end namespace
|
||||
|
||||
static void BM_NotChosen(benchmark::State& state) {
|
||||
assert(false && "SHOULD NOT BE CALLED");
|
||||
for (auto _ : state) {
|
||||
}
|
||||
}
|
||||
BENCHMARK(BM_NotChosen);
|
||||
|
||||
static void BM_Chosen(benchmark::State& state) {
|
||||
for (auto _ : state) {
|
||||
}
|
||||
}
|
||||
BENCHMARK(BM_Chosen);
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
const std::string flag = "BM_NotChosen";
|
||||
|
||||
// Verify that argv specify --benchmark_filter=BM_NotChosen.
|
||||
bool found = false;
|
||||
for (int i = 0; i < argc; ++i) {
|
||||
if (strcmp("--benchmark_filter=BM_NotChosen", argv[i]) == 0) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
assert(found);
|
||||
|
||||
benchmark::Initialize(&argc, argv);
|
||||
|
||||
// Check that the current flag value is reported accurately via the
|
||||
// GetBenchmarkFilter() function.
|
||||
if (flag != benchmark::GetBenchmarkFilter()) {
|
||||
std::cerr
|
||||
<< "Seeing different value for flags. GetBenchmarkFilter() returns ["
|
||||
<< benchmark::GetBenchmarkFilter() << "] expected flag=[" << flag
|
||||
<< "]\n";
|
||||
return 1;
|
||||
}
|
||||
TestReporter test_reporter;
|
||||
const char* const spec = "BM_Chosen";
|
||||
const size_t returned_count =
|
||||
benchmark::RunSpecifiedBenchmarks(&test_reporter, spec);
|
||||
assert(returned_count == 1);
|
||||
const std::vector<std::string> matched_functions =
|
||||
test_reporter.GetMatchedFunctions();
|
||||
assert(matched_functions.size() == 1);
|
||||
if (strcmp(spec, matched_functions.front().c_str()) != 0) {
|
||||
std::cerr << "Expected benchmark [" << spec << "] to run, but got ["
|
||||
<< matched_functions.front() << "]\n";
|
||||
return 2;
|
||||
}
|
||||
|
||||
// Test that SetBenchmarkFilter works.
|
||||
const std::string golden_value = "golden_value";
|
||||
benchmark::SetBenchmarkFilter(golden_value);
|
||||
std::string current_value = benchmark::GetBenchmarkFilter();
|
||||
if (golden_value != current_value) {
|
||||
std::cerr << "Expected [" << golden_value
|
||||
<< "] for --benchmark_filter but got [" << current_value << "]\n";
|
||||
return 3;
|
||||
}
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user