rust-lang / rust

Empowering everyone to build reliable and efficient software.
https://www.rust-lang.org
Other
93.93k stars 12.09k forks source link

Add tests for `-Zunpretty=expanded` ported from stringify's tests #125236

Closed dtolnay closed 2 weeks ago

dtolnay commented 2 weeks ago

This PR adds a new set of tests for the AST pretty-printer.

Previously, pretty-printer edge cases were tested by way of stringify! in tests/ui/macros/stringify.rs, such as the tests added by https://github.com/rust-lang/rust/commit/419b26931b73209bfafdb9938c09e12b9d650613 and https://github.com/rust-lang/rust/commit/527e2eac17c5d3709e4e30e8b72ae33a6e8990b1.

Those tests will no longer provide effective coverage of the AST pretty-printer after #124141. Nonterminal and TokenKind::Interpolated are being removed, and a consequence is that stringify! will perform token stream pretty printing, instead of AST pretty printing, in all of the stringify! cases including $:expr and all other interpolations.

This PR adds 2 new ui tests with compile-flags: -Zunpretty=expanded:

r? @nnethercote

rust-log-analyzer commented 2 weeks ago

The job mingw-check-tidy failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot) ```plain Getting action download info Download action repository 'msys2/setup-msys2@v2.22.0' (SHA:cc11e9188b693c2b100158c3322424c4cc1dadea) Download action repository 'actions/checkout@v4' (SHA:0ad4b8fadaa221de15dcec353f45205ec38ea70b) Download action repository 'actions/upload-artifact@v4' (SHA:65462800fd760344b1a7b4382951275a0abb4808) Complete job name: PR - mingw-check-tidy git config --global core.autocrlf false shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0} --- COPY scripts/sccache.sh /scripts/ RUN sh /scripts/sccache.sh COPY host-x86_64/mingw-check/reuse-requirements.txt /tmp/ RUN pip3 install --no-deps --no-cache-dir --require-hashes -r /tmp/reuse-requirements.txt \ && pip3 install virtualenv COPY host-x86_64/mingw-check/validate-toolstate.sh /scripts/ COPY host-x86_64/mingw-check/validate-error-codes.sh /scripts/ # NOTE: intentionally uses python2 for x.py so we can test it still works. # NOTE: intentionally uses python2 for x.py so we can test it still works. # validate-toolstate only runs in our CI, so it's ok for it to only support python3. ENV SCRIPT TIDY_PRINT_DIFF=1 python2.7 ../x.py test \ --stage 0 src/tools/tidy tidyselftest --extra-checks=py:lint # This file is autogenerated by pip-compile with Python 3.10 # by the following command: # # pip-compile --allow-unsafe --generate-hashes reuse-requirements.in --- #12 [5/8] COPY host-x86_64/mingw-check/reuse-requirements.txt /tmp/ #12 DONE 0.0s #13 [6/8] RUN pip3 install --no-deps --no-cache-dir --require-hashes -r /tmp/reuse-requirements.txt && pip3 install virtualenv #13 0.411 Downloading binaryornot-0.4.4-py2.py3-none-any.whl (9.0 kB) #13 0.425 Collecting boolean-py==4.0 #13 0.429 Downloading boolean.py-4.0-py3-none-any.whl (25 kB) #13 0.442 Collecting chardet==5.1.0 --- #13 3.464 Building wheels for collected packages: reuse #13 3.465 Building wheel for reuse (pyproject.toml): started #13 3.794 Building wheel for reuse (pyproject.toml): finished with status 'done' #13 3.795 Created wheel for reuse: filename=reuse-1.1.0-cp310-cp310-manylinux_2_35_x86_64.whl size=181117 sha256=f5f58750481f69515c2c0d1d503daf565e2565c370d07fc6aeb95fe3498b4269 #13 3.795 Stored in directory: /tmp/pip-ephem-wheel-cache-wld19ibx/wheels/c2/3c/b9/1120c2ab4bd82694f7e6f0537dc5b9a085c13e2c69a8d0c76d #13 3.798 Installing collected packages: boolean-py, binaryornot, setuptools, reuse, python-debian, markupsafe, license-expression, jinja2, chardet #13 3.819 Attempting uninstall: setuptools #13 3.820 Found existing installation: setuptools 59.6.0 #13 3.821 Not uninstalling setuptools at /usr/lib/python3/dist-packages, outside environment /usr #13 3.821 Not uninstalling setuptools at /usr/lib/python3/dist-packages, outside environment /usr #13 3.822 Can't uninstall 'setuptools'. No files were found to uninstall. #13 4.489 Successfully installed binaryornot-0.4.4 boolean-py-4.0 chardet-5.1.0 jinja2-3.1.2 license-expression-30.0.0 markupsafe-2.1.1 python-debian-0.1.49 reuse-1.1.0 setuptools-66.0.0 #13 4.489 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv #13 5.005 Collecting virtualenv #13 5.050 Downloading virtualenv-20.26.2-py3-none-any.whl (3.9 MB) #13 5.109 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 MB 69.8 MB/s eta 0:00:00 #13 5.159 Collecting platformdirs<5,>=3.9.1 #13 5.163 Downloading platformdirs-4.2.2-py3-none-any.whl (18 kB) #13 5.181 Collecting distlib<1,>=0.3.7 #13 5.184 Downloading distlib-0.3.8-py2.py3-none-any.whl (468 kB) #13 5.226 Collecting filelock<4,>=3.12.2 #13 5.230 Downloading filelock-3.14.0-py3-none-any.whl (12 kB) #13 5.230 Downloading filelock-3.14.0-py3-none-any.whl (12 kB) #13 5.320 Installing collected packages: distlib, platformdirs, filelock, virtualenv #13 5.484 Successfully installed distlib-0.3.8 filelock-3.14.0 platformdirs-4.2.2 virtualenv-20.26.2 #13 DONE 5.6s #14 [7/8] COPY host-x86_64/mingw-check/validate-toolstate.sh /scripts/ #14 DONE 0.0s --- DirectMap4k: 219072 kB DirectMap2M: 8169472 kB DirectMap1G: 10485760 kB ##[endgroup] Executing TIDY_PRINT_DIFF=1 python2.7 ../x.py test --stage 0 src/tools/tidy tidyselftest --extra-checks=py:lint + TIDY_PRINT_DIFF=1 python2.7 ../x.py test --stage 0 src/tools/tidy tidyselftest --extra-checks=py:lint Finished `dev` profile [unoptimized] target(s) in 0.03s ##[endgroup] downloading https://ci-artifacts.rust-lang.org/rustc-builds-alt/8e78d168040b2d7106a28712c39106602c7a1d61/rust-dev-nightly-x86_64-unknown-linux-gnu.tar.xz extracting /checkout/obj/build/cache/llvm-8e78d168040b2d7106a28712c39106602c7a1d61-true/rust-dev-nightly-x86_64-unknown-linux-gnu.tar.xz to /checkout/obj/build/x86_64-unknown-linux-gnu/ci-llvm --- Finished `release` profile [optimized] target(s) in 25.67s ##[endgroup] fmt check tidy check tidy error: file /checkout/tests/ui/unpretty/auxiliary/data.txt has unexpected extension txt tidy error: file `/checkout/tests/ui/macros/issue-98790.rs` no longer exists and should be removed from the exclusions in `src/tools/tidy/src/issues.txt` tidy: Skipping binary file check, read-only filesystem ##[error]tidy error: /checkout/tests/ui/unpretty/expanded-exhaustive.rs:569: TODO is used for tasks that should be done before merging a PR; If you want to leave a message in the codebase use FIXME ##[error]tidy error: /checkout/tests/ui/unpretty/expanded-exhaustive.rs:574: TODO is used for tasks that should be done before merging a PR; If you want to leave a message in the codebase use FIXME ##[error]tidy error: /checkout/tests/ui/unpretty/expanded-exhaustive.rs:861: TODO is used for tasks that should be done before merging a PR; If you want to leave a message in the codebase use FIXME removing old virtual environment creating virtual environment at '/checkout/obj/build/venv' using 'python3.10' Requirement already satisfied: pip in ./build/venv/lib/python3.10/site-packages (24.0) Collecting black==23.3.0 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 7)) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 45.3 MB/s eta 0:00:00 Collecting click==8.1.3 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 34)) Downloading click-8.1.3-py3-none-any.whl (96 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 96.6/96.6 kB 38.2 MB/s eta 0:00:00 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 96.6/96.6 kB 38.2 MB/s eta 0:00:00 Collecting importlib-metadata==6.7.0 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 38)) Downloading importlib_metadata-6.7.0-py3-none-any.whl (22 kB) Collecting mypy-extensions==1.0.0 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 42)) Downloading mypy_extensions-1.0.0-py3-none-any.whl (4.7 kB) Collecting packaging==23.1 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 46)) Downloading packaging-23.1-py3-none-any.whl (48 kB) Collecting pathspec==0.11.1 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 50)) Downloading pathspec-0.11.1-py3-none-any.whl (29 kB) Collecting platformdirs==3.6.0 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 54)) Downloading platformdirs-3.6.0-py3-none-any.whl (16 kB) Downloading platformdirs-3.6.0-py3-none-any.whl (16 kB) Collecting ruff==0.0.272 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 58)) Downloading ruff-0.0.272-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB) Collecting tomli==2.0.1 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 77)) Downloading tomli-2.0.1-py3-none-any.whl (12 kB) Collecting typed-ast==1.5.4 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 81)) Downloading typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (877 kB) Downloading typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (877 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 877.7/877.7 kB 138.6 MB/s eta 0:00:00 Collecting typing-extensions==4.6.3 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 107)) Downloading typing_extensions-4.6.3-py3-none-any.whl (31 kB) Collecting zipp==3.15.0 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 114)) Downloading zipp-3.15.0-py3-none-any.whl (6.8 kB) Installing collected packages: zipp, typing-extensions, typed-ast, tomli, ruff, platformdirs, pathspec, packaging, mypy-extensions, click, importlib-metadata, black Successfully installed black-23.3.0 click-8.1.3 importlib-metadata-6.7.0 mypy-extensions-1.0.0 packaging-23.1 pathspec-0.11.1 platformdirs-3.6.0 ruff-0.0.272 tomli-2.0.1 typed-ast-1.5.4 typing-extensions-4.6.3 zipp-3.15.0 some tidy checks failed Build completed unsuccessfully in 0:01:00 local time: Sat May 18 03:27:33 UTC 2024 network time: Sat, 18 May 2024 03:27:33 GMT ```
dtolnay commented 2 weeks ago

@bors r=nnethercote

bors commented 2 weeks ago

:pushpin: Commit 3e05be5466198da2b1185fddc8c7edbb58bdd08f has been approved by nnethercote

It is now in the queue for this repository.