Update compiletest to use "directive" terminology consistently

This commit is contained in:
Jieyou Xu 2025-06-30 17:23:42 +08:00
parent cf5788d30d
commit 475f447f12
No known key found for this signature in database
GPG key ID: 045B995028EA6AFC
7 changed files with 23 additions and 24 deletions

View file

@ -1,6 +1,6 @@
/// This was originally generated by collecting directives from ui tests and then extracting their
/// directive names. This is **not** an exhaustive list of all possible directives. Instead, this is
/// a best-effort approximation for diagnostics. Add new headers to this list when needed.
/// a best-effort approximation for diagnostics. Add new directives to this list when needed.
const KNOWN_DIRECTIVE_NAMES: &[&str] = &[
// tidy-alphabetical-start
"add-core-stubs",

View file

@ -11,10 +11,10 @@ use tracing::*;
use crate::common::{Config, Debugger, FailMode, Mode, PassMode};
use crate::debuggers::{extract_cdb_version, extract_gdb_version};
use crate::errors::ErrorKind;
use crate::executor::{CollectedTestDesc, ShouldPanic};
use crate::directives::auxiliary::{AuxProps, parse_and_update_aux};
use crate::directives::needs::CachedNeedsConditions;
use crate::errors::ErrorKind;
use crate::executor::{CollectedTestDesc, ShouldPanic};
use crate::help;
use crate::util::static_regex;
@ -138,12 +138,12 @@ pub struct TestProps {
pub incremental_dir: Option<Utf8PathBuf>,
// If `true`, this test will use incremental compilation.
//
// This can be set manually with the `incremental` header, or implicitly
// This can be set manually with the `incremental` directive, or implicitly
// by being a part of an incremental mode test. Using the `incremental`
// header should be avoided if possible; using an incremental mode test is
// directive should be avoided if possible; using an incremental mode test is
// preferred. Incremental mode tests support multiple passes, which can
// verify that the incremental cache can be loaded properly after being
// created. Just setting the header will only verify the behavior with
// created. Just setting the directive will only verify the behavior with
// creating an incremental cache, but doesn't check that it is created
// correctly.
//
@ -642,11 +642,11 @@ impl TestProps {
let check_ui = |mode: &str| {
// Mode::Crashes may need build-fail in order to trigger llvm errors or stack overflows
if config.mode != Mode::Ui && config.mode != Mode::Crashes {
panic!("`{}-fail` header is only supported in UI tests", mode);
panic!("`{}-fail` directive is only supported in UI tests", mode);
}
};
if config.mode == Mode::Ui && config.parse_name_directive(ln, "compile-fail") {
panic!("`compile-fail` header is useless in UI tests");
panic!("`compile-fail` directive is useless in UI tests");
}
let fail_mode = if config.parse_name_directive(ln, "check-fail") {
check_ui("check");
@ -662,7 +662,7 @@ impl TestProps {
};
match (self.fail_mode, fail_mode) {
(None, Some(_)) => self.fail_mode = fail_mode,
(Some(_), Some(_)) => panic!("multiple `*-fail` headers in a single test"),
(Some(_), Some(_)) => panic!("multiple `*-fail` directives in a single test"),
(_, None) => {}
}
}
@ -674,10 +674,10 @@ impl TestProps {
(Mode::Codegen, "build-pass") => (),
(Mode::Incremental, _) => {
if revision.is_some() && !self.revisions.iter().all(|r| r.starts_with("cfail")) {
panic!("`{s}` header is only supported in `cfail` incremental tests")
panic!("`{s}` directive is only supported in `cfail` incremental tests")
}
}
(mode, _) => panic!("`{s}` header is not supported in `{mode}` tests"),
(mode, _) => panic!("`{s}` directive is not supported in `{mode}` tests"),
};
let pass_mode = if config.parse_name_directive(ln, "check-pass") {
check_no_run("check-pass");
@ -693,7 +693,7 @@ impl TestProps {
};
match (self.pass_mode, pass_mode) {
(None, Some(_)) => self.pass_mode = pass_mode,
(Some(_), Some(_)) => panic!("multiple `*-pass` headers in a single test"),
(Some(_), Some(_)) => panic!("multiple `*-pass` directives in a single test"),
(_, None) => {}
}
}
@ -1163,8 +1163,7 @@ enum NormalizeKind {
Stderr64bit,
}
/// Parses the regex and replacement values of a `//@ normalize-*` header,
/// in the format:
/// Parses the regex and replacement values of a `//@ normalize-*` directive, in the format:
/// ```text
/// "REGEX" -> "REPLACEMENT"
/// ```

View file

@ -3,8 +3,8 @@
use std::iter;
use super::directives::{AUX_BIN, AUX_BUILD, AUX_CODEGEN_BACKEND, AUX_CRATE, PROC_MACRO};
use crate::common::Config;
use crate::header::directives::{AUX_BIN, AUX_BUILD, AUX_CODEGEN_BACKEND, AUX_CRATE, PROC_MACRO};
/// Properties parsed from `aux-*` test directives.
#[derive(Clone, Debug, Default)]

View file

@ -12,9 +12,9 @@ pub mod common;
pub mod compute_diff;
mod debuggers;
pub mod diagnostics;
pub mod directives;
pub mod errors;
mod executor;
pub mod directives;
mod json;
mod raise_fd_limit;
mod read2;
@ -42,8 +42,8 @@ use crate::common::{
CompareMode, Config, Debugger, Mode, PassMode, TestPaths, UI_EXTENSIONS, expected_output_path,
output_base_dir, output_relative_path,
};
use crate::executor::{CollectedTest, ColorConfig, OutputFormat};
use crate::directives::HeadersCache;
use crate::executor::{CollectedTest, ColorConfig, OutputFormat};
use crate::util::logv;
/// Creates the `Config` instance for this invocation of compiletest.

View file

@ -23,8 +23,8 @@ use crate::common::{
output_base_dir, output_base_name, output_testname_unique,
};
use crate::compute_diff::{DiffLine, make_diff, write_diff, write_filtered_diff};
use crate::errors::{Error, ErrorKind, load_errors};
use crate::directives::TestProps;
use crate::errors::{Error, ErrorKind, load_errors};
use crate::read2::{Truncated, read2_abbreviated};
use crate::util::{Utf8PathBufExt, add_dylib_path, logv, static_regex};
use crate::{ColorConfig, help, json, stamp_file_path, warning};
@ -2039,7 +2039,7 @@ impl<'test> TestCx<'test> {
// Provide more context on failures.
filecheck.args(&["--dump-input-context", "100"]);
// Add custom flags supplied by the `filecheck-flags:` test header.
// Add custom flags supplied by the `filecheck-flags:` test directive.
filecheck.args(&self.props.filecheck_flags);
// FIXME(jieyouxu): don't pass an empty Path

View file

@ -49,7 +49,7 @@ impl TestCx<'_> {
std::fs::remove_file(pdb_file).unwrap();
}
// compile test file (it should have 'compile-flags:-g' in the header)
// compile test file (it should have 'compile-flags:-g' in the directive)
let should_run = self.run_if_enabled();
let compile_result = self.compile_test(should_run, Emit::None);
if !compile_result.status.success() {
@ -135,7 +135,7 @@ impl TestCx<'_> {
.unwrap_or_else(|e| self.fatal(&e));
let mut cmds = dbg_cmds.commands.join("\n");
// compile test file (it should have 'compile-flags:-g' in the header)
// compile test file (it should have 'compile-flags:-g' in the directive)
let should_run = self.run_if_enabled();
let compiler_run_result = self.compile_test(should_run, Emit::None);
if !compiler_run_result.status.success() {
@ -359,7 +359,7 @@ impl TestCx<'_> {
}
fn run_debuginfo_lldb_test_no_opt(&self) {
// compile test file (it should have 'compile-flags:-g' in the header)
// compile test file (it should have 'compile-flags:-g' in the directive)
let should_run = self.run_if_enabled();
let compile_result = self.compile_test(should_run, Emit::None);
if !compile_result.status.success() {

View file

@ -52,10 +52,10 @@ impl TestCx<'_> {
// don't test rustfix with nll right now
} else if self.config.rustfix_coverage {
// Find out which tests have `MachineApplicable` suggestions but are missing
// `run-rustfix` or `run-rustfix-only-machine-applicable` headers.
// `run-rustfix` or `run-rustfix-only-machine-applicable` directives.
//
// This will return an empty `Vec` in case the executed test file has a
// `compile-flags: --error-format=xxxx` header with a value other than `json`.
// `compile-flags: --error-format=xxxx` directive with a value other than `json`.
let suggestions = get_suggestions_from_json(
&rustfix_input,
&HashSet::new(),