Add new benchmark options.
Add a bunch of extra options to allow greater flexibility for creating
benchmarks. Add a pattern option that can be used to represent any
one buffer or two buffer possibility. This should fully replace the
functionality of microbench.
Add a single option for one buffer benchmarks and two buffer benchmarks
that represents all of the possible options to run a string benchmark.
Add a string test suite that includes all string benchmarks using the
above option.
Test: New unit tests to cover all the new options, and all pass.
Test: Ran new string test suite with a single bionic iteration.
Change-Id: Idb13ea15e44cec626e9f46672ccd648d7ca72ba6
diff --git a/benchmarks/string_benchmark.cpp b/benchmarks/string_benchmark.cpp
index 9635929..38122f2 100644
--- a/benchmarks/string_benchmark.cpp
+++ b/benchmarks/string_benchmark.cpp
@@ -187,6 +187,11 @@
const size_t src_alignment = state.range(1);
const size_t dst_alignment = state.range(2);
+ // Skip sizes that don't make sense.
+ if ((nbytes / 2) == 0) {
+ return;
+ }
+
std::vector<char> src;
std::vector<char> dst;
char* src_aligned = GetAlignedPtrFilled(&src, src_alignment, nbytes / 2, 'x');