SUBDIRS are processed in strict order; we currently use: dbus bus doc tools test However, the regression tests for dbus/ require things from test/, so you can't "make check" in dbus before you've done "make" in test; so dbus should come after test. Conversely, some things in test/ require libdbus, so dbus must come before test. Chicken, egg. I suggest moving at least the test wrappers (things with a main()) from dbus and bus into test. This would also have the advantage that "make check" checks that everything compiles before it tries to run anything.
This has finally annoyed me enough to make a branch. I only moved the execution of the tests to test/, not their compilation, in order that they keep their current CFLAGS (which are not necessarily the same as the ones in test/). I'd like to get this right in the dbus-1.4 branch (since it doesn't actually touch anything in the library or bus daemon code), but if you think this should be reserved for dbus-1.5, please say so when reviewing.
Created attachment 47609 [details] [review] [PATCH 1/5] test/Makefile.am: list tests one per line This improves clarity, and makes conflicts less likely and merges more obviously correct.
Created attachment 47610 [details] [review] [PATCH 2/5] dbus tests: don't warn on skipped tests We should treat _dbus_warn as fatal when we run tests, like bus/ does.
Created attachment 47611 [details] [review] [PATCH 3/5] Run dbus-test from test/, not dbus/ This avoids failures caused by test/data not having been set up yet.
Created attachment 47612 [details] [review] [PATCH 4/5] Run bus tests from test/
Created attachment 47613 [details] [review] [PATCH 5/5] Build docs after running tests, and remove redundant DIST_SUBDIRS If DIST_SUBDIRS isn't set, it defaults to SUBDIRS, so it's just noise. Running tests before building documentation is an easy way to speed up the hack/make check/fix cycle, by not wasting time rebuilding the documentation (which is often slow) until all the tests compile and pass.
Created attachment 47888 [details] [review] [PATCH 3/5 v2] Run dbus-test from test/, not dbus/ Replacement for Attachment #47611 [details], adjusted to apply after Bug #34570.
Created attachment 47890 [details] [review] [PATCH 4/5 v2] Run bus tests from test/ Revised version of Attachment #47612 [details], to apply after 3/5 v2
Created attachment 47993 [details] [review] [PATCH 6] Use EXEEXT when running tests from another directory, and skip bus-test-launch-helper on non-Unix This is necessary when cross-compiling from Linux to mingw32 and running the resulting tests under Wine. (This partially works! Some tests fail, though.)
Review of attachment 47609 [details] [review]: ++
Review of attachment 47610 [details] [review]: Looks fine.
Review of attachment 47888 [details] [review]: Looks fine.
Review of attachment 47890 [details] [review]: Fine.
Review of attachment 47613 [details] [review]: ++
Review of attachment 47993 [details] [review]: Haha :) ++
Thanks, fixed in git for 1.4.12, 1.5.6.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.