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

Reply via email to