use crate::interpreter::test::make_interpreter_test;
make_interpreter_test!(
string_formatting,
(
basic,
{ my_alias = concat(foo, _, bar) },
{
static MY_STRING: &str = "Hello, % my_alias %!";
static MY_STRING_NO_WHITESPACE: &str = "Hello, %my_alias%!";
static MY_STRING_IRREGULAR_WHITESPACE: &str = "Hello, % my_alias %!";
},
{
static MY_STRING: &str = "Hello, foo_bar!";
static MY_STRING_NO_WHITESPACE: &str = "Hello, foo_bar!";
static MY_STRING_IRREGULAR_WHITESPACE: &str = "Hello, foo_bar!";
},
None,
),
(
doc_attr,
{ my_fn = concat(foo, _, bar) },
{
#[doc = "My doc comment for % my_fn %"]
fn my_fn() -> u32 {
42
}
},
{
#[doc = "My doc comment for foo_bar"]
fn foo_bar() -> u32 {
42
}
},
None,
),
(
escape_percent,
{ my_alias = concat(foo, _, bar) },
{
static MY_STRING: &str = "Hello, % my_alias % %%";
},
{
static MY_STRING: &str = "Hello, foo_bar %";
},
None,
),
(
undefined_alias,
{ my_other_alias = foo },
{
static MY_STRING: &str = "Hello, % my_alias %!";
},
{
static MY_STRING: &str = "Hello, % my_alias %!";
},
None,
),
(
unterminated_placeholder,
{ my_alias = concat(foo, _, bar) },
{
static MY_STRING: &str = "Hello, % my_alias";
},
{
static MY_STRING: &str = "Hello, % my_alias";
},
None,
),
(
percent_non_placeholder,
{ my_alias = concat(foo, _, bar) },
{
static MY_STRING: &str = "Value: %x";
},
{
static MY_STRING: &str = "Value: %x";
},
None,
),
);