Commit Graph

519 Commits

Author SHA1 Message Date
Andre Bogus
dad211ef9f Modify doctest's auto-fn main() to allow Results
This lets the default `fn main()` unwrap any `Result`s, which
allows the use of `?` in most tests without adding it manually.
2019-02-17 16:42:49 +01:00
Oliver Middleton
ad09d7fc79 rustdoc: Don't modify library path for doctests
It shouldn't be needed anymore because doctests are no longer compiled with `prefer-dynamic`.
2019-01-20 10:14:26 +00:00
Wesley Norris
80ee94c1f8 Minor changes to wording and formatting. 2019-01-17 17:26:24 -05:00
Wesley Norris
a3f7f97205 Fix tidy error. 2019-01-17 17:26:00 -05:00
Wesley Norris
1318e53ea8 Persist doc test executables to given path. 2019-01-17 17:26:00 -05:00
Igor Matuszewski
df9df19507 Always calculate glob map but only for glob uses
Previously calculating glob map was *opt-in*, however it did record
node id -> ident use for every use directive. This aims to see if we
can unconditionally calculate the glob map and not regress performance.
2019-01-13 10:42:59 +01:00
QuietMisdreavus
dac6eeca92 semi-revert libsyntax doctest parsing if a macro is wrapping main 2019-01-07 11:25:39 -06:00
kennytm
284a419b73 Rollup merge of #57338 - QuietMisdreavus:doctest-file-name, r=GuillaumeGomez
rustdoc: force binary filename for compiled doctests

Fixes https://github.com/rust-lang/rust/issues/57317, needed for https://github.com/rust-lang/rust-by-example/issues/1137

Right now, when building a doctest, rustdoc provides the compiler an output directory (a temp dir) but lets the compiler name the executable. If the doctest needs to be executed, it then tries to run a binary named `rust_out` from that directory. For the most part, this works fine. However, if the doctest sets its own crate name, the compiler uses that name for the output binary instead. This causes rustdoc to try to execute a nonexistent binary, causing the test to fail.

This PR changes the paths rustdoc gives to the compiler when building doctests to force the output *filename* instead of just the *directory*.
2019-01-05 23:57:02 +08:00
QuietMisdreavus
0b55c79072 force binary filename for compiled doctests 2019-01-04 09:57:17 -06:00
Andy Russell
0a6fb84738 make panictry! private to libsyntax
This commit completely removes usage of the `panictry!` macro from
outside libsyntax. The macro causes parse errors to be fatal, so using
it in libsyntax_ext caused parse failures *within* a syntax extension to
be fatal, which is probably not intended.

Furthermore, this commit adds spans to diagnostics emitted by empty
extensions if they were missing, à la #56491.
2019-01-02 11:02:30 -05:00
Alexander Regueiro
1b150c4043 Store Ident rather than just Name in HIR types Item and ForeignItem. 2018-12-26 21:26:37 +00:00
Mark Rousskov
2a663555dd Remove licenses 2018-12-25 21:08:33 -07:00
Mazdak Farrokhzad
32a6a95f41 Rollup merge of #56793 - QuietMisdreavus:better-doctests, r=GuillaumeGomez
rustdoc: look for comments when scraping attributes/crates from doctests

Fixes https://github.com/rust-lang/rust/issues/56727

When scraping out crate-level attributes and `extern crate` statements, we wouldn't look for comments, so any presence of comments would shunt it and everything after it into "everything else". This could cause parsing issues when looking for `fn main` and `extern crate my_crate` later on, which would in turn cause rustdoc to incorrectly wrap a test with `fn main` when it already had one declared.

I took the opportunity to clean up the logic a little bit, but it would still benefit from a libsyntax-based loop like the `fn main` detection.
2018-12-16 14:08:30 +01:00
QuietMisdreavus
ea3078d2e0 include comments in doctest partition logic 2018-12-14 09:17:11 -06:00
QuietMisdreavus
22de23e303 add crates to the final doctest 2018-12-13 14:31:17 -06:00
Nicholas Nethercote
f13006182c Introduce SearchPath and replace SearchPaths with Vec<SearchPath>.
It's more idiomatic, makes the code shorter, and will help with the next
commit.
2018-12-12 10:36:15 +11:00
Alexander Regueiro
ee89c088b0 Various minor/cosmetic improvements to code 2018-12-07 23:53:34 +00:00
Matthew Russo
f0f8aa9e05 adds DocTest filename variant, refactors doctest_offset out of source_map, fixes remaining test failures 2018-12-04 19:52:42 -05:00
bors
6cfc603395 Auto merge of #55515 - QuietMisdreavus:rustdoc-config, r=GuillaumeGomez
rustdoc: refactor: centralize all command-line argument parsing

This is something i've wanted to do for a while, since we keep having to add new arguments to places like `rust_input` or `core::run_core` whenever we add a new CLI flag or the like. Those functions have inflated up to 11-19, and in some cases hiding away the locations where some CLI flags were being parsed, obscuring their use. Now, we have a central place where all command-line configuration occurs, including argument validation.

