about summary refs log tree commit diff
path: root/src/test/rustdoc-ui
diff options
context:
space:
mode:
authorMiguel Ojeda <ojeda@kernel.org>2021-02-18 16:15:24 +0100
committerMiguel Ojeda <ojeda@kernel.org>2021-02-19 02:32:45 +0100
commit755b3fc722c36d9761bf49c246b5f7c85a62380d (patch)
tree57765f30824aab704ff8d465c53d8fa2be91bc7d /src/test/rustdoc-ui
parentc0b64d97beebb09325b5587abed39f4f1621026f (diff)
downloadrust-755b3fc722c36d9761bf49c246b5f7c85a62380d.tar.gz
rust-755b3fc722c36d9761bf49c246b5f7c85a62380d.zip
rustdoc: Support argument files
Factors out the `rustc_driver` logic that handles argument files
so that rustdoc supports them as well, e.g.:

    rustdoc @argfile

This is needed to be able to generate docs for projects that
already use argument files when compiling them, e.g. projects
that pass a huge number of `--cfg` arguments.

The feature was stabilized for `rustc` in #66172.

Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Diffstat (limited to 'src/test/rustdoc-ui')
-rw-r--r--src/test/rustdoc-ui/commandline-argfile-badutf8.args2
-rw-r--r--src/test/rustdoc-ui/commandline-argfile-badutf8.rs12
-rw-r--r--src/test/rustdoc-ui/commandline-argfile-badutf8.stderr2
-rw-r--r--src/test/rustdoc-ui/commandline-argfile-missing.rs15
-rw-r--r--src/test/rustdoc-ui/commandline-argfile-missing.stderr2
-rw-r--r--src/test/rustdoc-ui/commandline-argfile.args2
-rw-r--r--src/test/rustdoc-ui/commandline-argfile.rs13
7 files changed, 48 insertions, 0 deletions
diff --git a/src/test/rustdoc-ui/commandline-argfile-badutf8.args b/src/test/rustdoc-ui/commandline-argfile-badutf8.args
new file mode 100644
index 00000000000..c070b0c2400
--- /dev/null
+++ b/src/test/rustdoc-ui/commandline-argfile-badutf8.args
@@ -0,0 +1,2 @@
+--cfg
+unbroken€
\ No newline at end of file
diff --git a/src/test/rustdoc-ui/commandline-argfile-badutf8.rs b/src/test/rustdoc-ui/commandline-argfile-badutf8.rs
new file mode 100644
index 00000000000..e2984e3ca97
--- /dev/null
+++ b/src/test/rustdoc-ui/commandline-argfile-badutf8.rs
@@ -0,0 +1,12 @@
+// Check to see if we can get parameters from an @argsfile file
+//
+// compile-flags: --cfg cmdline_set @{{src-base}}/commandline-argfile-badutf8.args
+
+#[cfg(not(cmdline_set))]
+compile_error!("cmdline_set not set");
+
+#[cfg(not(unbroken))]
+compile_error!("unbroken not set");
+
+fn main() {
+}
diff --git a/src/test/rustdoc-ui/commandline-argfile-badutf8.stderr b/src/test/rustdoc-ui/commandline-argfile-badutf8.stderr
new file mode 100644
index 00000000000..9af6fc0a518
--- /dev/null
+++ b/src/test/rustdoc-ui/commandline-argfile-badutf8.stderr
@@ -0,0 +1,2 @@
+error: Failed to load argument file: Utf8 error in $DIR/commandline-argfile-badutf8.args
+
diff --git a/src/test/rustdoc-ui/commandline-argfile-missing.rs b/src/test/rustdoc-ui/commandline-argfile-missing.rs
new file mode 100644
index 00000000000..020c3ff3c7e
--- /dev/null
+++ b/src/test/rustdoc-ui/commandline-argfile-missing.rs
@@ -0,0 +1,15 @@
+// Check to see if we can get parameters from an @argsfile file
+//
+// ignore-tidy-linelength
+// normalize-stderr-test: "os error \d+" -> "os error $$ERR"
+// normalize-stderr-test: "commandline-argfile-missing.args:[^(]*" -> "commandline-argfile-missing.args: $$FILE_MISSING "
+// compile-flags: --cfg cmdline_set @{{src-base}}/commandline-argfile-missing.args
+
+#[cfg(not(cmdline_set))]
+compile_error!("cmdline_set not set");
+
+#[cfg(not(unbroken))]
+compile_error!("unbroken not set");
+
+fn main() {
+}
diff --git a/src/test/rustdoc-ui/commandline-argfile-missing.stderr b/src/test/rustdoc-ui/commandline-argfile-missing.stderr
new file mode 100644
index 00000000000..179ad831004
--- /dev/null
+++ b/src/test/rustdoc-ui/commandline-argfile-missing.stderr
@@ -0,0 +1,2 @@
+error: Failed to load argument file: IO Error: $DIR/commandline-argfile-missing.args: $FILE_MISSING (os error $ERR)
+
diff --git a/src/test/rustdoc-ui/commandline-argfile.args b/src/test/rustdoc-ui/commandline-argfile.args
new file mode 100644
index 00000000000..972938bf6c8
--- /dev/null
+++ b/src/test/rustdoc-ui/commandline-argfile.args
@@ -0,0 +1,2 @@
+--cfg
+unbroken
\ No newline at end of file
diff --git a/src/test/rustdoc-ui/commandline-argfile.rs b/src/test/rustdoc-ui/commandline-argfile.rs
new file mode 100644
index 00000000000..cc8c8722c1c
--- /dev/null
+++ b/src/test/rustdoc-ui/commandline-argfile.rs
@@ -0,0 +1,13 @@
+// Check to see if we can get parameters from an @argsfile file
+//
+// check-pass
+// compile-flags: --cfg cmdline_set @{{src-base}}/commandline-argfile.args
+
+#[cfg(not(cmdline_set))]
+compile_error!("cmdline_set not set");
+
+#[cfg(not(unbroken))]
+compile_error!("unbroken not set");
+
+fn main() {
+}