Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix make check-stage2 by fixing deps of exported syntax cfail tests. #14014

Closed
wants to merge 2 commits into from

Conversation

pnkfelix
Copy link
Member

@pnkfelix pnkfelix commented May 7, 2014

Our make check-stageN for all N (including N=2) was not working,
because there is an unspecified dependence from the cfail tests on
certain crates that export syntax.

We need to encode that dependence in some manner. The quick hack is
to add $$(CSREQ$(1)_T_$(3)_H_$(3)) $$(SREQ$(1)_T_$(2)_H_$(3)) to the
dependency list for all of the cfail tests. But I would prefer to
not force the make logic to build all of the external crates before it
gets to exercise the cfail tests.

So, here is how this PR fixes the problem more properly:

  • Add CTEST_DEPS_cfail-full that, analogous to
    CTEST_DEPS_rpass-full, has a dependency on
    $$(CSREQ$(1)_T_$(3)_H_$(3)) $$(SREQ$(1)_T_$(2)_H_$(3)).
    CTEST_DEPS_cfail is left unchanged (and thus continues to
    match the structure of CTEST_DEPS_rpass).
  • Added all of the other ingredients for cfail-full family of make
    logic.
  • moved cfail tests that rely on macros in separate crates to
    separate compile-fail-fulldeps/ directory.

(Landing this may or not be a prerequisite for landing PR #14000. In
any case, this is a pretty isolated change and a net improvement in
the overall structure for the tests, IMO, at least given what we
currently have in the makefiles.)

Our `make check-stageN` for all N (including N=2) was not working,
because there is an unspecified dependence from the cfail tests on
certain crates that export syntax.

We need to encode that dependence in some manner.  The quick hack is
to add `$$(CSREQ$(1)_T_$(3)_H_$(3)) $$(SREQ$(1)_T_$(2)_H_$(3))` to the
dependency list for *all* of the cfail tests.  But I would prefer to
not force the make logic to build all of the external crates before it
gets to exercise the cfail tests.

So, here is how this PR fixes the problem more properly:

 * Add `CTEST_DEPS_cfail-full` that, analogous to
   `CTEST_DEPS_rpass-full`, has a dependency on
   `$$(CSREQ$(1)_T_$(3)_H_$(3)) $$(SREQ$(1)_T_$(2)_H_$(3))`.
   `CTEST_DEPS_cfail` is left unchanged (and thus continues to
   match the structure of `CTEST_DEPS_rpass`).

 * Added all of the other ingredients for `cfail-full` family of make
   logic.

 * moved cfail tests that rely on macros in separate crates to
   separate compile-fail-fulldeps/ directory.

----

(Landing this may or not be a prerequisite for landing PR rust-lang#14000.  In
any case, this is a pretty isolated change and a net improvement in
the overall structure for the tests, IMO, at least given what we
currently have in the makefiles.)
@pnkfelix
Copy link
Member Author

pnkfelix commented May 7, 2014

r? anyone interested/semi-knowledgeable in our make architecture.

@alexcrichton
Copy link
Member

This looks very eerily similar to #13832 ...

@pnkfelix
Copy link
Member Author

pnkfelix commented May 7, 2014

@alexcrichton d'oh. Sorry. Let me see where bors is on this race.

@pnkfelix
Copy link
Member Author

pnkfelix commented May 7, 2014

closing in favor of PR #13832. (I will transplant commit 1fb2c68 over to #14000 )

@pnkfelix pnkfelix closed this May 7, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants