summaryrefslogtreecommitdiff
path: root/benchmark/ios/ios_test_runner.cpp
diff options
context:
space:
mode:
authorJuha Alanen <juha.alanen@mapbox.com>2020-02-12 14:05:22 +0200
committerJuha Alanen <juha.alanen@mapbox.com>2020-02-18 16:10:23 +0200
commitcea87c9f2d0eb66e3a918d1b84e316b27462dd07 (patch)
tree389fff07f377377e34887f6a46f370ff55a445c1 /benchmark/ios/ios_test_runner.cpp
parenta5ec862a2a241885918d4d843bbc93c3804a57e6 (diff)
downloadqtlocation-mapboxgl-cea87c9f2d0eb66e3a918d1b84e316b27462dd07.tar.gz
[benchmark] Add iOS benchmark runner
Diffstat (limited to 'benchmark/ios/ios_test_runner.cpp')
-rw-r--r--benchmark/ios/ios_test_runner.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/benchmark/ios/ios_test_runner.cpp b/benchmark/ios/ios_test_runner.cpp
new file mode 100644
index 0000000000..25bd3add5d
--- /dev/null
+++ b/benchmark/ios/ios_test_runner.cpp
@@ -0,0 +1,34 @@
+#include <ios_test_runner.hpp>
+
+#include <mbgl/benchmark.hpp>
+
+#include <mbgl/util/logging.hpp>
+
+#include <unistd.h>
+#include <vector>
+
+#define EXPORT __attribute__((visibility("default")))
+
+EXPORT
+bool TestRunner::startTest(const std::string& basePath) {
+ std::vector<std::string> arguments = {"mbgl-benchmark-runner",
+ "--benchmark_repetitions=3",
+ "--benchmark_format=json",
+ "--benchmark_out=" + basePath + "/benchmark/results.json"};
+ std::vector<char*> argv;
+ for (const auto& arg : arguments) {
+ argv.push_back(const_cast<char*>(arg.data()));
+ }
+ argv.push_back(nullptr);
+
+ if (chdir(basePath.c_str())) {
+ mbgl::Log::Error(mbgl::Event::General, "Failed to change the directory to " + basePath);
+ return false;
+ }
+
+ mbgl::Log::Info(mbgl::Event::General, "Start BenchmarkRunner");
+ int status = mbgl::runBenchmark(static_cast<uint32_t>(argv.size()), argv.data());
+ mbgl::Log::Info(mbgl::Event::General, "BenchmarkRunner finished with status: '%d'", status);
+
+ return status == 0;
+}