How to (re)compile components
Posted: Fri Jul 14, 2017 9:08 am
Hello,
I am trying to do things right: user components and tests
I am running however into a few issue and I have questions.
First of all, as there is for 'apps', is there a template repo that could be cloned for components?
I realized a few things that may help other, please comment if I am mistaken:
- you should write your components inside $IDF_PATH/components, other path won´t work
- ensure you have in your
- you compile from with or
- then you can flash, select your test and run it
Here are the issues I ran into. For the following, let´s assume my components is called myComp and located in. The make commands are ran from
=> works (telling me I can now flash, ...)
=> works, tell me I can flash
=> works, tell me I can flash
=> works
After that I tried introducing a typo in my components´ code. => all happy
=> the error is still not caught
=> the error is still not caught
A typo in the tests is caught properly however.
Disclaimer: I admit my C knowledge being rusty (no pun intended)
I am trying to do things right: user components and tests
I am running however into a few issue and I have questions.
First of all, as there is for 'apps', is there a template repo that could be cloned for components?
I realized a few things that may help other, please comment if I am mistaken:
- you should write your components inside $IDF_PATH/components, other path won´t work
- ensure you have
Code: Select all
COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive
Code: Select all
comp/test/component.mk
Code: Select all
$IDF_PATH/tools/unit-test-app
Code: Select all
make TESTS_ALL=1
Code: Select all
make TEST_COMPONENTS='myComp'
Here are the issues I ran into. For the following, let´s assume my components is called myComp and located in
Code: Select all
$IDF_PATH/components/myComp
Code: Select all
$IDF_PATH/tools/unit-test-app
Code: Select all
make TESTS_ALL=1
Code: Select all
make TEST_COMPONENTS='myComp'
Code: Select all
make TEST_COMPONENTS='I surely don't exist'
Code: Select all
make clean && make TEST_COMPONENTS='myComp' && make flash
After that I tried introducing a typo in my components´ code.
Code: Select all
make TEST_COMPONENTS='myComp'
Code: Select all
make clean && make TEST_COMPONENTS='myComp'
Code: Select all
make TESTS_ALL=1
A typo in the tests is caught properly however.
Disclaimer: I admit my C knowledge being rusty (no pun intended)