One note about the design: i grouped together all the arguments that `html::render::run` needed, so that i could pass them on from compilation in one lump instead of trying to thread through individual items or clone the entire blob ahead of time.

One other thing this adds is that rustdoc also now recognizes all the `-Z` options that rustc does, since we were manually grabbing a few previously. Now we parse a full `DebuggingOptions` struct and hand it directly to rustc when scraping docs.
2018-11-05 09:48:46 +00:00
QuietMisdreavus
1260ad2138 pass the Options struct instead of individual args 2018-11-02 17:17:02 -05:00
QuietMisdreavus
0fe6aae49a buffer errors from initial tokenization when parsing 2018-11-01 11:57:29 -05:00
QuietMisdreavus
8a3b5e99ad silence errors found during doctest pre-parsing 2018-11-01 09:52:28 -05:00
QuietMisdreavus
d6d8c6bd71 add a line between extracted crates and everything else 2018-11-01 09:52:28 -05:00
Wesley Norris
cd407dfe74 Separates inner attributes from code during doctest parsing. 2018-11-01 09:52:28 -05:00
Wesley Norris
43b65b51e0 Tidy up source file and fix typo. 2018-11-01 09:52:27 -05:00
Wesley Norris
b79fdb8e3c Replaces fn main search and extern crate search with proper parsing. 2018-11-01 09:52:27 -05:00
Shotaro Yamada
3878d24ef6 Remove redundant clone 2018-10-26 12:07:39 +09:00
bors
40123a1257 Auto merge of #54349 - GuillaumeGomez:no-example-lint, r=QuietMisdreavus
[rustdoc] Add lint for doc without codeblocks

Fixes #53805.

r? @QuietMisdreavus
2018-10-18 09:53:29 +00:00
Felix S. Klock II
9a76c9337a Use default of preferring static over dynamic linking in rustdoc tests. 2018-10-09 23:05:20 +02:00
Guillaume Gomez
d6385631f4 Add lint for doc without codeblocks 2018-10-09 16:47:12 +02:00
Pietro Albini
23636e3f99 Rollup merge of #54350 - Munksgaard:support-edition-in-doc-test, r=steveklabnik
Support specifying edition in doc test

Fixes #52623

r? @QuietMisdreavus
2018-09-22 09:56:30 +02:00
Philip Munksgaard
c996c4d316 Add support for running doc test in specific edition 2018-09-19 14:32:09 +02:00
Erich Cordoba
3d662639f6 Remove unneeded clone() from tests
The expected.clone() calls were not needed for the tests. This is
just to keep consistency between the test cases.
2018-09-18 18:32:29 -05:00
Donato Sciarra
062bfbf39b mv codemap source_map 2018-08-19 23:01:01 +02:00
Donato Sciarra
82607d2cf3 mv (mod) codemap source_map 2018-08-19 23:01:00 +02:00
Donato Sciarra
c655473378 mv CodeMap SourceMap 2018-08-19 23:00:59 +02:00
QuietMisdreavus
0511b01506 set the syntax edition in the driver's phase 1 2018-08-09 11:46:39 -05:00
Mark Rousskov
5fcef251d3 Move basic_options to impl of Default 2018-08-04 06:54:36 -06:00
Mark Rousskov
2a9344206b Normalize variants of CrateType to standard style
This is a clippy-breaking change.
2018-08-04 06:53:15 -06:00
Mark Rousskov
01d95558e6 Further extract error code switch
Removes dependency on UnstableFeatures from markdown rendering
2018-07-31 11:39:02 -06:00
Mark Rousskov
03e34f8f81 Remove dependency on error handling from find_testable_code 2018-07-31 11:37:21 -06:00
Mark Rousskov
de5cebdba5 Provide test configuration through struct
This is far more sound than passing many different arguments of the same
type.
2018-07-31 11:37:21 -06:00
Mark Rousskov
ad40e4517f Provide warnings for invalid code blocks in markdown files
Previously we would only warn on Rust code but we can also do so when
testing markdown (the diag::Handler is available).
2018-07-31 11:37:21 -06:00
Tatsuyuki Ishi
66c4dc9769 Add missing dyn 2018-07-25 10:24:31 +09:00
QuietMisdreavus
76e33b4eb4 force the doctest rustc thread to share the name of the test 2018-07-24 10:35:55 -05:00
QuietMisdreavus
41e7ac16c4 report doctest compile failures correctly 2018-07-20 10:13:38 -05:00
QuietMisdreavus
d17a378b16 rustdoc: set panic output before starting compiler thread pool 2018-07-20 10:13:37 -05:00
kennytm
c0db1aafea Rollup merge of #52385 - GuillaumeGomez:pass-edition-to-parser, r=QuietMisdreavus
Pass edition flags to compiler from rustdoc as expected

Fixes #52357.
2018-07-17 19:24:57 +08:00
csmoe
5b0cf56f32 ItemKind 2018-07-16 15:09:17 +02:00
Guillaume Gomez
65e6b2b4a8 Pass edition flags to compiler from rustdoc as expected 2018-07-14 20:45:44 +02:00