// Copyright 2017 The Chromium 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 "components/zucchini/test_disassembler.h" #include "components/zucchini/test_reference_reader.h" namespace zucchini { // |num_equivalence_iterations_| = 2 to cover common case for testing. TestDisassembler::TestDisassembler(const ReferenceTypeTraits& traits1, const std::vector& refs1, const ReferenceTypeTraits& traits2, const std::vector& refs2, const ReferenceTypeTraits& traits3, const std::vector& refs3) : Disassembler(2), traits_{traits1, traits2, traits3}, refs_{refs1, refs2, refs3} {} TestDisassembler::~TestDisassembler() = default; ExecutableType TestDisassembler::GetExeType() const { return kExeTypeUnknown; } std::string TestDisassembler::GetExeTypeString() const { return "(Unknown)"; } std::vector TestDisassembler::MakeReferenceGroups() const { return { {traits_[0], &TestDisassembler::MakeReadRefs1, &TestDisassembler::MakeWriteRefs1}, {traits_[1], &TestDisassembler::MakeReadRefs2, &TestDisassembler::MakeWriteRefs2}, {traits_[2], &TestDisassembler::MakeReadRefs3, &TestDisassembler::MakeWriteRefs3}, }; } bool TestDisassembler::Parse(ConstBufferView image) { return true; } std::unique_ptr TestDisassembler::MakeReadRefs(int type) { return std::make_unique(refs_[type]); } std::unique_ptr TestDisassembler::MakeWriteRefs( MutableBufferView image) { class NoOpWriter : public ReferenceWriter { public: // ReferenceWriter: void PutNext(Reference) override {} }; return std::make_unique(); } } // namespace zucchini