internal: move builtin macro tests to macro expansion suite

This commit is contained in:
Aleksey Kladov 2021-10-10 15:17:53 +03:00
parent bfc5d8529a
commit 6a3fc84921
3 changed files with 122 additions and 76 deletions

View File

@ -10,6 +10,7 @@
//! and harder to understand.
mod mbe;
mod builtin;
use std::{iter, ops::Range};

View File

@ -0,0 +1,121 @@
//! Tests for builtin macros (see `builtin_macro.rs` in `hir_expand`).
use expect_test::expect;
use crate::macro_expansion_tests::check;
#[test]
fn test_column_expand() {
check(
r#"
#[rustc_builtin_macro]
macro_rules! column {() => {}}
fn main() { column!(); }
"#,
expect![[r##"
#[rustc_builtin_macro]
macro_rules! column {() => {}}
fn main() { 0; }
"##]],
);
}
#[test]
fn test_line_expand() {
check(
r#"
#[rustc_builtin_macro]
macro_rules! line {() => {}}
fn main() { line!() }
"#,
expect![[r##"
#[rustc_builtin_macro]
macro_rules! line {() => {}}
fn main() { 0 }
"##]],
);
}
#[test]
fn test_stringify_expand() {
check(
r#"
#[rustc_builtin_macro]
macro_rules! stringify {() => {}}
fn main() {
stringify!(
a
b
c
);
}
"#,
expect![[r##"
#[rustc_builtin_macro]
macro_rules! stringify {() => {}}
fn main() {
"a b c";
}
"##]],
);
}
#[test]
fn test_env_expand() {
check(
r#"
#[rustc_builtin_macro]
macro_rules! env {() => {}}
fn main() { env!("TEST_ENV_VAR"); }
"#,
expect![[r##"
#[rustc_builtin_macro]
macro_rules! env {() => {}}
fn main() { "__RA_UNIMPLEMENTED__"; }
"##]],
);
}
#[test]
fn test_option_env_expand() {
check(
r#"
#[rustc_builtin_macro]
macro_rules! option_env {() => {}}
fn main() { option_env!("TEST_ENV_VAR"); }
"#,
expect![[r##"
#[rustc_builtin_macro]
macro_rules! option_env {() => {}}
fn main() { std::option::Option::None:: < &str>; }
"##]],
);
}
#[test]
fn test_file_expand() {
check(
r#"
#[rustc_builtin_macro]
macro_rules! file {() => {}}
fn main() { file!(); }
"#,
expect![[r##"
#[rustc_builtin_macro]
macro_rules! file {() => {}}
fn main() { ""; }
"##]],
);
}

View File

@ -669,82 +669,6 @@ fn check_expansion(ra_fixture: &str, expect: Expect) {
expect.assert_eq(&expansion);
}
#[test]
fn test_column_expand() {
check_expansion(
r#"
#[rustc_builtin_macro]
macro_rules! column {() => {}}
column!()
"#,
expect![["0"]],
);
}
#[test]
fn test_line_expand() {
check_expansion(
r#"
#[rustc_builtin_macro]
macro_rules! line {() => {}}
line!()
"#,
expect![["0"]],
);
}
#[test]
fn test_stringify_expand() {
check_expansion(
r#"
#[rustc_builtin_macro]
macro_rules! stringify {() => {}}
stringify!(
a
b
c
)
"#,
expect![["\"a b c\""]],
);
}
#[test]
fn test_env_expand() {
check_expansion(
r#"
#[rustc_builtin_macro]
macro_rules! env {() => {}}
env!("TEST_ENV_VAR")
"#,
expect![["\"__RA_UNIMPLEMENTED__\""]],
);
}
#[test]
fn test_option_env_expand() {
check_expansion(
r#"
#[rustc_builtin_macro]
macro_rules! option_env {() => {}}
option_env!("TEST_ENV_VAR")
"#,
expect![["std::option::Option::None:: < &str>"]],
);
}
#[test]
fn test_file_expand() {
check_expansion(
r#"
#[rustc_builtin_macro]
macro_rules! file {() => {}}
file!()
"#,
expect![[r#""""#]],
);
}
#[test]
fn test_assert_expand() {
check_expansion(