Skip to content

Commit 7885039

Browse files
committed
Add run-make test port project summary
1 parent 4686029 commit 7885039

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

posts/2024-11-01-gsoc-2024-results.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,25 @@ You can also check out the following issues to find out what is left before this
8686
- Mentor: [Jieyou Xu](https://github.com/jieyouxu)
8787
- [Final report](https://oneirical.github.io/gsocfinal/)
8888

89-
TODO
89+
The Rust compiler has several test suites that make sure that it is working correctly under various conditions. One of these suites is the [`run-make` test suite][run-make], whose tests were previously written using `Makefile`s. However, this setup [posed several problems][initial-run-make-issue]. It was not possible to run the suite on the Tier 1 Windows MSVC target (`x86_64-pc-windows-msvc`) and getting it running on Windows at all was quite challenging. Furthermore, the syntax of `Makefile`s is quite esoteric, which frequently caused mistakes to go unnoticed even when reviewed by multiple people.
90+
91+
[Julien](https://github.com/Oneirical) helped to convert the `Makefile`-based `run-make` tests into plain Rust-based tests, supported by a test support library called [`run_make_support`][run-make-support]. However, it was not a trivial "rewrite this in Rust" kind of deal. In this project, Julien:
92+
93+
- Significantly improved the test documentation;
94+
- Fixed multiple bugs that were present in the `Makefile` versions that had gone unnoticed for *years* -- some tests were never testing anything or silently ignored failures, so even if the subject being tested regressed, these tests would not have caught that.
95+
- Added to and improved the test support library API and implementation; and
96+
- Improved code organization within the tests to make them easier to understand and maintain.
97+
98+
Just to give you an idea of the scope of his work, he has ported more than [300](https://github.com/rust-lang/rust/pulls?q=is%3Apr+author%3Aoneirical+is%3Amerged) Makefile tests over the span of his GSoC project! If you like puns, check out some of the branch names of Julien's PRs, they are a work of art.
99+
100+
As a result, Julien has significantly improved the robustness of the `run-make` test suite, and improved the ergonomics of modifying existing `run-make` tests and authoring new `run-make` tests. Multiple contributors have expressed that they were more willing to work with the Rust-based `run-make` tests over the previous `Makefile` versions.
101+
102+
The vast majority of `run-make` tests [now use the Rust-based test infrastructure][run-make-tracking-issue], with a few holdouts remaining due to various quirks. After these are resolved, we can finally rip out the legacy `Makefile` test infrastructure.
103+
104+
[run-make]: https://github.com/rust-lang/rust/tree/master/tests/run-make
105+
[run-make-support]: https://github.com/rust-lang/rust/tree/master/src/tools/run-make-support
106+
[initial-run-make-issue]: https://github.com/rust-lang/rust/issues/40713
107+
[run-make-tracking-issue]: https://github.com/rust-lang/rust/issues/121876
90108

91109
### Rewriting the Rewrite trait
92110

0 commit comments

Comments
 (0)