- changed status to open
Failure for `make tests` as first step
As currently implemented, the tests
target will incorrectly operate with an empty list of networks if there was no preceding make all
(or other step which builds GASNet). This is true despite existing logic intended to build the dependencies because the network list is evaluated by GNU Make too early, before the run of GASNet's configure.
The failure looks like the following:
$ ../configure [args]
[...messages...]
$ make tests
[...gasnet configure output...]
NO DEFAULT TARGET
PASSED compiling 0 tests
==== UPC++ TESTS SUCCESSFULLY COMPILED ====
Your UPC++ build appears to be working for the following networks:
You may now test UPC++ runtime operation for each network of interest.
First, ensure you are in a proper environment for launching parallel jobs
(eg batch system session, if necessary) and then issue a command like:
/home/pcp1/phargrov/upcxx/B/bin/upcxx-run -n 2 ./test-hello_upcxx-
And similarly for any other of the tests compiled above.
Note that this is a false report of success based on failure-free iteration over an empty set of networks.
The work-around is to simply retry make tests
.
Any second and subsequent attempts work fine because the GASNet build dir is present when make begins its work.
The fix should be simple via an added level of target indirection to re-evaluate the conduit list after the prerequisite libraries are built.
This is not an issue for make check
since that uses the default network, which was established when UPC++'s configure
was run. This is also no issue if the user overrides NETWORKS
.
This issue is present in 2020.3.0.
However, I feel that this has minimal potential user impact since we only document make tests
as something to run after make all
and even then only as a backup to make check
(which is not impacted).
Comments (2)
-
reporter -
reporter - changed status to resolved
Resolve "failure for
make tests
as first step"This commit resolves issue 359 by ensuring that the
tests
target and the relateddo-test-prereqs
behave "well" in the presence of an empty$(NETWORKS)
as will occur ifmake tests
is the first command run followingconfigure
.→ <<cset fb6024fbeea3>>
- Log in to comment
proposed solution in pull request 208