xref: /openbmc/phosphor-mboxd/test/request_low_version.c (revision bcacb4e6bc00022f745b2dcebf2f75b6b4b11529)
1*bcacb4e6SAndrew Jeffery /*
2*bcacb4e6SAndrew Jeffery  * MBox Daemon Test File
3*bcacb4e6SAndrew Jeffery  *
4*bcacb4e6SAndrew Jeffery  * Copyright 2017 IBM
5*bcacb4e6SAndrew Jeffery  *
6*bcacb4e6SAndrew Jeffery  * Licensed under the Apache License, Version 2.0 (the "License");
7*bcacb4e6SAndrew Jeffery  * you may not use this file except in compliance with the License.
8*bcacb4e6SAndrew Jeffery  * You may obtain a copy of the License at
9*bcacb4e6SAndrew Jeffery  *
10*bcacb4e6SAndrew Jeffery  * http://www.apache.org/licenses/LICENSE-2.0
11*bcacb4e6SAndrew Jeffery  *
12*bcacb4e6SAndrew Jeffery  * Unless required by applicable law or agreed to in writing, software
13*bcacb4e6SAndrew Jeffery  * distributed under the License is distributed on an "AS IS" BASIS,
14*bcacb4e6SAndrew Jeffery  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15*bcacb4e6SAndrew Jeffery  * See the License for the specific language governing permissions and
16*bcacb4e6SAndrew Jeffery  * limitations under the License.
17*bcacb4e6SAndrew Jeffery  *
18*bcacb4e6SAndrew Jeffery  */
19*bcacb4e6SAndrew Jeffery 
20*bcacb4e6SAndrew Jeffery #include <assert.h>
21*bcacb4e6SAndrew Jeffery 
22*bcacb4e6SAndrew Jeffery #include "mbox.h"
23*bcacb4e6SAndrew Jeffery #include "mboxd_msg.h"
24*bcacb4e6SAndrew Jeffery 
25*bcacb4e6SAndrew Jeffery #include "test/mbox.h"
26*bcacb4e6SAndrew Jeffery #include "test/system.h"
27*bcacb4e6SAndrew Jeffery 
28*bcacb4e6SAndrew Jeffery static const uint8_t command[] = {
29*bcacb4e6SAndrew Jeffery 	0x02, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
30*bcacb4e6SAndrew Jeffery 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
31*bcacb4e6SAndrew Jeffery };
32*bcacb4e6SAndrew Jeffery 
33*bcacb4e6SAndrew Jeffery static const uint8_t response[] = {
34*bcacb4e6SAndrew Jeffery 	0x02, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
35*bcacb4e6SAndrew Jeffery 	0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
36*bcacb4e6SAndrew Jeffery };
37*bcacb4e6SAndrew Jeffery 
38*bcacb4e6SAndrew Jeffery #define MEM_SIZE	3
39*bcacb4e6SAndrew Jeffery #define ERASE_SIZE	1
40*bcacb4e6SAndrew Jeffery #define N_WINDOWS	1
41*bcacb4e6SAndrew Jeffery #define WINDOW_SIZE	1
42*bcacb4e6SAndrew Jeffery 
43*bcacb4e6SAndrew Jeffery #include <stdio.h>
44*bcacb4e6SAndrew Jeffery 
45*bcacb4e6SAndrew Jeffery int main(void)
46*bcacb4e6SAndrew Jeffery {
47*bcacb4e6SAndrew Jeffery 	struct mbox_context *ctx;
48*bcacb4e6SAndrew Jeffery 	int rc;
49*bcacb4e6SAndrew Jeffery 
50*bcacb4e6SAndrew Jeffery 	system_set_reserved_size(MEM_SIZE);
51*bcacb4e6SAndrew Jeffery 	system_set_mtd_sizes(MEM_SIZE, ERASE_SIZE);
52*bcacb4e6SAndrew Jeffery 
53*bcacb4e6SAndrew Jeffery 	ctx = mbox_create_test_context(N_WINDOWS, WINDOW_SIZE);
54*bcacb4e6SAndrew Jeffery 
55*bcacb4e6SAndrew Jeffery 	rc = mbox_command_dispatch(ctx, command, sizeof(command));
56*bcacb4e6SAndrew Jeffery 	assert(rc == 2);
57*bcacb4e6SAndrew Jeffery 
58*bcacb4e6SAndrew Jeffery 	rc = mbox_cmp(ctx, response, sizeof(response));
59*bcacb4e6SAndrew Jeffery 	assert(rc == 0);
60*bcacb4e6SAndrew Jeffery 
61*bcacb4e6SAndrew Jeffery 	return rc;
62*bcacb4e6SAndrew Jeffery }
63