xref: /openbmc/hiomapd/test/invalid_command.c (revision 26558dbb00e439fb6ea18566361c0671ea6133f5)
14fe996c2SAndrew Jeffery // SPDX-License-Identifier: Apache-2.0
24fe996c2SAndrew Jeffery // Copyright (C) 2018 IBM Corp.
39d4b8883SAndrew Jeffery 
49d4b8883SAndrew Jeffery #include <assert.h>
59d4b8883SAndrew Jeffery 
6*26558dbbSAndrew Jeffery #include "mboxd.h"
7457a6e5fSAndrew Jeffery #include "transport_mbox.h"
89d4b8883SAndrew Jeffery 
99d4b8883SAndrew Jeffery #include "test/mbox.h"
109d4b8883SAndrew Jeffery #include "test/system.h"
119d4b8883SAndrew Jeffery 
129d4b8883SAndrew Jeffery static const uint8_t get_mbox_info[] = {
139d4b8883SAndrew Jeffery 	0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
149d4b8883SAndrew Jeffery 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
159d4b8883SAndrew Jeffery };
169d4b8883SAndrew Jeffery 
179d4b8883SAndrew Jeffery static const uint8_t invalid[] = {
189d4b8883SAndrew Jeffery 	0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
199d4b8883SAndrew Jeffery 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
209d4b8883SAndrew Jeffery };
219d4b8883SAndrew Jeffery 
229d4b8883SAndrew Jeffery static const uint8_t response[] = {
239d4b8883SAndrew Jeffery 	0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
249d4b8883SAndrew Jeffery 	0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
259d4b8883SAndrew Jeffery };
269d4b8883SAndrew Jeffery 
279d4b8883SAndrew Jeffery #define MEM_SIZE	3
289d4b8883SAndrew Jeffery #define ERASE_SIZE	1
299d4b8883SAndrew Jeffery #define N_WINDOWS	1
309d4b8883SAndrew Jeffery #define WINDOW_SIZE	1
319d4b8883SAndrew Jeffery 
invalid_uninitialised(struct mbox_context * ctx)329d4b8883SAndrew Jeffery int invalid_uninitialised(struct mbox_context *ctx)
339d4b8883SAndrew Jeffery {
349d4b8883SAndrew Jeffery 	int rc;
359d4b8883SAndrew Jeffery 
369d4b8883SAndrew Jeffery 	rc = mbox_command_dispatch(ctx, invalid, sizeof(invalid));
379d4b8883SAndrew Jeffery 	assert(rc == 2);
389d4b8883SAndrew Jeffery 
399d4b8883SAndrew Jeffery 	rc = mbox_cmp(ctx, response, sizeof(response));
409d4b8883SAndrew Jeffery 	assert(rc == 0);
419d4b8883SAndrew Jeffery 
429d4b8883SAndrew Jeffery 	return rc;
439d4b8883SAndrew Jeffery }
449d4b8883SAndrew Jeffery 
invalid_initialised(struct mbox_context * ctx)459d4b8883SAndrew Jeffery int invalid_initialised(struct mbox_context *ctx)
469d4b8883SAndrew Jeffery {
479d4b8883SAndrew Jeffery 	int rc;
489d4b8883SAndrew Jeffery 
499d4b8883SAndrew Jeffery 	rc = mbox_command_dispatch(ctx, get_mbox_info, sizeof(get_mbox_info));
509d4b8883SAndrew Jeffery 	assert(rc == 1);
519d4b8883SAndrew Jeffery 
529d4b8883SAndrew Jeffery 	rc = mbox_command_dispatch(ctx, invalid, sizeof(invalid));
539d4b8883SAndrew Jeffery 	assert(rc == 2);
549d4b8883SAndrew Jeffery 
559d4b8883SAndrew Jeffery 	rc = mbox_cmp(ctx, response, sizeof(response));
569d4b8883SAndrew Jeffery 	assert(rc == 0);
579d4b8883SAndrew Jeffery 
589d4b8883SAndrew Jeffery 	return rc;
599d4b8883SAndrew Jeffery }
609d4b8883SAndrew Jeffery 
main(void)619d4b8883SAndrew Jeffery int main(void)
629d4b8883SAndrew Jeffery {
639d4b8883SAndrew Jeffery 	struct mbox_context *ctx;
649d4b8883SAndrew Jeffery 
659d4b8883SAndrew Jeffery 	system_set_reserved_size(MEM_SIZE);
669d4b8883SAndrew Jeffery 	system_set_mtd_sizes(MEM_SIZE, ERASE_SIZE);
679d4b8883SAndrew Jeffery 
689d4b8883SAndrew Jeffery 	ctx = mbox_create_test_context(N_WINDOWS, WINDOW_SIZE);
699d4b8883SAndrew Jeffery 
709d4b8883SAndrew Jeffery 	invalid_uninitialised(ctx);
719d4b8883SAndrew Jeffery 
729d4b8883SAndrew Jeffery 	invalid_initialised(ctx);
739d4b8883SAndrew Jeffery 
749d4b8883SAndrew Jeffery 	return 0;
759d4b8883SAndrew Jeffery }
76