mirror of
https://review.coreboot.org/flashrom.git
synced 2025-07-01 22:21:16 +02:00
tests/: Add CMocka unit-test infrastructure
This adds the CMocka unit-testing infrastructure into the meson build system which we will latter follow up with unit-tests for flashrom's core logic. BUG=b:157280555 BRANCH=none TEST=builds Change-Id: I66665f56627b3d99049176bfbebbd771b080370a Signed-off-by: Edward O'Callaghan <quasisec@google.com> Reviewed-on: https://review.coreboot.org/c/flashrom/+/41622 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:

committed by
Edward O'Callaghan

parent
6f793e4500
commit
46f2d4e488
18
tests/include/test.h
Normal file
18
tests/include/test.h
Normal file
@ -0,0 +1,18 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/* This file is part of the coreboot project. */
|
||||
|
||||
#ifndef _TESTS_TEST_H
|
||||
#define _TESTS_TEST_H
|
||||
|
||||
/*
|
||||
* Standard test header that should be included in all tests. For now it just encapsulates the
|
||||
* include dependencies for Cmocka. Test-specific APIs that are so generic we would want them
|
||||
* available everywhere could also be added here.
|
||||
*/
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stddef.h>
|
||||
#include <setjmp.h>
|
||||
#include <cmocka.h>
|
||||
|
||||
#endif /* _TESTS_TEST_H */
|
28
tests/meson.build
Normal file
28
tests/meson.build
Normal file
@ -0,0 +1,28 @@
|
||||
root_includes = include_directories('../subprojects')
|
||||
|
||||
srcs = [
|
||||
'tests.c',
|
||||
]
|
||||
|
||||
mocks = [
|
||||
'-Wl,--wrap=physunmap',
|
||||
'-Wl,--wrap=physmap',
|
||||
'-Wl,--gc-sections',
|
||||
]
|
||||
|
||||
flashrom_tests = executable('flashrom_unit_tests',
|
||||
srcs,
|
||||
include_directories : root_includes,
|
||||
c_args : [
|
||||
cargs,
|
||||
'-ffunction-sections',
|
||||
'-fdata-sections',
|
||||
# '-DSTANDALONE',
|
||||
'-DCONFIG_DEFAULT_PROGRAMMER=PROGRAMMER_DUMMY',
|
||||
'-DCONFIG_DEFAULT_PROGRAMMER_ARGS=""',
|
||||
],
|
||||
export_dynamic : true,
|
||||
link_args : mocks,
|
||||
dependencies : [cmocka_dep, flashrom_test_dep],
|
||||
)
|
||||
test('cmocka test flashrom', flashrom_tests)
|
25
tests/tests.c
Normal file
25
tests/tests.c
Normal file
@ -0,0 +1,25 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/* This file is part of the coreboot project. */
|
||||
|
||||
#include <include/test.h>
|
||||
#include "tests.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
/* redefinitions/wrapping */
|
||||
void __wrap_physunmap(void *virt_addr, size_t len)
|
||||
{
|
||||
fprintf(stderr, "%s\n", __func__);
|
||||
}
|
||||
void *__wrap_physmap(const char *descr, uintptr_t phys_addr, size_t len)
|
||||
{
|
||||
fprintf(stderr, "%s\n", __func__);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
return ret;
|
||||
}
|
4
tests/tests.h
Normal file
4
tests/tests.h
Normal file
@ -0,0 +1,4 @@
|
||||
#ifndef TESTS_H
|
||||
#define TESTS_H
|
||||
|
||||
#endif /* TESTS_H */
|
Reference in New Issue
Block a user