summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
author윤지영/On-Device Lab(SR)/Staff Engineer/삼성전자 <jy910.yun@samsung.com>2019-06-26 18:39:06 +0900
committer이춘석/On-Device Lab(SR)/Staff Engineer/삼성전자 <chunseok.lee@samsung.com>2019-06-26 18:39:06 +0900
commitd4a2f332dc799da82592d27f4aea400f41ed21b5 (patch)
treee8e2e9e01084e4d2af5122772a28b31a7d014278 /tools
parent0f2b1e4db88c0f14b04719cae5b7ac4f250ffd1b (diff)
downloadnnfw-d4a2f332dc799da82592d27f4aea400f41ed21b5.tar.gz
nnfw-d4a2f332dc799da82592d27f4aea400f41ed21b5.tar.bz2
nnfw-d4a2f332dc799da82592d27f4aea400f41ed21b5.zip
[kbenchmark] Add filter option (#5360)
This option allows to run benchmark whose name matches the regex. Signed-off-by: Jiyoung Yun <jy910.yun@samsung.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/kbenchmark/Args.cc1
-rw-r--r--tools/kbenchmark/Args.h2
-rw-r--r--tools/kbenchmark/Driver.cc6
3 files changed, 8 insertions, 1 deletions
diff --git a/tools/kbenchmark/Args.cc b/tools/kbenchmark/Args.cc
index 95145a84e..204810b87 100644
--- a/tools/kbenchmark/Args.cc
+++ b/tools/kbenchmark/Args.cc
@@ -33,6 +33,7 @@ void Args::Initialize(const int argc, char **argv)
("config,c", po::value<std::string>(&_config)->required(), "Configuration filename")
("kernel,k", po::value<std::vector<std::string>>(&_kernel)->multitoken()->composing()->required(), "Kernel library name, support multiple kernel libraries")
("reporter,r", po::value<std::string>(&_reporter)->default_value("standard"), "Set reporter types(standard, html, junit, csv)")
+ ("filter,f", po::value<std::string>(&_filter)->default_value(".*"), "Only run benchmarks whose name matches the regular expression pattern")
("verbose,v", po::value<int>(&_verbose)->default_value(0)->implicit_value(true), "Show verbose output")
("output,o", po::value<std::string>(&_output)->default_value(""), "Set additional strings for output file name")
;
diff --git a/tools/kbenchmark/Args.h b/tools/kbenchmark/Args.h
index b848f9579..ff1400c12 100644
--- a/tools/kbenchmark/Args.h
+++ b/tools/kbenchmark/Args.h
@@ -34,6 +34,7 @@ public:
const std::string &config(void) { return _config; }
const std::vector<std::string> &kernel(void) { return _kernel; }
const std::string &reporter(void) { return _reporter; }
+ const std::string &filter(void) { return _filter; }
const std::string &output(void) { return _output; }
int verbose(void) { return _verbose; }
@@ -44,6 +45,7 @@ private:
std::string _config;
std::vector<std::string> _kernel;
std::string _reporter;
+ std::string _filter;
std::string _output;
int _verbose;
};
diff --git a/tools/kbenchmark/Driver.cc b/tools/kbenchmark/Driver.cc
index 8d9e6b728..006fe9e28 100644
--- a/tools/kbenchmark/Driver.cc
+++ b/tools/kbenchmark/Driver.cc
@@ -85,7 +85,10 @@ int main(int argc, char *argv[])
std::cout << "benchmark functions list:" << std::endl;
for (auto &&f : benchmarks)
{
- std::cout << " " << f.name << std::endl;
+ if (std::regex_match(f.name, std::regex(args.filter())))
+ {
+ std::cout << " " << f.name << std::endl;
+ }
}
}
@@ -99,6 +102,7 @@ int main(int argc, char *argv[])
// Set noninus configuration
nonius::configuration cfg;
cfg.reporter = reporter;
+ cfg.filter_pattern = args.filter();
cfg.verbose = args.verbose();
cfg.title = test_name;
cfg.output_file = test_name + ext;