Eric Bavier <ericbav...@openmailbox.org> skribis: > This patch turns boost package tests on. 22 of 120 test suites are > skipped due to know test failures, many of which still fail with the > upstream development version > (http://www.boost.org/development/tests/master/developer/summary.html). > > Building and running the tests obviously adds to the overall build > time, but I think most of us here are in agreement that running tests > is better than not.
Definitely! Especially for a widely-used library. > It would be nice to get this patch tested on MIPS or ARM, in case > there are other failing test suites that should be documented and > skipped on those systems. Yeah. I think we’ll have to create a branch anyway, so when we do, we can wait and see what Hydra reports. > From 76322bff6b4de1c0fe810506f451de733c60683a Mon Sep 17 00:00:00 2001 > From: Eric Bavier <bav...@member.fsf.org> > Date: Fri, 15 Jan 2016 14:46:26 -0600 > Subject: [PATCH] gnu: boost: Enable tests. > > * gnu/packages/boost.scm (boost)[arguments]: Replace 'check' phase. [...] > + ;; The provided method for running all tests (executing b2 in the > + ;; "status" directory) requires a large amount of disk space > + ;; (>20G) because it does not clean up build artifacts after > + ;; successfully running a test suite. So instead we run each > test > + ;; individually, which only requires ~7.7G. This is still a lot of disk space. Can you make sure that everything is built with -g0? It makes a significant difference for C++ code. I did that notably for GCC and Inkscape. > + (lambda* (#:key outputs #:allow-other-keys) > + (let ((b2 (string-append (getcwd) "/b2")) > + (test-dirs > + ;; The instructions at > + ;; > http://www.boost.org/development/running_regression_tests.html > + ;; to run b2 in each libs/<library>/test is not entirely > + ;; accurate. Some tests are in subdirectories and > others > + ;; in top-level directories. So instead we read the > list > + ;; of test directories from status/Jamfile.v2 > + (let ((port (open-input-file "status/Jamfile.v2")) > + (start-rx (make-regexp "^run-tests libs :")) > + (end-rx (make-regexp "^[[:space:]]*;")) > + (dir-rx (make-regexp > "^[[:space:]]*([a-z0-9/_]+)"))) I think it would be nicer to make it a procedure and move it to a ‘define’ at the top of the lambda. > + (reverse! dirs))) ‘reverse’ is enough. :-) Otherwise LGTM. I think we should wait until ‘core-updates’ is merged, and then you can push an updated patch to, say, ‘wip-boost-tests’ based on ‘master’. WDYT? Thanks! Ludo’.