Hi Pierre-Noel, The instructions are here: https://nuttx.apache.org/community/
We are glad for all the things you did for NuttX (EFM32 port, ESP8266, etc.) Thank you very much! BR, Alan On Mon, Dec 22, 2025 at 3:16 PM Pierre-Noel Bouteville <[email protected]> wrote: > How to unsbcribe? > Pierre-Noël Bouteville > Envoyé de mon iPhone > > > Le 22 déc. 2025 à 19:13, raiden00pl <[email protected]> a écrit : > > > > Cmocka tests can run on any target. It doesn't matter if it's sim, qemu > or > > real hardware. > > You just need to prepare a defconfig and have the right amount of FLASH. > > > > For small systems we can always try to reduce the size of the cmock, e.g. > > by disabling > > unnecessary prints. I doubt that the logic of running tests in cmoka is > > heavy, running > > test cases are not a complicated operation, I think most of the required > > FLASH is wasted > > on strings. > > > > NTFC supports serial port communication and sample test scenario based on > > nucleo-h743z > > with cmocka tests enabled. The only thing missing for full test > automation > > (compile, flash, > > test, result) is cmake support for testsuites. > > > > pon., 22 gru 2025 o 18:08 Matteo Golin <[email protected]> > napisał(a): > > > >> Hello everyone, > >> > >> Thanks for all the feedback! I'm glad I discussed this here first. I'll > try > >> to address everything that was brought up. > >> > >> Thanks Guiding for the input! I must just be missing some library on my > >> machine if you're able to compile it just fine. Maybe I'll track down > that > >> error and see if you can recognize what's wrong. > >> > >> I don't intend to replace OS test anymore. I think it serves its > purpose as > >> a minimal sanity check. Instead, I think we need something a little more > >> involved to test PRs since OS test can't catch many issues. It is > currently > >> the standard everyone uses for verifying their patches and it would be > >> better to have more complete, alternate options. I do think that we can > all > >> agree that OS test needs a revision of its console output so that it is > >> much easier to see pass/fail results, but that is just a matter of print > >> statements and can be done in a different effort. > >> > >> I think the overwhelming concern here is mixing two unit testing > frameworks > >> and no longer having one resource where we can go for tests. I share > raiden > >> and Guiding's concern about that, which is why I'm glad I opened for > >> discussion here. On the one hand, Xiaomi has a pretty substantial > >> collection of tests in the `testsuite` application which they are using > >> internally I believe (in their CI). These run well on virtual machines, > >> which I assume is why the only configurations with that test suite > included > >> is sim and rv-virt. I do not know nearly enough about cmocka to make any > >> claim that it *wouldn't* work on smaller hardware devices, but it also > >> definitely looks to be less light-weight from the feature set in the > >> documentation. On the other hand, the Xiaomi test suites are also not a > >> complete silver bullet since they seem not to be intended to run on > >> hardware, and there are *a lot *of tests that need hardware > verification. > >> In PRs we often request more than just a simulator test for certain > >> changes. For instance, sim isn't able to have `/dev/rand`, so that > needs to > >> be tested on a different target. > >> > >> Maybe someone more familiar with Xiaomi's testing practices can weigh > in on > >> whether cmocka has been run on hardware. Going purely based off of their > >> PRs, which almost exclusively cite tests on simulators, my guess is that > >> cmocka was not designed with embedded in mind when it was written. > >> > >> As for size: unit testing can get large with Unity or cmocka (as raiden > >> mentioned) as more tests are added. Hence my effort to enable/disable > >> individual test suites from getting compiled. It might not be possible > to > >> ever get good testing ability for AVR just because the devices are so > >> small. Whatever solution is used there is probably going to involve > >> flashing the device multiple times with different tests. The size goal > >> should just be to target the most NuttX devices possible. > >> > >> Then there are the pros and cons of each framework (again, I don't know > >> much about cmocka so take it with a grain of salt): > >> > >> Unity's cons: > >> - Designed for each test-suite to be a standalone binary. This is > clunky on > >> NuttX, so `nest` is currently implemented as a mega-suite where test > cases > >> just follow a naming convention to make it clear what is being tested > >> - setUp/tearDown can't really be leveraged because of the above > >> - I've noticed some funky behaviour using TEST_IGNORE in certain > scenarios > >> but that's possibly my own configuration issue > >> - Would be in conflict with existing cmocka tests > >> > >> Unity's pros: > >> - Highly configurable, like NuttX > >> - Light-weight and works for embedded devices > >> - Significantly larger user base than cmocka > >> > >> Cmocka's cons: > >> - Possibly (?) not light-weight > >> - No documentation for existing test cases in NuttX > >> - Small user base > >> > >> Cmocka's pros: > >> - Seems to have a larger set of features, including setup/teardown > >> functions per-test case > >> - Existing tests in NuttX > >> > >> Irrespective of whether we go with Unity or cmocka, the collection of > tests > >> that we write will be intended to run on the actual hardware devices > >> themselves for the purposes of testing patches and doing regression > tests. > >> As a result, the tests will be separate from the Xiaomi 'testsuite' > >> application which is intended for CI testing. I think this realistically > >> nullifies choosing which framework to use on the basis of consistency, > >> since the tests are not coexisting with the cmocka tests Xiaomi has > >> written. Instead, the choice should be based on what best achieves the > goal > >> from a functionality perspective. Unity seems like a really great choice > >> for this in my opinion, but I am bothered by the fact that it's designed > >> with multiple test binaries in mind. > >> > >> Let me know what you think, > >> Matteo > >> > >>> On Mon, Dec 22, 2025 at 11:02 AM Alan C. Assis <[email protected]> > wrote: > >>> > >>> Yes, I agree! We need data size from each solution for comparison, this > >> is > >>> the first step. > >>> > >>> Maybe the conversion could be facilitated if we create equivalent > >> functions > >>> like those used in the apps/testing/testsuites: > >>> > >>> cmocka_run_group_tests -> unity_run_group_tests > >>> cmocka_unit_test_setup_teardown -> unity_unit_test_setup_teardown > >>> etc... > >>> > >>> This way we avoid end up with two unit test framework, we already have > >> the > >>> Makefile vs CMake precedent! :-D > >>> > >>> On Mon, Dec 22, 2025 at 11:27 AM raiden00pl <[email protected]> > >> wrote: > >>> > >>>> The discussion about small systems doesn't make much sense without > >>>> data comparing resources of the same test cases for cmock and unity. > >>>> > >>>> But let's assume that Unity is better. Should we use two frameworks > >>>> to implement unit tests for OS? Or choose one framework? If we choose > >>> only > >>>> Unity, who > >>>> will migrate the current cmocka tests to Unity? Remember that cmoka > >> tests > >>>> are used in CI, so all CI tools must be also migrated. > >>>> Or should we use two different frameworks to test different things and > >>> make > >>>> even > >>>> more mess in apps/testing as it is now? > >>>> > >>>> No one is forcing anyone to do anything. This is an open-source > >> project, > >>>> everyone > >>>> should do what they feel is right. But whether the change should be > >>> merged > >>>> is > >>>> a different question. In this case, it's a very important question, > >>> because > >>>> unit testing > >>>> isn't just about test cases. It's about the entire infrastructure that > >>>> runs, captures and > >>>> handles test results later. Writing the test cases is the least of the > >>>> problems. > >>>> The infrastructure for cmoka testing is already in place, the > >>>> infrastructure for Unity > >>>> testing isn't. > >>>> > >>>> pon., 22 gru 2025 o 14:16 Alan C. Assis <[email protected]> > >> napisał(a): > >>>> > >>>>> Mateusz, > >>>>> but some chips like AVR DA have big flash, but not so much RAM. > >>>>> > >>>>> It is better to have some possible way to test on a small system, > >> using > >>>>> cmocka we are removing this option from the table. > >>>>> > >>>>> I liked the test Matteo did with Unity and I think we should let him > >>>>> continue. Forcing him to migrate to cmocka just because there's a > >> test > >>>>> suite from Xiaomi doesn't seem prudent to me. > >>>>> > >>>>> This is the advantage of an open mind open-source project: "the > >>>> possibility > >>>>> to test new ideas", if someone had said to Michal Lenc he couldn't > >>> create > >>>>> NXBoot because where is already MCUBoot integrated on NuttX, we > >> didn't > >>>> have > >>>>> the option to use NXBoot today. ;-) > >>>>> > >>>>> BR, > >>>>> > >>>>> Alan > >>>>> > >>>>> On Mon, Dec 22, 2025 at 10:02 AM raiden00pl <[email protected]> > >>>> wrote: > >>>>> > >>>>>> Unit testing by itself isn't suitable for small systems. Ostest is > >>>>>> something > >>>>>> different (system level testing), so running it on small systems > >>> makes > >>>>>> sense. > >>>>>> Running unit tests on small systems is pointless because you won't > >>> fit > >>>> in > >>>>>> FLASH > >>>>>> either way. You can run the same on large targets (preferably on > >>> host: > >>>>> sim, > >>>>>> qemu) > >>>>>> and achieve the same result. > >>>>>> > >>>>>> pon., 22 gru 2025 o 13:35 Alan C. Assis <[email protected]> > >>>> napisał(a): > >>>>>> > >>>>>>> Is it too complicated to rewrite the cmocka tests in Unity? > >>>>>>> > >>>>>>> If cmoka is not feasible for small microcontrollers, like AVRs > >> and > >>>>>> others, > >>>>>>> our test coverage will be faulty. > >>>>>>> > >>>>>>> BR, > >>>>>>> > >>>>>>> Alan > >>>>>>> > >>>>>>> On Mon, Dec 22, 2025 at 6:14 AM raiden00pl <[email protected] > >>> > >>>>> wrote: > >>>>>>> > >>>>>>>> I'm a fan of Unity and have been using it in my projects for > >>> years, > >>>>>> but I > >>>>>>>> think > >>>>>>>> we should stick with one testing framework. Currently, Cmocka > >> is > >>>> used > >>>>>> in > >>>>>>>> nuttx-apps, and we should stick with it. The only question is > >> how > >>>>> well > >>>>>>>> Cmocka > >>>>>>>> is suitable for running on small systems? Will ostest still be > >>> able > >>>>> to > >>>>>>> run > >>>>>>>> on small MCUs? > >>>>>>>> With Unity this would be quite likely, so maybe an exception > >> for > >>>>> Unity > >>>>>>> and > >>>>>>>> ostest would > >>>>>>>> be acceptable, but using it for other test cases will only > >> cause > >>>>> chaos. > >>>>>>>> > >>>>>>>> pon., 22 gru 2025 o 10:05 Guiding Li <[email protected]> > >>>> napisał(a): > >>>>>>>> > >>>>>>>>> Hi Matteo, > >>>>>>>>> > >>>>>>>>> Good idea ! > >>>>>>>>> > >>>>>>>>> But it is best to stick with a single testing framework. > >>>> Currently, > >>>>>>> many > >>>>>>>>> test cases are using cmocka, so I suggest reusing cmocka for > >>>>>>> consistency. > >>>>>>>>> > >>>>>>>>> ostest is a minimal basic test suite, typically used for CT > >>>>>> (continuous > >>>>>>>>> testing) of each patch. > >>>>>>>>> If we move ostest to cmocka, it would make ostest dependent > >> on > >>> a > >>>>>>> specific > >>>>>>>>> framework before it can be run. > >>>>>>>>> And It may increase the code size, which is not very friendly > >>> for > >>>>>>>>> configurations with small flash memory. > >>>>>>>>> > >>>>>>>>> As Greg mentioned: the answer depends on a tradeoff between > >>>> effort > >>>>>> and > >>>>>>>> test > >>>>>>>>> coverage. > >>>>>>>>> > >>>>>>>>> We need to clarify whether we define ostest as a lightweight, > >>>>>>>> ready-to-run > >>>>>>>>> test set for quick verification, or as part of the full test > >>>> suite. > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> The follow is my compiling for cmocka: > >>>>>>>>> > >>>>>>>>> *ligd@BAI:~/platform/mainline/nuttx$ ./tools/configure.sh > >>>>> sim:citest > >>>>>>>> -j8* > >>>>>>>>> Copy files > >>>>>>>>> Select CONFIG_HOST_LINUX=y > >>>>>>>>> Refreshing... > >>>>>>>>> CP: arch/dummy/Kconfig to > >>>>>>>>> /home/ligd/platform/mainline/nuttx/arch/dummy/dummy_kconfig > >>>>>>>>> CP: boards/dummy/Kconfig to > >>>>>>>>> /home/ligd/platform/mainline/nuttx/boards/dummy/dummy_kconfig > >>>>>>>>> LN: include/arch to arch/sim/include > >>>>>>>>> LN: drivers/platform to > >>>>>>> /home/ligd/platform/mainline/nuttx/drivers/dummy > >>>>>>>>> LN: arch/sim/src/chip to > >>>>>>>>> /home/ligd/platform/mainline/nuttx/arch/sim/src/sim > >>>>>>>>> LN: arch/sim/src/board to > >>>>>>>>> /home/ligd/platform/mainline/nuttx/boards/sim/sim/sim/src > >>>>>>>>> LN: include/arch/board to > >>>>>>>>> /home/ligd/platform/mainline/nuttx/boards/sim/sim/sim/include > >>>>>>>>> LN: include/arch/chip to > >>>>>>>>> /home/ligd/platform/mainline/nuttx/arch/sim/include/sim > >>>>>>>>> LN: platform/board to > >>>>>> /home/ligd/platform/mainline/apps/platform/dummy > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/audioutils > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/benchmarks > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/boot > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/canutils > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/crypto > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/database > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/examples/rust > >>>>>>>>> mkkconfig in > >> /home/ligd/platform/mainline/apps/examples/sotest > >>>>>>>>> mkkconfig in > >> /home/ligd/platform/mainline/apps/examples/module > >>>>>>>>> mkkconfig in > >> /home/ligd/platform/mainline/apps/examples/mcuboot > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/examples > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/fsutils > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/games > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/graphics > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/industry > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/inertial > >>>>>>>>> mkkconfig in > >>>>>> /home/ligd/platform/mainline/apps/interpreters/luamodules > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/interpreters > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/logging > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/lte > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/math > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/mlearning > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/netutils > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/sdr > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/system > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/tee > >>>>>>>>> mkkconfig in > >> /home/ligd/platform/mainline/apps/testing/drivers > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/testing/sched > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/testing/fs > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/testing/mm > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/testing/libc > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/testing/arch > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/testing/cxx > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/testing > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/videoutils > >>>>>>>>> mkkconfig in > >>> /home/ligd/platform/mainline/apps/wireless/bluetooth > >>>>>>>>> mkkconfig in > >>>> /home/ligd/platform/mainline/apps/wireless/ieee802154 > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps/wireless > >>>>>>>>> mkkconfig in /home/ligd/platform/mainline/apps > >>>>>>>>> Loaded configuration '.config' > >>>>>>>>> Configuration saved to '.config' > >>>>>>>>> ligd@BAI:~/platform/mainline/nuttx$ > >>>>>>>>> *ligd@BAI:~/platform/mainline/nuttx$ make* > >>>>>>>>> Create version.h > >>>>>>>>> Downloading: libcxx-17.0.6.src.tar.xz LN: platform/board to > >>>>>>>>> /home/ligd/platform/mainline/apps/platform/dummy > >>>>>>>>> Downloading: v1.46.0.zip > >>>>>>>>> ... > >>>>>>>>> patching file > >>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>>> > >>>>> > >>>> > >>> > >> > testcases/open_posix_testsuite/conformance/interfaces/pthread_sigmask/18-1.c > >>>>>>>>> Hunk #1 succeeded at 160 with fuzz 2 (offset -8 lines). > >>>>>>>>> > >>>>>>>>> CP: > >> /home/ligd/platform/mainline/nuttx/include/nuttx/config.h > >>>>>>>>> CP: > >>> /home/ligd/platform/mainline/nuttx/include/nuttx/fs/hostfs.h > >>>>>>>>> LD: nuttx > >>>>>>>>> Pac SIM with dynamic libs.. > >>>>>>>>> '/lib/x86_64-linux-gnu/libz.so.1' -> 'sim-pac/libs/libz.so.1' > >>>>>>>>> '/lib/x86_64-linux-gnu/libstdc++.so.6' -> > >>>>>> 'sim-pac/libs/libstdc++.so.6' > >>>>>>>>> '/lib/x86_64-linux-gnu/libc.so.6' -> 'sim-pac/libs/libc.so.6' > >>>>>>>>> '/lib/x86_64-linux-gnu/libm.so.6' -> 'sim-pac/libs/libm.so.6' > >>>>>>>>> '/lib/x86_64-linux-gnu/libgcc_s.so.1' -> > >>>>> 'sim-pac/libs/libgcc_s.so.1' > >>>>>>>>> '/lib64/ld-linux-x86-64.so.2' -> > >> 'sim-pac/ld-linux-x86-64.so.2' > >>>>>>>>> SIM elf with dynamic libs archive in nuttx.tgz > >>>>>>>>> ligd@BAI:~/platform/mainline/nuttx$ > >>>>>>>>> ligd@BAI:~/platform/mainline/nuttx$ > >>>>>>>>> ligd@BAI:~/platform/mainline/nuttx$ > >>>>>>>>> *ligd@BAI:~/platform/mainline/nuttx$ ./nuttx * > >>>>>>>>> CHelloWorld: Constructor: mSecret=42 > >>>>>>>>> nsh: init: open failed: 2 > >>>>>>>>> > >>>>>>>>> NuttShell (NSH) NuttX-12.11.0 > >>>>>>>>> MOTD: username=admin password=Administrator > >>>>>>>>> nsh> > >>>>>>>>> nsh> help > >>>>>>>>> help usage: help [-v] [<cmd>] > >>>>>>>>> > >>>>>>>>> . df ifconfig mkfifo readlink > >>>>>> umount > >>>>>>>>> [ dmesg ifdown mkrd rm > >>>>> unset > >>>>>>>>> ? echo ifup mount rmdir > >>>>>> uptime > >>>>>>>>> alias env insmod mv rmmod > >>>>>> usleep > >>>>>>>>> unalias exec kill nslookup set > >>>>> watch > >>>>>>>>> basename exit pkill pidof sleep > >>>> xd > >>>>>>>>> break expr losetup pmconfig source > >>>>> wait > >>>>>>>>> cat false ln poweroff test > >>>>>>>>> cd fdinfo ls quit time > >>>>>>>>> cp free lsmod printf true > >>>>>>>>> cmp help mkdir ps truncate > >>>>>>>>> dirname hexdump mkfatfs pwd uname > >>>>>>>>> > >>>>>>>>> Builtin Apps: > >>>>>>>>> cmocka > >>>>>>>>> cmocka_driver_block > >>>>>>>>> cmocka_driver_gpio > >>>>>>>>> cmocka_driver_pm > >>>>>>>>> cmocka_driver_pm_runtime > >>>>>>>>> cmocka_driver_regulator > >>>>>>>>> > >>>>>>>>> Matteo Golin <[email protected]> 于2025年12月22日周一 > >> 10:15写道: > >>>>>>>>> > >>>>>>>>>> I think so. Best to leave OS test alone and slowly replace > >> it > >>>>> with > >>>>>> a > >>>>>>>> new > >>>>>>>>>> tool that has improvements. The only reason I can see to > >>> modify > >>>>> OS > >>>>>>> test > >>>>>>>>> now > >>>>>>>>>> would just be to have clearer output about what > >>> passed/failed. > >>>>>>>>>> > >>>>>>>>>> I'll come up with an improved proof of concept for a new > >> tool > >>>> to > >>>>>>> share > >>>>>>>> in > >>>>>>>>>> the next few days. > >>>>>>>>>> > >>>>>>>>>> Matteo > >>>>>>>>>> > >>>>>>>>>> On Sun, Dec 21, 2025, 9:13 PM Tomek CEDRO < > >> [email protected]> > >>>>>> wrote: > >>>>>>>>>> > >>>>>>>>>>> Small steps with measurable results may be the best > >>> approach > >>>>>> here, > >>>>>>> to > >>>>>>>>>>> create some new solution next to existing ostest but not > >>>>>> replacing > >>>>>>> it > >>>>>>>>>>> until ready? :-) > >>>>>>>>>>> > >>>>>>>>>>> -- > >>>>>>>>>>> CeDeROM, SQ7MHZ, http://www.tomek.cedro.info > >>>>>>>>>>> > >>>>>>>>>>> On Mon, Dec 22, 2025 at 3:06 AM Matteo Golin < > >>>>>>> [email protected] > >>>>>>>>> > >>>>>>>>>>> wrote: > >>>>>>>>>>>> > >>>>>>>>>>>> I agree, I think it would take a long time to have > >> proper > >>>>>>> coverage > >>>>>>>> of > >>>>>>>>>>> NuttX > >>>>>>>>>>>> as a whole. Perhaps even impossible, since Unity is > >> more > >>>> of a > >>>>>>> unit > >>>>>>>>>>> testing > >>>>>>>>>>>> framework and thus there are definitely test cases for > >>>> NuttX > >>>>>> that > >>>>>>>>> would > >>>>>>>>>>> be > >>>>>>>>>>>> outside of its realm of "applicability". There is > >> still a > >>>>> need > >>>>>>> for > >>>>>>>> a > >>>>>>>>>>>> variety of testing applications and bench-marking > >>>>> applications > >>>>>>> for > >>>>>>>>>> those > >>>>>>>>>>>> scenarios. > >>>>>>>>>>>> > >>>>>>>>>>>> That makes sense, prerequisites would need to be > >>>> considered. > >>>>> I > >>>>>>>> think > >>>>>>>>>>>> targeting the low-hanging fruit of unit-testable code > >>> would > >>>>> be > >>>>>>> easy > >>>>>>>>> in > >>>>>>>>>>> that > >>>>>>>>>>>> case, since prerequisites are mostly encoded in the > >>> Kconfig > >>>>>>>>> definitions > >>>>>>>>>>>> existing or not for features to be tested. Any complex > >>>>>> behaviour > >>>>>>>>>>>> (interrupts, multi-threading, etc.) might be out of the > >>>> realm > >>>>>> of > >>>>>>>>> what's > >>>>>>>>>>>> testable by Unity in the first place. We'll always have > >>> OS > >>>>> test > >>>>>>> in > >>>>>>>>> that > >>>>>>>>>>>> case, but maybe then it's better to do what Alan > >>> suggested > >>>>> and > >>>>>> at > >>>>>>>>> least > >>>>>>>>>>>> make its output more clear in the meantime. I suppose > >>> RTOS > >>>>>>> testing > >>>>>>>>> is a > >>>>>>>>>>>> whole field in itself. > >>>>>>>>>>>> > >>>>>>>>>>>> On Sun, Dec 21, 2025 at 8:40 PM Gregory Nutt < > >>>>>>> [email protected]> > >>>>>>>>>>> wrote: > >>>>>>>>>>>> > >>>>>>>>>>>>> I think that the answer depends on a tradeoff between > >>>>> effort > >>>>>>> and > >>>>>>>>> test > >>>>>>>>>>>>> coverage. I could imagine that a proper job could be > >>>>>> man-years > >>>>>>>> of > >>>>>>>>>>> effort. > >>>>>>>>>>>>> > >>>>>>>>>>>>> My only concern with a re-design is to be certain > >> that > >>>>> tests > >>>>>>> are > >>>>>>>>>>>>> arranged so that the prerequisites of later test are > >>>> tested > >>>>>>>> first. > >>>>>>>>>> If > >>>>>>>>>>>>> tests are grouped by, for example, functional area, > >>> then > >>>>>>> failures > >>>>>>>>> can > >>>>>>>>>>> be > >>>>>>>>>>>>> difficult to understand if there is a failure in an > >>>>>> unverified > >>>>>>>> test > >>>>>>>>>>>>> prerequisite. > >>>>>>>>>>>>> > >>>>>>>>>>>>> Some of the "tests" are bogus and only exist to > >> provide > >>>>> some > >>>>>>>>> minimum > >>>>>>>>>>>>> confidence that we have the functionality to run the > >>>> test. > >>>>>> For > >>>>>>>>>>>>> example: Can I start tasks? Can I pass parameters? > >>> Can > >>>> I > >>>>>>>> survive > >>>>>>>>> a > >>>>>>>>>>>>> context switch. Some of the tests were intended only > >>> to > >>>>>>> support > >>>>>>>>>> debug. > >>>>>>>>>>>>> Some were created only to track down specific bugs. > >>>>>>>>>>>>> > >>>>>>>>>>>>> On 12/21/25 18:39, Matteo Golin wrote: > >>>>>>>>>>>>>> LTS being the Long-Term-Stable release of NuttX? > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> I'm starting to think that it would be best to > >> create > >>>> new > >>>>>>> suite > >>>>>>>>> of > >>>>>>>>>>> tests > >>>>>>>>>>>>>> using Unity, using what's in OS Test as a basis and > >>>> then > >>>>>>>>> expanding > >>>>>>>>>> it > >>>>>>>>>>>>>> further. Greg has pointed out that OS test is not > >>>>> intended > >>>>>> to > >>>>>>>> be > >>>>>>>>> a > >>>>>>>>>>>>> complete > >>>>>>>>>>>>>> test, so maybe a more solid testing framework base > >>> in a > >>>>> new > >>>>>>>> form > >>>>>>>>>>> would be > >>>>>>>>>>>>>> in order. At that point it would also be good to > >>>> document > >>>>>> and > >>>>>>>>>> educate > >>>>>>>>>>>>> users > >>>>>>>>>>>>>> about other test options, since OS test is a > >> current > >>>>>>> favourite > >>>>>>>>> for > >>>>>>>>>>>>> showing > >>>>>>>>>>>>>> PRs haven't broken anything. Maybe that's not the > >>> best > >>>>>> choice > >>>>>>>>>> anymore > >>>>>>>>>>>>> with > >>>>>>>>>>>>>> this information. > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> I don't want to re-invent the wheel of what's > >> already > >>>> in > >>>>>>>>>> `testsuite`, > >>>>>>>>>>>>> but I > >>>>>>>>>>>>>> think Unity might end up being lighter-weight in > >> the > >>>> long > >>>>>>> run? > >>>>>>>>> And > >>>>>>>>>>> it is > >>>>>>>>>>>>>> also not a Xiaomi owned/maintained framework so it > >>> may > >>>>>>> receive > >>>>>>>>>> better > >>>>>>>>>>>>>> external support (i.e. more users rely on it?). I > >>> tried > >>>>> to > >>>>>>>>> compile > >>>>>>>>>>> the > >>>>>>>>>>>>>> sim:citest configuration to run the testsuite > >> example > >>>> and > >>>>>> see > >>>>>>>>> what > >>>>>>>>>>> it was > >>>>>>>>>>>>>> like, but I was met with a long list of C++ > >>> compilation > >>>>>>> errors > >>>>>>>>> that > >>>>>>>>>>> I'd > >>>>>>>>>>>>>> rather not deal with. There also seems to be zero > >>> docs > >>>>>> about > >>>>>>> it > >>>>>>>>> or > >>>>>>>>>>> cmocka > >>>>>>>>>>>>>> in our NuttX docs at the moment. > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> What do you think? Start a Unity test suite, add > >> some > >>>>>>> switches > >>>>>>>> to > >>>>>>>>>>> choose > >>>>>>>>>>>>>> which test cases get compiled into the binary, open > >>> for > >>>>>>>>> extensions > >>>>>>>>>> by > >>>>>>>>>>>>> users > >>>>>>>>>>>>>> who know more about different subsystems? This way > >> we > >>>> can > >>>>>>> keep > >>>>>>>> OS > >>>>>>>>>>> test > >>>>>>>>>>>>> how > >>>>>>>>>>>>>> it is for a quick, low-resource sanity check of > >>> "board > >>>>>>> bringup" > >>>>>>>>>> while > >>>>>>>>>>>>>> having a dedicated testing application for patches? > >>>>> Someone > >>>>>>>>>> changing > >>>>>>>>>>> file > >>>>>>>>>>>>>> system stuff can just compile to include file > >> system > >>>> test > >>>>>>> cases > >>>>>>>>> and > >>>>>>>>>>> run > >>>>>>>>>>>>>> that suite only as proof that their PR works. The > >>>> output > >>>>> is > >>>>>>>>> really > >>>>>>>>>>> easy > >>>>>>>>>>>>> to > >>>>>>>>>>>>>> glance at to determine pass/fail results. > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> Anyways, here's my draft demonstrating how Unity > >>> works > >>>>> with > >>>>>>> the > >>>>>>>>> FPU > >>>>>>>>>>> test > >>>>>>>>>>>>>> suite from OS test: > >>>>>>>>> https://github.com/apache/nuttx-apps/pull/3259 > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> Matteo > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> On Sun, Dec 21, 2025 at 7:13 PM Tomek CEDRO < > >>>>>>> [email protected]> > >>>>>>>>>>> wrote: > >>>>>>>>>>>>>> > >>>>>>>>>>>>>>> On Mon, Dec 22, 2025 at 1:02 AM Gregory Nutt < > >>>>>>>>> [email protected] > >>>>>>>>>>> > >>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>> (..) > >>>>>>>>>>>>>>>> Starting with bits and pieces of something like > >> the > >>>> LTS > >>>>>>> might > >>>>>>>>>> make > >>>>>>>>>>> more > >>>>>>>>>>>>>>>> sense other than its licensing problems. Since > >> it > >>>>> would > >>>>>>>> never > >>>>>>>>> be > >>>>>>>>>>>>>>>> included in a distributed binary, the licensing > >>>> really > >>>>>>> should > >>>>>>>>> not > >>>>>>>>>>>>> matter > >>>>>>>>>>>>>>>> much in practice. > >>>>>>>>>>>>>>> Unless its GPL and some company would like to have > >>>> their > >>>>>> own > >>>>>>>>>>> internal > >>>>>>>>>>>>>>> bits and pieces.. luckily its MIT and the whole > >>> thing > >>>> is > >>>>>>>>>> open-source > >>>>>>>>>>>>>>> anyways :-) > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Yes we had many discussions about the LTS and this > >>>> could > >>>>>> be > >>>>>>>>> great > >>>>>>>>>>> start! > >>>>>>>>>>>>>>> :-) > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> -- > >>>>>>>>>>>>>>> CeDeROM, SQ7MHZ, http://www.tomek.cedro.info > >>>>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>>> > >>>>> > >>>> > >>> > >> >
