mirror of
https://github.com/Fishwaldo/opensbi.git
synced 2025-07-07 21:49:02 +00:00
docs/writing_tests: Update tests paths
Since the tests should be moved to the lib/sbi/tests directory, the documentation should be updated correspondingly. So, update the paths where they have to be changed. Signed-off-by: Ivan Orlov <ivan.orlov0322@gmail.com> Reviewed-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
parent
5c992a115a
commit
86224ec36a
1 changed files with 10 additions and 11 deletions
|
@ -6,7 +6,7 @@ SBIUnit
|
||||||
SBIUnit is a set of macros and functions which simplify the test development and
|
SBIUnit is a set of macros and functions which simplify the test development and
|
||||||
automate the test execution and evaluation. All of the SBIUnit definitions are
|
automate the test execution and evaluation. All of the SBIUnit definitions are
|
||||||
in the `include/sbi/sbi_unit_test.h` header file, and implementations are
|
in the `include/sbi/sbi_unit_test.h` header file, and implementations are
|
||||||
available in `lib/sbi/sbi_unit_test.c`.
|
available in `lib/sbi/tests/sbi_unit_test.c`.
|
||||||
|
|
||||||
Simple SBIUnit test
|
Simple SBIUnit test
|
||||||
-------------------
|
-------------------
|
||||||
|
@ -30,7 +30,7 @@ size_t sbi_strlen(const char *str)
|
||||||
|
|
||||||
which calculates the string length.
|
which calculates the string length.
|
||||||
|
|
||||||
Create the file `lib/sbi/sbi_string_test.c` with the following content:
|
Create the file `lib/sbi/tests/sbi_string_test.c` with the following content:
|
||||||
|
|
||||||
```c
|
```c
|
||||||
#include <sbi/sbi_unit_test.h>
|
#include <sbi/sbi_unit_test.h>
|
||||||
|
@ -50,10 +50,10 @@ static struct sbiunit_test_case string_test_cases[] = {
|
||||||
SBIUNIT_TEST_SUITE(string_test_suite, string_test_cases);
|
SBIUNIT_TEST_SUITE(string_test_suite, string_test_cases);
|
||||||
```
|
```
|
||||||
|
|
||||||
Then, add the corresponding Makefile entries to `lib/sbi/objects.mk`:
|
Then, add the corresponding Makefile entries to `lib/sbi/tests/objects.mk`:
|
||||||
```lang-makefile
|
```lang-makefile
|
||||||
...
|
...
|
||||||
libsbi-objs-$(CONFIG_SBIUNIT) += sbi_string_test.o
|
libsbitests-objs-$(CONFIG_SBIUNIT) += sbi_string_test.o
|
||||||
carray-sbi_unit_tests-$(CONFIG_SBIUNIT) += string_test_suite
|
carray-sbi_unit_tests-$(CONFIG_SBIUNIT) += string_test_suite
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -86,7 +86,7 @@ Now let's try to change this test in the way that it will fail:
|
||||||
# Running SBIUNIT tests #
|
# Running SBIUNIT tests #
|
||||||
...
|
...
|
||||||
## Running test suite: string_test_suite
|
## Running test suite: string_test_suite
|
||||||
[SBIUnit] [.../opensbi/lib/sbi/sbi_string_test.c:6]: strlen_test: Condition "(sbi_strlen("Hello")) == (100)" expected to be true!
|
[SBIUnit] [.../opensbi/lib/sbi/tests/sbi_string_test.c:6]: strlen_test: Condition "(sbi_strlen("Hello")) == (100)" expected to be true!
|
||||||
[FAILED] strlen_test
|
[FAILED] strlen_test
|
||||||
0 PASSED / 1 FAILED / 1 TOTAL
|
0 PASSED / 1 FAILED / 1 TOTAL
|
||||||
```
|
```
|
||||||
|
@ -95,17 +95,16 @@ Covering the static functions / using the static definitions
|
||||||
|
|
||||||
SBIUnit also allows you to test static functions. In order to do so, simply
|
SBIUnit also allows you to test static functions. In order to do so, simply
|
||||||
include your test source in the file you would like to test. Complementing the
|
include your test source in the file you would like to test. Complementing the
|
||||||
example above, just add this to the
|
example above, just add this to the `lib/sbi/sbi_string.c` file:
|
||||||
`lib/sbi/sbi_string.c` file:
|
|
||||||
|
|
||||||
```c
|
```c
|
||||||
#ifdef CONFIG_SBIUNIT
|
#ifdef CONFIG_SBIUNIT
|
||||||
#include "sbi_string_test.c"
|
#include "tests/sbi_string_test.c"
|
||||||
#endif
|
#endif
|
||||||
```
|
```
|
||||||
|
|
||||||
In this case you should only add a new carray entry pointing to the test suite
|
In this case you should only add a new carray entry pointing to the test suite
|
||||||
to `lib/sbi/objects.mk`:
|
to `lib/sbi/tests/objects.mk`:
|
||||||
```lang-makefile
|
```lang-makefile
|
||||||
...
|
...
|
||||||
carray-sbi_unit_tests-$(CONFIG_SBIUNIT) += string_test_suite
|
carray-sbi_unit_tests-$(CONFIG_SBIUNIT) += string_test_suite
|
||||||
|
@ -114,12 +113,12 @@ carray-sbi_unit_tests-$(CONFIG_SBIUNIT) += string_test_suite
|
||||||
You don't have to compile the `sbi_string_test.o` separately, because the
|
You don't have to compile the `sbi_string_test.o` separately, because the
|
||||||
test code will be included into the `sbi_string` object file.
|
test code will be included into the `sbi_string` object file.
|
||||||
|
|
||||||
See example in `lib/sbi/sbi_console_test.c`, where statically declared
|
See example in `lib/sbi/tests/sbi_console_test.c`, where statically declared
|
||||||
`console_dev` variable is used to mock the `sbi_console_device` structure.
|
`console_dev` variable is used to mock the `sbi_console_device` structure.
|
||||||
|
|
||||||
"Mocking" the structures
|
"Mocking" the structures
|
||||||
------------------------
|
------------------------
|
||||||
See the example of structure "mocking" in the `lib/sbi/sbi_console_test.c`,
|
See the example of structure "mocking" in `lib/sbi/tests/sbi_console_test.c`,
|
||||||
where the sbi_console_device structure was mocked to be used in various
|
where the sbi_console_device structure was mocked to be used in various
|
||||||
console-related functions in order to test them.
|
console-related functions in order to test them.
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue