frondeus / frondeus/test-case

Example usage of test_matrix broken

Open
#144 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
633
Forks
42
PR merge metrics
No merged PRs in 30d

Description

## Description

The example usage for `test_matrix` does not compile in version 3.3.1 with rustc 1.77.2.

## To reproduce

1. Create an empty project with `cargo new test_matrix`
2. Add test_case with `cargo add --dev test-case`
3. Add the test module from [the example usage](https://crates.io/crates/test-case) on crates.io like so
```rust
fn main() {
println!("Hello, world!");
}

#[cfg(test)]
mod tests {
use test_case::test_matrix;

#[test_matrix(
[-2, 2],
[-4, 4]
)]
fn multiplication_matrix_tests(x: i8, y: i8) {
let actual = (x * y).abs();

assert_eq!(8, actual)
}
}
```
4. Compile and run the tests with `cargo test`

## Expected behaviour

The tests compile and run without errors

## Actual behaviour

The tests don't compile with the error message

```
error[E0428]: the name `_2_2_expects` is defined multiple times
--> src/main.rs:9:5
|
9 | / #[test_matrix(
10 | | [-2, 2],
11 | | [-2, 4]
12 | | )]
| |______^ `_2_2_expects` redefined here
|
= note: `_2_2_expects` must be defined only once in the value namespace of this module
= note: this error originates in the attribute macro `test_matrix` (in Nightly builds, run with -Z macro-backtrace for more info)
```

## Additional context

The error seems to stem from the way the minus signs are translated to function names, because it compiles if the matrix is defined as

```rust
#[test_matrix(
[-1, 2],
[-3, 4]
)]
```
(these tests compile, but fail for obvious reasons.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.