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/suites/string.xml b/benchmarks/suites/string.xml
new file mode 100644
index 0000000..58278c8
--- /dev/null
+++ b/benchmarks/suites/string.xml
@@ -0,0 +1,52 @@
+<fn>
+ <name>BM_string_memcmp</name>
+ <args>AT_MANY_ALIGNED_TWOBUF</args>
+</fn>
+<fn>
+ <name>BM_string_memcpy</name>
+ <args>AT_MANY_ALIGNED_TWOBUF</args>
+</fn>
+<fn>
+ <name>BM_string_memmove_non_overlapping</name>
+ <args>AT_MANY_ALIGNED_TWOBUF</args>
+</fn>
+<fn>
+ <name>BM_string_memmove_overlap_dst_before_src</name>
+ <args>AT_MANY_ALIGNED_ONEBUF</args>
+</fn>
+<fn>
+ <name>BM_string_memmove_overlap_src_before_dst</name>
+ <args>AT_MANY_ALIGNED_ONEBUF</args>
+</fn>
+<fn>
+ <name>BM_string_memset</name>
+ <args>AT_MANY_ALIGNED_ONEBUF</args>
+</fn>
+<fn>
+ <name>BM_string_strcat_copy_only</name>
+ <args>AT_MANY_ALIGNED_TWOBUF</args>
+</fn>
+<fn>
+ <name>BM_string_strcat_half_copy_half_seek</name>
+ <args>AT_MANY_ALIGNED_TWOBUF</args>
+</fn>
+<fn>
+ <name>BM_string_strcat_seek_only</name>
+ <args>AT_MANY_ALIGNED_TWOBUF</args>
+</fn>
+<fn>
+ <name>BM_string_strchr</name>
+ <args>AT_MANY_ALIGNED_ONEBUF</args>
+</fn>
+<fn>
+ <name>BM_string_strcmp</name>
+ <args>AT_MANY_ALIGNED_TWOBUF</args>
+</fn>
+<fn>
+ <name>BM_string_strcpy</name>
+ <args>AT_MANY_ALIGNED_TWOBUF</args>
+</fn>
+<fn>
+ <name>BM_string_strlen</name>
+ <args>AT_MANY_ALIGNED_ONEBUF</args>
+</fn>