[pkg-fgfs-crew] failed ppc64el build of flightgear 1:2017.2.1+dfsg-2
Florent Rougon
f.rougon at free.fr
Sun Aug 6 15:34:54 UTC 2017
Hi Markus,
Markus Wanner <markus at bluegap.ch> wrote:
> From the various failures, I concluded the tests need (some) flightgear
> data and don't work without it, so I added flightgear-data-base and
> flightgear-data-ai as build dependencies in 1:2017.2.1+dfsg-3. That
> seems to work, now.
>
> Do you think we could get away without any of the two, but providing a
> writable $HOME or $FG_HOME?
I doubt it, and what you say confirms it. If you look at
flightgear/tests/unitTestHelpers.cxx, you'll see it wants FGData (among
others, to build the navdata cache, because there is at least a test
looking up navaids there):
void initTestGlobals(const std::string& testName)
{
sglog().setLogLevels( SG_ALL, SG_WARN );
sglog().setDeveloperMode(true);
globals = new FGGlobals;
bool foundRoot = false;
if (std::getenv("FG_ROOT")) {
SGPath fg_root = SGPath::fromEnv("FG_ROOT");
if (looksLikeFGData(fg_root)) {
globals->set_fg_root(fg_root);
foundRoot = true;
}
}
if (!foundRoot) {
SGPath pkgLibDir = SGPath::fromUtf8(PKGLIBDIR);
if (looksLikeFGData(pkgLibDir)) {
globals->set_fg_root(pkgLibDir);
foundRoot = true;
}
}
if (!foundRoot) {
SGPath dataDir = SGPath::fromUtf8(FGSRCDIR) / ".." / "fgdata";
if (looksLikeFGData(dataDir)) {
globals->set_fg_root(dataDir);
foundRoot = true;
}
}
if (!foundRoot) {
std::cerr << "FGData not found" << std::endl;
exit(EXIT_FAILURE);
}
tests_fgdata = globals->get_fg_root();
// current dir
SGPath homePath = SGPath::fromUtf8(FGBUILDDIR) / "test_home";
if (!homePath.exists()) {
(homePath / "dummyFile").create_dir(0755);
}
globals->set_fg_home(homePath);
fgSetDefaults();
flightgear::NavDataCache* cache = flightgear::NavDataCache::createInstance();
if (cache->isRebuildRequired()) {
std::cerr << "Navcache rebuild for testing" << std::flush;
while (cache->rebuild() != flightgear::NavDataCache::REBUILD_DONE) {
SGTimeStamp::sleepForMSec(1000);
std::cerr << "." << std::flush;
}
}
[...]
>From this piece of code, you can also see that it does
globals->set_fg_home() with a directory that is $FGBUILDDIR/test_home,
therefore I think setting FG_HOME would presumably have no effect on
this test framework (it has effect when running FG, when you don't want
$HOME/.fgfs to be used). This is a wise thing to do, so that tests don't
change the FG configuration of the user running them!
In short: what you did seems good, and from a quick look at the test
framework, I don't think there is much room for improvement on your
side.
Regards
--
Florent
More information about the pkg-fgfs-crew
mailing list