1 // SPDX-License-Identifier: BSD-3-Clause
2 /*
3  * Copyright (c) 2021, Arm Limited. All rights reserved.
4  */
5 
6 #include <CppUTestExt/MockSupport.h>
7 #include <CppUTest/TestHarness.h>
8 #include "mock_sp_rxtx.h"
9 #include <stdint.h>
10 #include <stdlib.h>
11 
12 static uint8_t tx_buf[16] = { 0 };
13 static const uint8_t rx_buf[16] = { 0 };
14 
15 static void *expected_tx_buffer = tx_buf;
16 static const void *expected_rx_buffer = rx_buf;
17 static size_t expected_size = 1234;
18 
TEST_GROUP(mock_sp_rxtx)19 TEST_GROUP(mock_sp_rxtx)
20 {
21 	TEST_TEARDOWN()
22 	{
23 		mock().checkExpectations();
24 		mock().clear();
25 	}
26 
27 	static const sp_result result = -1;
28 };
29 
TEST(mock_sp_rxtx,sp_rxtx_buffer_map)30 TEST(mock_sp_rxtx, sp_rxtx_buffer_map)
31 {
32 	expect_sp_rxtx_buffer_map(expected_tx_buffer, expected_rx_buffer,
33 				  expected_size, result);
34 	LONGS_EQUAL(result,
35 		    sp_rxtx_buffer_map(expected_tx_buffer, expected_rx_buffer,
36 				       expected_size));
37 }
38 
TEST(mock_sp_rxtx,sp_rxtx_buffer_unmap)39 TEST(mock_sp_rxtx, sp_rxtx_buffer_unmap)
40 {
41 	expect_sp_rxtx_buffer_unmap(result);
42 	LONGS_EQUAL(result, sp_rxtx_buffer_unmap());
43 }
44 
TEST(mock_sp_rxtx,sp_rxtx_buffer_alignment_boundary_get)45 TEST(mock_sp_rxtx, sp_rxtx_buffer_alignment_boundary_get)
46 {
47 	const uintptr_t expected_alignment = 4096;
48 	uintptr_t alignment = 0;
49 
50 	expect_sp_rxtx_buffer_alignment_boundary_get(&expected_alignment,
51 						     result);
52 	LONGS_EQUAL(result, sp_rxtx_buffer_alignment_boundary_get(&alignment));
53 	UNSIGNED_LONGLONGS_EQUAL(expected_alignment, alignment);
54 }
55 
TEST(mock_sp_rxtx,sp_rxtx_buffer_rx_get)56 TEST(mock_sp_rxtx, sp_rxtx_buffer_rx_get)
57 {
58 	const void *buffer = NULL;
59 	size_t size = 0;
60 
61 	expect_sp_rxtx_buffer_rx_get(&expected_rx_buffer, &expected_size,
62 				     result);
63 	LONGS_EQUAL(result, sp_rxtx_buffer_rx_get(&buffer, &size));
64 	POINTERS_EQUAL(expected_rx_buffer, buffer);
65 	UNSIGNED_LONGLONGS_EQUAL(expected_size, size);
66 }
67 
TEST(mock_sp_rxtx,sp_rxtx_buffer_tx_get)68 TEST(mock_sp_rxtx, sp_rxtx_buffer_tx_get)
69 {
70 	void *buffer = NULL;
71 	size_t size = 0;
72 
73 	expect_sp_rxtx_buffer_tx_get((void **)&expected_tx_buffer,
74 				     &expected_size, result);
75 	LONGS_EQUAL(result, sp_rxtx_buffer_tx_get(&buffer, &size));
76 	POINTERS_EQUAL(expected_tx_buffer, buffer);
77 	UNSIGNED_LONGLONGS_EQUAL(expected_size, size);
78 }
79