CMake Proposal

tridge at samba.org tridge at samba.org
Sat Feb 27 14:27:12 MST 2010


Hi Bill,

yes, I understand that cmake could call out to our current selftest
system. Any build system that cannot call out to an external test
program would be pretty badly broken.

Even so, the approach you've written up wouldn't work. Your example
creates the tests as individual tests which you then loop over. You
seem to be under the impression that the Samba test suite involves
running invividual, standalone unit tests. We do have some tests like
that, but the vast majority of our tests involve a much more complex
setup.

When we want to test something like the SAMR functionality, we need a
running Samba domain controller. That needs to be provisioned. We also
need a virtual network setup that allows Samba to bind to privileged
ports as an unprivileged user (you don't need to be root to run the
Samba test suite). 

All of that setup takes a long time, so tests need to be very
carefully grouped together. We have a dependency tree within our test
suite that calculates what set of domain controllers, domain members
and other Samba processes are needed to run a specific set of
tests. Then it sets those up and rapidly fires off the tests that are
appropriate for the set of processes that are setup.

Our full test suite takes 20 minutes on a fast machine as it is. If we
did the tests separately using traditional buuild tools then it would
take days.

The test part of our current build system is actually very
sophisticated. It is way beyond anything I have seen in any other free
software project.

The equivalent in KDE would be if 'make test' in KDE created a virtual
X server and ran a full user desktop session with window managers,
users interacting, testing of all of the desktop setting tools
etc. All done as a non-privileged user. I'm pretty sure KDE has
nothing like that. Neither does any other project that I am aware of
except Samba.

Cheers, Tridge


More information about the samba-technical mailing list