@@ -240,237 +240,37 @@ def concat_multi_lines(f):
240240 print_err (lineno , line , 'Trailing backslash at the end of the file' )
241241
242242
243+ def get_known_directive_names ():
244+ def filter_line (line ):
245+ line = line .strip ()
246+ line .startswith ('"' ) and line .endswith ('"' )
247+
248+ # Equivalent to `src/tools/compiletest/src/header.rs` constant of the same name.
249+ with open (
250+ os .path .join (
251+ # We go back to `src`.
252+ os .path .dirname (os .path .dirname (__file__ )),
253+ "tools/compiletest/src/command-list.rs" ,
254+ ),
255+ "r" ,
256+ encoding = "utf8"
257+ ) as fd :
258+ return [
259+ line .strip ().replace ('"' , '' ) for line in fd .read ().split ('\n ' ) if filter_line (line )
260+ ]
261+
262+
263+ # To prevent duplicating the list of commmands between `compiletest` and `htmldocck`, we put
264+ # it into a common file which is included in rust code and parsed here.
265+ # FIXME: This setup is temporary until we figure out how to improve this situation.
266+ KNOWN_DIRECTIVE_NAMES = get_known_directive_names ()
267+
243268LINE_PATTERN = re .compile (r'''
244269 //@\s+
245270 (?P<negated>!?)(?P<cmd>[A-Za-z]+(?:-[A-Za-z]+)*)
246271 (?P<args>.*)$
247272''' , re .X | re .UNICODE )
248273
249- # Equivalent to `src/tools/compiletest/src/header.rs` constant of the same name.
250- KNOWN_DIRECTIVE_NAMES = [
251- # tidy-alphabetical-start
252- "assembly-output" ,
253- "aux-bin" ,
254- "aux-build" ,
255- "aux-codegen-backend" ,
256- "aux-crate" ,
257- "build-aux-docs" ,
258- "build-fail" ,
259- "build-pass" ,
260- "check-fail" ,
261- "check-pass" ,
262- "check-run-results" ,
263- "check-stdout" ,
264- "check-test-line-numbers-match" ,
265- "compare-output-lines-by-subset" ,
266- "compile-flags" ,
267- "dont-check-compiler-stderr" ,
268- "dont-check-compiler-stdout" ,
269- "dont-check-failure-status" ,
270- "edition" ,
271- "error-pattern" ,
272- "exec-env" ,
273- "failure-status" ,
274- "filecheck-flags" ,
275- "forbid-output" ,
276- "force-host" ,
277- "ignore-16bit" ,
278- "ignore-32bit" ,
279- "ignore-64bit" ,
280- "ignore-aarch64" ,
281- "ignore-aarch64-unknown-linux-gnu" ,
282- "ignore-android" ,
283- "ignore-apple" ,
284- "ignore-arm" ,
285- "ignore-avr" ,
286- "ignore-beta" ,
287- "ignore-cdb" ,
288- "ignore-compare-mode-next-solver" ,
289- "ignore-compare-mode-polonius" ,
290- "ignore-cross-compile" ,
291- "ignore-debug" ,
292- "ignore-eabi" ,
293- "ignore-emscripten" ,
294- "ignore-endian-big" ,
295- "ignore-freebsd" ,
296- "ignore-fuchsia" ,
297- "ignore-gdb" ,
298- "ignore-gdb-version" ,
299- "ignore-gnu" ,
300- "ignore-haiku" ,
301- "ignore-horizon" ,
302- "ignore-i686-pc-windows-msvc" ,
303- "ignore-ios" ,
304- "ignore-linux" ,
305- "ignore-lldb" ,
306- "ignore-llvm-version" ,
307- "ignore-loongarch64" ,
308- "ignore-macabi" ,
309- "ignore-macos" ,
310- "ignore-mode-assembly" ,
311- "ignore-mode-codegen" ,
312- "ignore-mode-codegen-units" ,
313- "ignore-mode-coverage-map" ,
314- "ignore-mode-coverage-run" ,
315- "ignore-mode-crashes" ,
316- "ignore-mode-debuginfo" ,
317- "ignore-mode-incremental" ,
318- "ignore-mode-js-doc-test" ,
319- "ignore-mode-mir-opt" ,
320- "ignore-mode-pretty" ,
321- "ignore-mode-run-make" ,
322- "ignore-mode-run-pass-valgrind" ,
323- "ignore-mode-rustdoc" ,
324- "ignore-mode-rustdoc-json" ,
325- "ignore-mode-ui" ,
326- "ignore-mode-ui-fulldeps" ,
327- "ignore-msp430" ,
328- "ignore-msvc" ,
329- "ignore-musl" ,
330- "ignore-netbsd" ,
331- "ignore-nightly" ,
332- "ignore-none" ,
333- "ignore-nto" ,
334- "ignore-nvptx64" ,
335- "ignore-nvptx64-nvidia-cuda" ,
336- "ignore-openbsd" ,
337- "ignore-pass" ,
338- "ignore-remote" ,
339- "ignore-riscv64" ,
340- "ignore-s390x" ,
341- "ignore-sgx" ,
342- "ignore-spirv" ,
343- "ignore-stable" ,
344- "ignore-stage1" ,
345- "ignore-stage2" ,
346- "ignore-test" ,
347- "ignore-thumb" ,
348- "ignore-thumbv8m.base-none-eabi" ,
349- "ignore-thumbv8m.main-none-eabi" ,
350- "ignore-tvos" ,
351- "ignore-unix" ,
352- "ignore-unknown" ,
353- "ignore-uwp" ,
354- "ignore-visionos" ,
355- "ignore-vxworks" ,
356- "ignore-wasi" ,
357- "ignore-wasm" ,
358- "ignore-wasm32" ,
359- "ignore-wasm32-bare" ,
360- "ignore-wasm64" ,
361- "ignore-watchos" ,
362- "ignore-windows" ,
363- "ignore-windows-gnu" ,
364- "ignore-x32" ,
365- "ignore-x86" ,
366- "ignore-x86_64" ,
367- "ignore-x86_64-unknown-linux-gnu" ,
368- "incremental" ,
369- "known-bug" ,
370- "llvm-cov-flags" ,
371- "min-cdb-version" ,
372- "min-gdb-version" ,
373- "min-lldb-version" ,
374- "min-llvm-version" ,
375- "min-system-llvm-version" ,
376- "needs-asm-support" ,
377- "needs-dlltool" ,
378- "needs-dynamic-linking" ,
379- "needs-force-clang-based-tests" ,
380- "needs-git-hash" ,
381- "needs-llvm-components" ,
382- "needs-profiler-support" ,
383- "needs-relocation-model-pic" ,
384- "needs-run-enabled" ,
385- "needs-rust-lld" ,
386- "needs-rust-lldb" ,
387- "needs-sanitizer-address" ,
388- "needs-sanitizer-cfi" ,
389- "needs-sanitizer-dataflow" ,
390- "needs-sanitizer-hwaddress" ,
391- "needs-sanitizer-kcfi" ,
392- "needs-sanitizer-leak" ,
393- "needs-sanitizer-memory" ,
394- "needs-sanitizer-memtag" ,
395- "needs-sanitizer-safestack" ,
396- "needs-sanitizer-shadow-call-stack" ,
397- "needs-sanitizer-support" ,
398- "needs-sanitizer-thread" ,
399- "needs-threads" ,
400- "needs-unwind" ,
401- "needs-wasmtime" ,
402- "needs-xray" ,
403- "no-auto-check-cfg" ,
404- "no-prefer-dynamic" ,
405- "normalize-stderr-32bit" ,
406- "normalize-stderr-64bit" ,
407- "normalize-stderr-test" ,
408- "normalize-stdout-test" ,
409- "only-16bit" ,
410- "only-32bit" ,
411- "only-64bit" ,
412- "only-aarch64" ,
413- "only-apple" ,
414- "only-arm" ,
415- "only-avr" ,
416- "only-beta" ,
417- "only-bpf" ,
418- "only-cdb" ,
419- "only-gnu" ,
420- "only-i686-pc-windows-msvc" ,
421- "only-ios" ,
422- "only-linux" ,
423- "only-loongarch64" ,
424- "only-loongarch64-unknown-linux-gnu" ,
425- "only-macos" ,
426- "only-mips" ,
427- "only-mips64" ,
428- "only-msp430" ,
429- "only-msvc" ,
430- "only-nightly" ,
431- "only-nvptx64" ,
432- "only-riscv64" ,
433- "only-sparc" ,
434- "only-sparc64" ,
435- "only-stable" ,
436- "only-thumb" ,
437- "only-tvos" ,
438- "only-unix" ,
439- "only-visionos" ,
440- "only-wasm32" ,
441- "only-wasm32-bare" ,
442- "only-wasm32-wasip1" ,
443- "only-watchos" ,
444- "only-windows" ,
445- "only-x86" ,
446- "only-x86_64" ,
447- "only-x86_64-fortanix-unknown-sgx" ,
448- "only-x86_64-pc-windows-gnu" ,
449- "only-x86_64-pc-windows-msvc" ,
450- "only-x86_64-unknown-linux-gnu" ,
451- "pp-exact" ,
452- "pretty-compare-only" ,
453- "pretty-expanded" ,
454- "pretty-mode" ,
455- "regex-error-pattern" ,
456- "remap-src-base" ,
457- "revisions" ,
458- "run-fail" ,
459- "run-flags" ,
460- "run-pass" ,
461- "run-rustfix" ,
462- "rustc-env" ,
463- "rustfix-only-machine-applicable" ,
464- "should-fail" ,
465- "should-ice" ,
466- "stderr-per-bitwidth" ,
467- "test-mir-pass" ,
468- "unset-exec-env" ,
469- "unset-rustc-env" ,
470- # Used by the tidy check `unknown_revision`.
471- "unused-revision-names" ,
472- # tidy-alphabetical-end
473- ]
474274
475275def get_commands (template ):
476276 with io .open (template , encoding = 'utf-8' ) as f :
0 commit comments