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