1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
// SPDX-License-Identifier: BSD-3-Clause
/* Copyright 2020-2021, Intel Corporation */
/*
* mocks-stdlib.c -- stdlib mocks
*/
#include <errno.h>
#include <stddef.h>
#include <sys/types.h>
#include <sys/mman.h>
#include "cmocka_headers.h"
#include "mocks-stdlib.h"
#include "test-common.h"
void *__real__test_malloc(size_t size);
/*
* __wrap__test_malloc -- malloc() mock
*/
void *
__wrap__test_malloc(size_t size)
{
errno = mock_type(int);
if (errno)
return NULL;
return __real__test_malloc(size);
}
/*
* __wrap_mmap -- mmap() mock
*/
void *
__wrap_mmap(void *__addr, size_t __len, int __prot,
int __flags, int __fd, off_t __offset)
{
void *ret = mock_type(void *);
if (ret != (void *)MOCK_OK)
return MAP_FAILED;
struct mmap_args *args = mock_type(struct mmap_args *);
void *memptr = __real__test_malloc(__len);
/*
* Save the address and length of the allocated memory
* in order to verify it later.
*/
args->addr = memptr;
args->len = __len;
return memptr;
}
/*
* __wrap_munmap -- munmap() mock
*/
int
__wrap_munmap(void *__addr, size_t __len)
{
struct mmap_args *args = mock_type(struct mmap_args *);
assert_ptr_equal(__addr, args->addr);
assert_int_equal(__len, args->len);
test_free(__addr);
errno = mock_type(int);
if (errno)
return -1;
return 0;
}
|