Skip to content

Commit

Permalink
Add a test in src/test/rustdoc/doc-cfg.rs
Browse files Browse the repository at this point in the history
  • Loading branch information
sunfishcode committed Feb 28, 2021
1 parent b89e828 commit e27eba3
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions src/test/rustdoc/doc-cfg.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
// @!has - '//*[@id="main"]/*[@class="item-info"]/*[@class="stab portability"]' ''
// @has - '//*[@id="method.unix_and_arm_only_function"]' 'fn unix_and_arm_only_function()'
// @has - '//*[@class="stab portability"]' 'This is supported on Unix and ARM only.'
// @has - '//*[@id="method.wasi_and_wasm32_only_function"]' 'fn wasi_and_wasm32_only_function()'
// @has - '//*[@class="stab portability"]' 'This is supported on WASI and WebAssembly only.'
pub struct Portable;

// @has doc_cfg/unix_only/index.html \
Expand Down Expand Up @@ -37,6 +39,36 @@ pub mod unix_only {
}
}

// @has doc_cfg/wasi_only/index.html \
// '//*[@id="main"]/*[@class="item-info"]/*[@class="stab portability"]' \
// 'This is supported on WASI only.'
// @matches - '//*[@class="module-item"]//*[@class="stab portability"]' '\AWebAssembly\Z'
// @count - '//*[@class="stab portability"]' 2
#[doc(cfg(target_os = "wasi"))]
pub mod wasi_only {
// @has doc_cfg/wasi_only/fn.wasi_only_function.html \
// '//*[@id="main"]/*[@class="item-info"]/*[@class="stab portability"]' \
// 'This is supported on WASI only.'
// @count - '//*[@class="stab portability"]' 1
pub fn wasi_only_function() {
content::should::be::irrelevant();
}

// @has doc_cfg/wasi_only/trait.Wasm32Only.html \
// '//*[@id="main"]/*[@class="item-info"]/*[@class="stab portability"]' \
// 'This is supported on WASI and WebAssembly only.'
// @count - '//*[@class="stab portability"]' 1
#[doc(cfg(target_arch = "wasm32"))]
pub trait Wasm32Only {
fn wasi_and_wasm32_only_function();
}

#[doc(cfg(target_arch = "wasm32"))]
impl Wasm32Only for super::Portable {
fn wasi_and_wasm32_only_function() {}
}
}

// tagging a function with `#[target_feature]` creates a doc(cfg(target_feature)) node for that
// item as well

Expand Down

0 comments on commit e27eba3

Please sign in to comment.