1
Fork 0

Move rustdoc-gui rust libraries into their own folder and prepare the field for more libraries

This commit is contained in:
Guillaume Gomez 2021-05-02 16:50:14 +02:00
parent fe62c6e295
commit d5a24b0a33
16 changed files with 34 additions and 21 deletions

View file

@ -827,15 +827,28 @@ impl Step for RustdocGUI {
} }
let out_dir = builder.test_out(self.target).join("rustdoc-gui"); let out_dir = builder.test_out(self.target).join("rustdoc-gui");
let mut command = builder.rustdoc_cmd(self.compiler);
command.arg("src/test/rustdoc-gui/lib.rs").arg("-o").arg(&out_dir);
builder.run(&mut command);
// We remove existing folder to be sure there won't be artifacts remaining.
let _ = fs::remove_dir_all(&out_dir);
// We generate docs for the libraries present in the rustdoc-gui's src folder.
let libs_dir = Path::new("src/test/rustdoc-gui/src");
for entry in libs_dir.read_dir().expect("read_dir call failed") {
let entry = entry.expect("invalid entry");
let path = entry.path();
if path.extension().map(|e| e == "rs").unwrap_or(false) {
let mut command = builder.rustdoc_cmd(self.compiler);
command.arg(path).arg("-o").arg(&out_dir);
builder.run(&mut command);
}
}
// We now run GUI tests.
let mut command = Command::new(&nodejs); let mut command = Command::new(&nodejs);
command command
.arg("src/tools/rustdoc-gui/tester.js") .arg("src/tools/rustdoc-gui/tester.js")
.arg("--doc-folder") .arg("--doc-folder")
.arg(out_dir.join("test_docs")) .arg(out_dir)
.arg("--tests-folder") .arg("--tests-folder")
.arg("src/test/rustdoc-gui"); .arg("src/test/rustdoc-gui");
builder.run(&mut command); builder.run(&mut command);

View file

@ -1,3 +1,3 @@
goto: file://|DOC_PATH|/index.html goto: file://|DOC_PATH|/test_docs/index.html
click: ".srclink" click: ".srclink"
assert: (".line-numbers", 1) assert: (".line-numbers", 1)

View file

@ -1,4 +1,4 @@
goto: file://|DOC_PATH|/index.html goto: file://|DOC_PATH|/test_docs/index.html
assert: ("#functions") assert: ("#functions")
goto: ./struct.Foo.html goto: ./struct.Foo.html
assert: ("div.type-decl") assert: ("div.type-decl")

View file

@ -1,4 +1,4 @@
goto: file://|DOC_PATH|/index.html goto: file://|DOC_PATH|/test_docs/index.html
goto: ./fn.check_list_code_block.html goto: ./fn.check_list_code_block.html
// If the codeblock is the first element of the docblock, the information tooltip must have // If the codeblock is the first element of the docblock, the information tooltip must have
// have some top margin to avoid going over the toggle (the "[+]"). // have some top margin to avoid going over the toggle (the "[+]").

View file

@ -1,4 +1,4 @@
goto: file://|DOC_PATH|/index.html goto: file://|DOC_PATH|/test_docs/index.html
click: ".srclink" click: ".srclink"
click: "#sidebar-toggle" click: "#sidebar-toggle"
wait-for: 500 wait-for: 500

View file

@ -1,5 +1,5 @@
// This test ensures that the element corresponding to the hash is displayed. // This test ensures that the element corresponding to the hash is displayed.
goto: file://|DOC_PATH|/struct.Foo.html#method.borrow goto: file://|DOC_PATH|/test_docs/struct.Foo.html#method.borrow
// In the blanket implementations list, "Borrow" is the second one, hence the ":nth(2)". // In the blanket implementations list, "Borrow" is the second one, hence the ":nth(2)".
assert: ("#blanket-implementations-list > details:nth-child(2)", "open", "") assert: ("#blanket-implementations-list > details:nth-child(2)", "open", "")
// Please note the "\" below is needed because otherwise ".borrow" would be interpreted as // Please note the "\" below is needed because otherwise ".borrow" would be interpreted as

View file

@ -1,3 +1,3 @@
// This test ensures that the impl blocks are open by default. // This test ensures that the impl blocks are open by default.
goto: file://|DOC_PATH|/struct.Foo.html goto: file://|DOC_PATH|/test_docs/struct.Foo.html
assert: ("#main > details.implementors-toggle", "open", "") assert: ("#main > details.implementors-toggle", "open", "")

View file

@ -1,3 +1,3 @@
goto: file://|DOC_PATH|/index.html goto: file://|DOC_PATH|/test_docs/index.html
goto: ./fn.check_list_code_block.html goto: ./fn.check_list_code_block.html
assert: ("pre.rust.fn") assert: ("pre.rust.fn")

View file

