# Unify the condensed test output of rustdoc-gui and other test suites

**URL:** <https://internals.rust-lang.org/t/unify-the-condensed-test-output-of-rustdoc-gui-and-other-test-suites/22818>\
**Category:** tools and infrastructure\
**Created:** [April 25, 2025, 9:33pm UTC](https://internals.rust-lang.org/t/unify-the-condensed-test-output-of-rustdoc-gui-and-other-test-suites/22818 "2025-04-25T21:33:51Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![binarycat](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/binarycat/32/12210_2.png) [@binarycat](https://internals.rust-lang.org/u/binarycat)\
**Post date:** [April 25, 2025, 9:33pm UTC](https://internals.rust-lang.org/t/unify-the-condensed-test-output-of-rustdoc-gui-and-other-test-suites/22818/1 "2025-04-25T21:33:51Z")

</div>

I noticed that the output formats are slightly different when run interactively (condensed output).

Both of them use rows of dots with a `X/TOTAL` at the end of the line, but they're subtly different, most test suites use long lines with colored dots and no parenthesis, while rustdoc-gui uses short lines with no color and the numeric progress is parenthisized.

This means that this functionality is likely implemented twice. I'm not sure how much code this constitutes, but it might be nice to make them use the same underlying code, either by moving that code to a shared library, simple refactoring, or changing IPC protocols so compiletest is always the one printing the dots.

---

<div class="post-metadata">

**Author:** ![bjorn3](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/bjorn3/32/2736_2.png) [@bjorn3](https://internals.rust-lang.org/u/bjorn3)\
**Post date:** [April 26, 2025, 3:08pm UTC](https://internals.rust-lang.org/t/unify-the-condensed-test-output-of-rustdoc-gui-and-other-test-suites/22818/2 "2025-04-26T15:08:16Z")

</div>

I would guess rustdoc-gui uses libtest's implementation of this, while the other test suites ask libtest to emit json and then bootstrap does the formatting. This is done to also get the errors in json format for the CI test change reports. In any case compiletest is actually moving away from libtest to it's own test harness which only supports the json format. When rustdoc is responsible for printing the output, it would still use libtest.

---

<div class="post-metadata">

**Author:** ![binarycat](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/binarycat/32/12210_2.png) [@binarycat](https://internals.rust-lang.org/u/binarycat)\
**Post date:** [April 30, 2025, 4:52am UTC](https://internals.rust-lang.org/t/unify-the-condensed-test-output-of-rustdoc-gui-and-other-test-suites/22818/3 "2025-04-30T04:52:10Z")

</div>

rustdoc-gui uses its own custom scripting language and stuff, so i'm not sure.

---

<div class="post-metadata">

**Author:** ![notriddle](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/notriddle/32/14082_2.png) [@notriddle](https://internals.rust-lang.org/u/notriddle)\
**Post date:** [May 2, 2025, 5:21am UTC](https://internals.rust-lang.org/t/unify-the-condensed-test-output-of-rustdoc-gui-and-other-test-suites/22818/4 "2025-05-02T05:21:20Z")

</div>

rustdoc-gui uses an entirely separate test harness written in NodeJS.

> <https://github.com/rust-lang/rust/blob/master/src/tools/rustdoc-gui/tester.js#L99>
