Modify argument parser for multiple arguments.
Currently, if a test is created like this:
BIONIC_BENCHMARK_WITH_ARG(BM_bench, "16");
Everything works as expected, a benchmark is created of BM_bench/16.
However, it is not possible to specify a benchmark should be called with
one argument, but iterate over different values. The example:
BIONIC_BENCHMARK_WITH_ARG(BM_bench, "16 32");
Creates a single benchmark run with two arguments:
BM_bench/16/32
This change modifies the algorithm to make it possible to create multiple
instances of the benchmark iterating over each argument as a single
argument. After this change, two benchmarks are executed:
BM_bench/16
BM_bench/32
To do the previous behavior, use:
BIONIC_BENCHMARK_WITH_ARG(BM_bench, "16/32");
This will create a single benchmark with two args. This format does
not support spaces in the args, so "16 / 32" is not valid.
Modified the test_small.xml to use the new format.
Test: All unit tests pass.
Change-Id: I6f486e1d4a90580c3dace0581ea65f439911ef5a
diff --git a/benchmarks/tests/interface_test.cpp b/benchmarks/tests/interface_test.cpp
index e7b96d5..1d620d1 100644
--- a/benchmarks/tests/interface_test.cpp
+++ b/benchmarks/tests/interface_test.cpp
@@ -192,9 +192,11 @@
TEST_F(SystemTests, small) {
std::string expected =
- "BM_string_memcmp/8/8/8/iterations:1\n"
- "BM_math_sqrt/iterations:1\n"
- "BM_property_get/1/iterations:1\n";
+ "BM_string_memcmp/8/8/8/iterations:1\n"
+ "BM_math_sqrt/iterations:1\n"
+ "BM_property_get/1/iterations:1\n"
+ "BM_property_get/2/iterations:1\n"
+ "BM_property_get/3/iterations:1\n";
Verify(expected, 0, std::vector<const char*>{GetBionicXmlArg("test_small.xml").c_str(),
"--bionic_iterations=1"});
}
@@ -238,17 +240,18 @@
std::string expected =
"BM_string_memcpy/8/8/8/iterations:1\n"
"BM_math_log10/iterations:1\n";
- Verify(expected, 0, std::vector<const char*>{"--bionic_extra=BM_string_memcpy 8 8 8",
- "--bionic_extra=BM_math_log10",
- "--bionic_iterations=1"});
+ Verify(expected, 0,
+ std::vector<const char*>{"--bionic_extra=BM_string_memcpy 8/8/8",
+ "--bionic_extra=BM_math_log10", "--bionic_iterations=1"});
}
TEST_F(SystemTests, cmd_args_no_iter) {
std::string expected =
"BM_string_memcpy/8/8/8\n"
"BM_math_log10\n";
- Verify(expected, 0, std::vector<const char*>{"--bionic_extra=BM_string_memcpy 8 8 8",
- "--bionic_extra=BM_math_log10"});
+ Verify(expected, 0,
+ std::vector<const char*>{"--bionic_extra=BM_string_memcpy 8/8/8",
+ "--bionic_extra=BM_math_log10"});
}
TEST_F(SystemTests, xml_and_args) {