// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

library fuchsia.hardware.mediacodec;

using zx;

/// This protocol is used by a client to run the amlogic video decoder tests.
[ForDeprecatedCBindings]
protocol Tester {
    /// Takes a directory handle from the client and installs that as /tmp in the driver so that debugging files can be written there.
    SetOutputDirectoryHandle(zx.handle:CHANNEL handle);

    /// Runs the full suite of tests. Test output will go to klog.
    RunTests() -> (zx.status result);
};
