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 > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
