# std.testing.expectEqualSlices: On failure, print address for pointer types · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/90fde14c5f4406c284ec030186172b3db4697258)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: 90fde14c5f4406c284ec030186172b3db4697258

Requested commit: 90fde14c5f4406c284ec030186172b3db4697258

Commit: 90fde14c5f4406c284ec030186172b3db4697258

Tree: 1a5f2ae17ce10105b1d9c97b069f6703cf72a196

Author: Ryan Liptak

Committer: Andrew Kelley

## Message

```
std.testing.expectEqualSlices: On failure, print address for pointer types

When comparing slice elements, `std.meta.eql` is used which only compares pointer address and length to determine equality for pointer types. This previously led to confusing results where `expectEqualSlices` would appear to fail on seemingly equal slices (judging by the output of `expectEqualSlices`. For example:

try testing.expectEqualSlices(
    []const i64,
    &[_][]const i64{ &[_]i64{ 1, 2, 3 }, &[_]i64{ 5, 5, 5 } },
    &[_][]const i64{ &[_]i64{ 1, 2, 3 }, &[_]i64{ 5, 5, 5 } },
);

Previously, this would result in:

============ expected this output: =============  len: 2 (0x2)

[0]: { 1, 2, 3 }
[1]: { 5, 5, 5 }

============= instead found this: ==============  len: 2 (0x2)

[0]: { 1, 2, 3 }
[1]: { 5, 5, 5 }

================================================

After this commit, it will result in:

============ expected this output: =============  len: 2 (0x2)

[0]i64@7ff7e2773758: { 1, 2, 3 }
[1]i64@7ff7e2773770: { 5, 5, 5 }

============= instead found this: ==============  len: 2 (0x2)

[0]i64@7ff7e2773788: { 1, 2, 3 }
[1]i64@7ff7e27737a0: { 5, 5, 5 }

================================================

```

## Parents

- [a91a8df6791b6fe228ad616acd9fbbde46451651](https://git.cafe/gitcafe/zig/commit/a91a8df6791b6fe228ad616acd9fbbde46451651?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/90fde14c5f4406c284ec030186172b3db4697258?format=markdown)
