Remove commands duplication between compiletest and tests/rustdoc · rust-lang/rust@51fedf6 (original) (raw)

`@@ -240,237 +240,40 @@ def concat_multi_lines(f):

`

240

240

`print_err(lineno, line, 'Trailing backslash at the end of the file')

`

241

241

``

242

242

``

``

243

`+

def get_known_directive_names():

`

``

244

`+

def filter_line(line):

`

``

245

`+

line = line.strip()

`

``

246

`+

return line.startswith('"') and (line.endswith('",') or 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

`+

content = fd.read()

`

``

259

`+

return [

`

``

260

`+

line.strip().replace('",', '').replace('"', '')

`

``

261

`+

for line in content.split('\n')

`

``

262

`+

if filter_line(line)

`

``

263

`+

]

`

``

264

+

``

265

+

``

266

`` +

To prevent duplicating the list of commmands between compiletest and htmldocck, we put

``

``

267

`+

it into a common file which is included in rust code and parsed here.

`

``

268

`+

FIXME: This setup is temporary until we figure out how to improve this situation.

`

``

269

`+

KNOWN_DIRECTIVE_NAMES = get_known_directive_names()

`

``

270

+

243

271

`LINE_PATTERN = re.compile(r'''

`

244

272

` //@\s+

`

245

273

` (?P!?)(?P[A-Za-z]+(?:-[A-Za-z]+)*)

`

246

274

` (?P.*)$

`

247

275

`''', re.X | re.UNICODE)

`

248

276

``

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

``

`-

]

`

474

277

``

475

278

`def get_commands(template):

`

476

279

`with io.open(template, encoding='utf-8') as f:

`