void ReportRuns()

in BenchmarkNdkSample/benchmark/cpp/googlebenchmarkrunner/googlebenchmarkrunner.cpp [130:155]


    void ReportRuns(const std::vector<Run> &reports) override {
        for (auto &run : reports) {
            if (run.error_occurred) {
                ScopedLocalRef<jstring> jmessage(mEnv, mEnv->NewStringUTF(run.error_message.c_str()));
                ScopedLocalRef<jobject> jthrowable(mEnv, mEnv->NewObject(
                        gAssertionFailure.clazz, gAssertionFailure.ctor, jmessage.get()));
                ScopedLocalRef<jobject> jfailure(mEnv, mEnv->NewObject(
                        gFailure.clazz, gFailure.ctor, mCurrentTestDescription.get(), jthrowable.get()));
                mEnv->CallVoidMethod(mRunNotifier, gRunNotifier.fireTestFailure, jfailure.get());
            } else {
                ScopedLocalRef<jstring> jTestName(mEnv, mEnv->NewStringUTF(run.benchmark_name().data()));
                double resultNs = run.GetAdjustedRealTime() * (1e9 / ::benchmark::GetTimeUnitMultiplier(run.time_unit));
                mEnv->CallStaticVoidMethod(
                        gGoogleBenchmarkRunner.clazz,
                        gGoogleBenchmarkRunner.reportRun,
                        jTestName.get(),
                        (int64_t) resultNs);
            }

            // always fire finished, even if error occurred
            notify(gRunNotifier.fireTestFinished);

            // notify next test starting, if one exists
            notifyTestStarted();
        }
    }