Add new regression test for doctest
This commit is contained in:
parent
2004dacef2
commit
1494da4ffb
1 changed files with 131 additions and 0 deletions
|
|
@ -447,3 +447,134 @@ fn main() {}"
|
|||
let (output, len) = make_test(input, None, false, &opts, None);
|
||||
assert_eq!((output, len), (expected, 1));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn comments() {
|
||||
let opts = default_global_opts("");
|
||||
let input = r##"
|
||||
//! A doc comment that applies to the implicit anonymous module of this crate
|
||||
|
||||
pub mod outer_module {
|
||||
|
||||
//! - Inner line doc
|
||||
//!! - Still an inner line doc (but with a bang at the beginning)
|
||||
|
||||
/*! - Inner block doc */
|
||||
/*!! - Still an inner block doc (but with a bang at the beginning) */
|
||||
|
||||
// - Only a comment
|
||||
/// - Outer line doc (exactly 3 slashes)
|
||||
//// - Only a comment
|
||||
|
||||
/* - Only a comment */
|
||||
/** - Outer block doc (exactly) 2 asterisks */
|
||||
/*** - Only a comment */
|
||||
|
||||
pub mod inner_module {}
|
||||
|
||||
pub mod nested_comments {
|
||||
/* In Rust /* we can /* nest comments */ */ */
|
||||
|
||||
// All three types of block comments can contain or be nested inside
|
||||
// any other type:
|
||||
|
||||
/* /* */ /** */ /*! */ */
|
||||
/*! /* */ /** */ /*! */ */
|
||||
/** /* */ /** */ /*! */ */
|
||||
pub mod dummy_item {}
|
||||
}
|
||||
|
||||
pub mod degenerate_cases {
|
||||
// empty inner line doc
|
||||
//!
|
||||
|
||||
// empty inner block doc
|
||||
/*!*/
|
||||
|
||||
// empty line comment
|
||||
//
|
||||
|
||||
// empty outer line doc
|
||||
///
|
||||
|
||||
// empty block comment
|
||||
/**/
|
||||
|
||||
pub mod dummy_item {}
|
||||
|
||||
// empty 2-asterisk block isn't a doc block, it is a block comment
|
||||
/***/
|
||||
|
||||
}
|
||||
|
||||
/* The next one isn't allowed because outer doc comments
|
||||
require an item that will receive the doc */
|
||||
|
||||
/// Where is my item?
|
||||
}
|
||||
"##;
|
||||
let expected = "
|
||||
//! A doc comment that applies to the implicit anonymous module of this crate
|
||||
|
||||
pub mod outer_module {
|
||||
|
||||
//! - Inner line doc
|
||||
//!! - Still an inner line doc (but with a bang at the beginning)
|
||||
|
||||
/*! - Inner block doc */
|
||||
/*!! - Still an inner block doc (but with a bang at the beginning) */
|
||||
|
||||
// - Only a comment
|
||||
/// - Outer line doc (exactly 3 slashes)
|
||||
//// - Only a comment
|
||||
|
||||
/* - Only a comment */
|
||||
/** - Outer block doc (exactly) 2 asterisks */
|
||||
/*** - Only a comment */
|
||||
|
||||
pub mod inner_module {}
|
||||
|
||||
pub mod nested_comments {
|
||||
/* In Rust /* we can /* nest comments */ */ */
|
||||
|
||||
// All three types of block comments can contain or be nested inside
|
||||
// any other type:
|
||||
|
||||
/* /* */ /** */ /*! */ */
|
||||
/*! /* */ /** */ /*! */ */
|
||||
/** /* */ /** */ /*! */ */
|
||||
pub mod dummy_item {}
|
||||
}
|
||||
|
||||
pub mod degenerate_cases {
|
||||
// empty inner line doc
|
||||
//!
|
||||
|
||||
// empty inner block doc
|
||||
/*!*/
|
||||
|
||||
// empty line comment
|
||||
//
|
||||
|
||||
// empty outer line doc
|
||||
///
|
||||
|
||||
// empty block comment
|
||||
/**/
|
||||
|
||||
pub mod dummy_item {}
|
||||
|
||||
// empty 2-asterisk block isn't a doc block, it is a block comment
|
||||
/***/
|
||||
|
||||
}
|
||||
|
||||
/* The next one isn't allowed because outer doc comments
|
||||
require an item that will receive the doc */
|
||||
|
||||
/// Where is my item?
|
||||
}
|
||||
".to_string();
|
||||
let (output, len) = make_test(input, None, false, &opts, None);
|
||||
assert_eq!((output, len), (expected, 0));
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue