Commit graph

15 commits

Author SHA1 Message Date
Ravishankar Bhagavandas
e39c34ba7e
Adding unit tests for stream buffer and message buffer (#528)
* Initial commit

* Add more stream buffer tests

* Adding message buffer tests

* Adding tests to cover config assert branches

Co-authored-by: alfred gedeon <28123637+alfred2g@users.noreply.github.com>
2021-03-30 12:56:02 -07:00
Paul Bartell
7020db5403
Force a branch in the definition of configASSERT in the default CMock FreeRTOSConfig.h file (#538)
* Force a branch in the definition of configASSERT in the default CMock FreeRTOSConfig.h file
* Run uncrustify on FreeRTOSConfig.h
2021-03-24 13:08:15 -07:00
Paul Bartell
92aca6e910
Collect initial coverage data so that untagged functions are still included in the lcov report (#537)
Collect initial coverage data with lcov --initial and add this to coverage data to the combined coverage from each test binary.
This ensures that all functions in the target file(s) are included in coverage statistics, even if those functions are not tagged in a _utest.c file.
Note: Functions which are excluded by the preprocessor will not have initial coverage data generated for them.
2021-03-23 18:41:14 -07:00
Paul Bartell
3a48781a03 Skip filtering of coverage if no @coverage tags are found in a _utest.c file 2021-03-22 14:58:52 -07:00
Paul Bartell
f39765be22
Kernel UT: Enable preprocessor when running cflow in callgraph.py (#530)
* Add INCLUDE_DIR to the commandline call to cflow in callgraph.py

This removes dependent functions from the list when they are disabled in the FreeRTOS config.

* Add argparse to callgraph.py so that no output file is created on failure.
2021-03-19 17:30:20 -07:00
Paul Bartell
6257160ee6
Make the address sanitizer optional for CMock kernel unit tests (#526)
* Make the address sanitizer optional

The address sanitizer is now disabled by default for CMock tests because it introduces additional branches into the compiled code. When make is run with the ENABLE_SANITIZER=1 argument, the address sanitizer is enabled and coverage data may not be accurate.

* Change from ifdef to ifeq ($(ENABLE_SANITIZER),1) to address PR comment
2021-03-16 13:55:01 -07:00
Paul Bartell
d7e5f40885
Clean up CMock makefiles and add coverage filtering (#523)
* Cleanup Makefiles

* Add lcovrc configuration file

* Add CMock test build directory to .gitignore

* Add callgraph.py and filtercov.py scripts

* Cleanup list Makefile and update list_utest.c with coverage tags

* Add information about coverage filtering and running single test cases

* Remove -fprofile-exclude-files for compatibility with older versions of gcc.
Fix line endings (change to unix style)

* Lint callgraph.py and filtercov.py. Print and error when no target functions are defined.

* Indent with spaces when possible

* Replace tabs with spaces and enable .RECIPEPREFIX

* Add fake_port.h and related portmacro.h changes

* Fix list makefile when bin directory is not available

* Clean up grouped rules

* Update makesfile.. Add "two_tests" example dir

* Fix memory checker error

* Move common makefile items to subdir.mk and testdir.mk includes

* Update core_checker.py exclusions

* Remove line from portmacro.h that doesn't match core_checker.py
2021-03-15 17:01:29 -07:00
Paul Bartell
570ae6bb52
Add unity memory extension, fake_assert, and enable -fsanitize=address (#506)
* Enable libunitymemory extension to track dynamic memory usage during unit tests
* Use UnityMemory in timers_utest.c
* Add fake_assert.h to allow mocking of configASSERT calls
* Add .editorconfig to make github show indentation correctly
* Add unity memory and fake_assert to queue_utest.c
* Add -fsanitize=address CFLAG when running unit tests
* Define mtCOVERAGE_TEST_MARKER macro to include mtCOVERAGE_TEST_MARKER lines in coverage figures
* Add additional memory check / protection CFLAGS for CMock tests
* Fix out of bounds array access in list_utest.c
* Move the fake_assert.h include to the top of FreeRTOSConfig.h
2021-02-18 10:15:01 -08:00
alfred gedeon
c4d8002634
Generate JUnit style report for kernel unit test (#504)
* Add JUnit test report to ut
* Add JUnit test report with make run
* Fix gcc path
2021-02-15 14:09:24 -08:00
David Chalco
63aec3607d
Unit Test/timer[0] (#502)
* define CC/LD iff undef. Add timers suite

* timers_utest[0]
2021-02-14 11:24:55 -08:00
alfred gedeon
cd92c42b52
Kernel list.c Unit Test (#497)
* Test: List.c Unit Test

* Test: test list.h macros

* Test: Fix UT bug

* Remove unecessary statement from Makefile

* Update list_utest.c

* Update list_utest.c

Co-authored-by: Cobus van Eeden <35851496+cobusve@users.noreply.github.com>
2021-02-11 18:10:49 -08:00
alfred gedeon
9b9011917a
Add Kernel Unit Tests Environment (#494)
* Implement Kernel Unit Test Framework with CMock

* Add Readme.md to unit tests

* Add Posix build checker to git actions

* Add Ruby requirement

* Fix file header checks

* Fix header checks

* Add color output to test runs
2021-02-08 15:26:01 -08:00
Joseph Julicher
2e2ba99a74 [AUTO][RELEASE]: Bump file header version to "202012.00" 2020-12-15 10:20:29 -07:00
David Chalco
7bcc5b48b1
Move ./scripts --> FreeRTOS/Test/CMock/scripts (#298) 2020-09-24 17:17:34 -07:00
David Chalco
190c9e780d
Inititial stub for cmock tests (#297) 2020-09-24 17:06:28 -07:00