/* SPDX-License-Identifier: Apache-2.0 */
/* Copyright (C) 2018 IBM Corp. */

#ifndef TEST_MBOX_H
#define TEST_MBOX_H

#include <stddef.h>
#include <stdint.h>

#include "../common.h"
#include "../mbox.h"

#include "tmpf.h"

struct mbox_context *mbox_create_test_context(int n_windows, size_t len);

int mbox_set_mtd_data(struct mbox_context *context, const void *data,
		size_t len);

void mbox_dump(struct mbox_context *context);

int mbox_cmp(struct mbox_context *context, const uint8_t *expected, size_t len);

int mbox_command_write(struct mbox_context *context, const uint8_t *command,
		size_t len);

int mbox_command_dispatch(struct mbox_context *context, const uint8_t *command,
	size_t len);

/* Helpers */
void dump_buf(const void *buf, size_t len);

#endif /* TEST_MBOX_H */
