mirror of
https://github.com/ThrowTheSwitch/CMock.git
synced 2026-08-29 06:19:59 +00:00
134 lines
3.2 KiB
YAML
134 lines
3.2 KiB
YAML
# =========================================================================
|
|
# CMock - Automatic Mock Generation for C
|
|
# ThrowTheSwitch.org
|
|
# Copyright (c) 2007-26 Mike Karlesky, Mark VanderVoord, & Greg Williams
|
|
# SPDX-License-Identifier: MIT
|
|
# =========================================================================
|
|
|
|
---
|
|
#The purpose of this test is to verify that void* arguments use pointer
|
|
#comparison (not byte dereferencing) when the array plugin is not active.
|
|
#Dereferencing void* is illegal in C, so the mock must fall back to
|
|
#comparing pointer values via UNITY_TEST_ASSERT_EQUAL_PTR.
|
|
:cmock:
|
|
:plugins: []
|
|
:treat_as_void:
|
|
- MY_VOID
|
|
|
|
:systest:
|
|
:types: |
|
|
typedef void MY_VOID;
|
|
|
|
:mockable: |
|
|
void get_v_ptr(void* ptr);
|
|
void get_const_v_ptr(const void* ptr);
|
|
void get_my_void_ptr(MY_VOID* ptr);
|
|
|
|
:source:
|
|
:header: |
|
|
void function_a(void* arg);
|
|
void function_b(const void* arg);
|
|
void function_c(MY_VOID* arg);
|
|
|
|
:code: |
|
|
void function_a(void* arg) {
|
|
get_v_ptr(arg);
|
|
}
|
|
|
|
void function_b(const void* arg) {
|
|
get_const_v_ptr(arg);
|
|
}
|
|
|
|
void function_c(MY_VOID* arg) {
|
|
get_my_void_ptr(arg);
|
|
}
|
|
|
|
:tests:
|
|
:common: |
|
|
void setUp(void) {}
|
|
void tearDown(void) {}
|
|
|
|
:units:
|
|
- :pass: TRUE
|
|
:should: 'handle void pointer expect passing when same pointer used'
|
|
:code: |
|
|
test()
|
|
{
|
|
char a[] = "Hello";
|
|
get_v_ptr_Expect(a);
|
|
function_a(a);
|
|
}
|
|
|
|
- :pass: FALSE
|
|
:should: 'detect void pointer mismatch when different pointers used even with same content'
|
|
:code: |
|
|
test()
|
|
{
|
|
static char a[] = "Hello";
|
|
static char b[] = "Hello";
|
|
get_v_ptr_Expect(a);
|
|
function_a(b);
|
|
}
|
|
|
|
- :pass: TRUE
|
|
:should: 'handle null void pointer expect passing'
|
|
:code: |
|
|
test()
|
|
{
|
|
get_v_ptr_Expect(NULL);
|
|
function_a(NULL);
|
|
}
|
|
|
|
- :pass: FALSE
|
|
:should: 'detect null vs non-null void pointer mismatch'
|
|
:code: |
|
|
test()
|
|
{
|
|
char a[] = "Hello";
|
|
get_v_ptr_Expect(NULL);
|
|
function_a(a);
|
|
}
|
|
|
|
- :pass: TRUE
|
|
:should: 'handle const void pointer expect passing when same pointer used'
|
|
:code: |
|
|
test()
|
|
{
|
|
char a[] = "Hello";
|
|
get_const_v_ptr_Expect(a);
|
|
function_b(a);
|
|
}
|
|
|
|
- :pass: FALSE
|
|
:should: 'detect const void pointer mismatch when different pointers used'
|
|
:code: |
|
|
test()
|
|
{
|
|
static char a[] = "Hello";
|
|
static char b[] = "Hello";
|
|
get_const_v_ptr_Expect(a);
|
|
function_b(b);
|
|
}
|
|
|
|
- :pass: TRUE
|
|
:should: 'handle treat_as_void alias pointer expect passing when same pointer used'
|
|
:code: |
|
|
test()
|
|
{
|
|
char a[] = "Hello";
|
|
get_my_void_ptr_Expect(a);
|
|
function_c(a);
|
|
}
|
|
|
|
- :pass: FALSE
|
|
:should: 'detect treat_as_void alias pointer mismatch when different pointers used'
|
|
:code: |
|
|
test()
|
|
{
|
|
static char a[] = "Hello";
|
|
static char b[] = "Hello";
|
|
get_my_void_ptr_Expect(a);
|
|
function_c(b);
|
|
}
|
|
...
|