@ -1,6 +1,6 @@
// Test to ensure that you can click on the search input, whatever the width. // Test to ensure that you can click on the search input, whatever the width.
// The PR which fixed it is: https://github.com/rust-lang/rust/pull/81592 // The PR which fixed it is: https://github.com/rust-lang/rust/pull/81592
goto: file://|DOC_PATH|/index.html goto: file://|DOC_PATH|/test_docs/index.html
size: (463, 700) size: (463, 700)
// We first check that the search input isn't already focused. // We first check that the search input isn't already focused.
assert-false: ("input.search-input:focus") assert-false: ("input.search-input:focus")

View file

@ -1,11 +1,11 @@
goto: file://|DOC_PATH|/index.html goto: file://|DOC_PATH|/test_docs/index.html
write: (".search-input", "Foo") write: (".search-input", "Foo")
// Waiting for the search results to appear... // Waiting for the search results to appear...
wait-for: "#titles" wait-for: "#titles"
assert: ("#titles > button:nth-of-type(1)", "class", "selected") assert: ("#titles > button:nth-of-type(1)", "class", "selected")
// To go back to the original "state" // To go back to the original "state"
goto: file://|DOC_PATH|/index.html goto: file://|DOC_PATH|/test_docs/index.html
write: (".search-input", "-> String") write: (".search-input", "-> String")
// Waiting for the search results to appear... // Waiting for the search results to appear...
wait-for: "#titles" wait-for: "#titles"
@ -13,7 +13,7 @@ wait-for: "#titles"
assert: ("#titles > button:nth-of-type(3)", "class", "selected") assert: ("#titles > button:nth-of-type(3)", "class", "selected")
// To go back to the original "state" // To go back to the original "state"
goto: file://|DOC_PATH|/index.html goto: file://|DOC_PATH|/test_docs/index.html
write: (".search-input", "-> Something") write: (".search-input", "-> Something")
// Waiting for the search results to appear... // Waiting for the search results to appear...
wait-for: "#titles" wait-for: "#titles"

View file

@ -1,5 +1,5 @@
// Check that the various shortcuts are working. // Check that the various shortcuts are working.
goto: file://|DOC_PATH|/index.html goto: file://|DOC_PATH|/test_docs/index.html
// We first check that the search input isn't already focused. // We first check that the search input isn't already focused.
assert-false: "input.search-input:focus" assert-false: "input.search-input:focus"
press-key: "s" press-key: "s"

View file

@ -1,11 +1,11 @@
goto: file://|DOC_PATH|/../src/test_docs/lib.rs.html goto: file://|DOC_PATH|/src/test_docs/lib.rs.html
// Check that we can click on the line number. // Check that we can click on the line number.
click: (40, 224) // This is the position of the span for line 4. click: (40, 224) // This is the position of the span for line 4.
// Unfortunately, "#4" isn't a valid query selector, so we have to go around that limitation // Unfortunately, "#4" isn't a valid query selector, so we have to go around that limitation
// by instead getting the nth span. // by instead getting the nth span.
assert: (".line-numbers > span:nth-child(4)", "class", "line-highlighted") assert: (".line-numbers > span:nth-child(4)", "class", "line-highlighted")
// We now check that the good spans are highlighted // We now check that the good spans are highlighted
goto: file://|DOC_PATH|/../src/test_docs/lib.rs.html#4-6 goto: file://|DOC_PATH|/src/test_docs/lib.rs.html#4-6
assert-false: (".line-numbers > span:nth-child(3)", "class", "line-highlighted") assert-false: (".line-numbers > span:nth-child(3)", "class", "line-highlighted")
assert: (".line-numbers > span:nth-child(4)", "class", "line-highlighted") assert: (".line-numbers > span:nth-child(4)", "class", "line-highlighted")
assert: (".line-numbers > span:nth-child(5)", "class", "line-highlighted") assert: (".line-numbers > span:nth-child(5)", "class", "line-highlighted")

View file

@ -1,4 +1,4 @@
goto: file://|DOC_PATH|/index.html goto: file://|DOC_PATH|/test_docs/index.html
click: "#theme-picker" click: "#theme-picker"
click: "#theme-choices > button:first-child" click: "#theme-choices > button:first-child"
wait-for: 500 wait-for: 500

View file

@ -1,4 +1,4 @@
goto: file://|DOC_PATH|/index.html goto: file://|DOC_PATH|/test_docs/index.html
click: "#toggle-all-docs" click: "#toggle-all-docs"
wait-for: 5000 wait-for: 5000
assert: ("#main > div.docblock.hidden-by-usual-hider") assert: ("#main > div.docblock.hidden-by-usual-hider")

View file

@ -1,4 +1,4 @@
goto: file://|DOC_PATH|/trait.AnotherOne.html goto: file://|DOC_PATH|/test_docs/trait.AnotherOne.html
assert: (".sidebar-links a:nth-of-type(1)", "another") assert: (".sidebar-links a:nth-of-type(1)", "another")
assert: (".sidebar-links a:nth-of-type(2)", "func1") assert: (".sidebar-links a:nth-of-type(2)", "func1")
assert: (".sidebar-links a:nth-of-type(3)", "func2") assert: (".sidebar-links a:nth-of-type(3)", "func2")