blob: 14b714a309ec250927703d585f388c25d65c2334 [file] [log] [blame]
// Copyright 2021 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ml/fuzzers/handwriting_fake.h"
#include <string>
namespace ml {
namespace {
using chromeos::machine_learning::mojom::HandwritingRecognizerSpecPtr;
} // namespace
HandwritingLibraryFake::HandwritingLibraryFake() = default;
HandwritingLibraryFake::~HandwritingLibraryFake() = default;
HandwritingLibrary::Status HandwritingLibraryFake::GetStatus() const {
return Status::kOk;
}
HandwritingRecognizer HandwritingLibraryFake::CreateHandwritingRecognizer()
const {
return nullptr;
}
bool HandwritingLibraryFake::LoadHandwritingRecognizer(
HandwritingRecognizer recognizer, HandwritingRecognizerSpecPtr spec) const {
return true;
}
bool HandwritingLibraryFake::LoadHandwritingRecognizerFromRootFs(
HandwritingRecognizer recognizer, const std::string& language) const {
return true;
}
bool HandwritingLibraryFake::RecognizeHandwriting(
HandwritingRecognizer recognizer,
const chrome_knowledge::HandwritingRecognizerRequest& request,
chrome_knowledge::HandwritingRecognizerResult* result) const {
// Makes result a copy of fake output_proto_. This fuzzes the output
// conversion code in web_platform_handwriting_proto_mojom_conversion.h/cc.
result->CopyFrom(output_proto_);
return true;
}
void HandwritingLibraryFake::DestroyHandwritingRecognizer(
HandwritingRecognizer recognizer) const {}
void HandwritingLibraryFake::SetOutput(
const chrome_knowledge::HandwritingRecognizerResult& output) {
output_proto_.CopyFrom(output);
}
} // namespace ml