1use std::path::Path;
15
16use camino::{Utf8Path, Utf8PathBuf};
17
18use crate::common::{CodegenBackend, Config, TestMode, TestSuite};
19use crate::directives::TestProps;
20
21#[derive(Debug)]
24pub struct RustdocGuiTestProps {
25 pub compile_flags: Vec<String>,
26 pub run_flags: Vec<String>,
27}
28
29impl RustdocGuiTestProps {
30 pub fn from_file(test_file_path: &Path) -> Self {
31 let test_file_path = Utf8Path::from_path(test_file_path).unwrap();
32 let config = incomplete_config_for_rustdoc_gui_test();
33
34 let props = TestProps::from_file(test_file_path, None, &config);
35
36 let TestProps { mut compile_flags, run_flags, .. } = props;
37 compile_flags.remove(0);
40 Self { compile_flags, run_flags }
41 }
42}
43
44fn incomplete_config_for_rustdoc_gui_test() -> Config {
52 Config {
56 mode: TestMode::RustdocHtml,
57 suite: TestSuite::Ui,
59
60 edition: Default::default(),
62 bless: Default::default(),
63 fail_fast: Default::default(),
64 host_compile_lib_path: Utf8PathBuf::default(),
65 target_run_lib_path: Utf8PathBuf::default(),
66 rustc_path: Utf8PathBuf::default(),
67 cargo_path: Default::default(),
68 stage0_rustc_path: Default::default(),
69 run_make_support_rlib: Default::default(),
70 run_make_support_rmeta: Default::default(),
71 query_rustc_path: Default::default(),
72 query_rustc_lib_path: Default::default(),
73 rustdoc_path: Default::default(),
74 coverage_dump_path: Default::default(),
75 python: Default::default(),
76 jsondocck_path: Default::default(),
77 jsondoclint_path: Default::default(),
78 llvm_filecheck: Default::default(),
79 llvm_bin_dir: Default::default(),
80 run_clang_based_tests_with: Default::default(),
81 src_root: Utf8PathBuf::default(),
82 src_test_suite_root: Utf8PathBuf::default(),
83 build_root: Utf8PathBuf::default(),
84 build_test_suite_root: Utf8PathBuf::default(),
85 sysroot_base: Utf8PathBuf::default(),
86 stage: Default::default(),
87 stage_id: String::default(),
88 run_ignored: Default::default(),
89 with_rustc_debug_assertions: Default::default(),
90 with_std_debug_assertions: Default::default(),
91 with_std_remap_debuginfo: Default::default(),
92 filters: Default::default(),
93 skip: Default::default(),
94 filter_exact: Default::default(),
95 force_pass_mode: Default::default(),
96 run: Default::default(),
97 runner: Default::default(),
98 host_rustcflags: Default::default(),
99 target_rustcflags: Default::default(),
100 rust_randomized_layout: Default::default(),
101 optimize_tests: Default::default(),
102 disable_minification: Default::default(),
103 target: Default::default(),
104 host: Default::default(),
105 cdb: Default::default(),
106 cdb_version: Default::default(),
107 gdb: Default::default(),
108 gdb_version: Default::default(),
109 lldb: Default::default(),
110 lldb_version: Default::default(),
111 llvm_version: Default::default(),
112 system_llvm: Default::default(),
113 android_cross_path: Default::default(),
114 adb_path: Default::default(),
115 adb_test_dir: Default::default(),
116 adb_device_status: Default::default(),
117 verbose: Default::default(),
118 verbose_run_make_subprocess_output: Default::default(),
119 remote_test_client: Default::default(),
120 compare_mode: Default::default(),
121 rustfix_coverage: Default::default(),
122 has_enzyme: Default::default(),
123 has_offload: Default::default(),
124 channel: Default::default(),
125 git_hash: Default::default(),
126 cc: Default::default(),
127 cxx: Default::default(),
128 cflags: Default::default(),
129 cxxflags: Default::default(),
130 ar: Default::default(),
131 target_linker: Default::default(),
132 host_linker: Default::default(),
133 llvm_components: Default::default(),
134 nodejs: Default::default(),
135 force_rerun: Default::default(),
136 only_modified: Default::default(),
137 target_cfgs: Default::default(),
138 builtin_cfg_names: Default::default(),
139 supported_crate_types: Default::default(),
140 capture: Default::default(),
141 nightly_branch: Default::default(),
142 git_merge_commit_email: Default::default(),
143 profiler_runtime: Default::default(),
144 diff_command: Default::default(),
145 minicore_path: Default::default(),
146 default_codegen_backend: CodegenBackend::Llvm,
147 override_codegen_backend: None,
148 bypass_ignore_backends: Default::default(),
149 jobs: Default::default(),
150 parallel_frontend_threads: Config::DEFAULT_PARALLEL_FRONTEND_THREADS,
151 iteration_count: Config::DEFAULT_ITERATION_COUNT,
152 wasm_proc_macros: false,
153 }
154}