aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/error.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-02-12 21:13:07 -0700
committerAndrew Kelley <andrew@ziglang.org>2022-02-12 21:13:07 -0700
commitc349191b75811f8a21e26f8b175483449fae1638 (patch)
tree70e4b8e77f3b7746110b7ed0a1b391c189b3f81d /test/behavior/error.zig
parenta005ac9d3c884c6254074ec150fe536881fe31b5 (diff)
downloadzig-c349191b75811f8a21e26f8b175483449fae1638.tar.gz
zig-c349191b75811f8a21e26f8b175483449fae1638.zip
organize behavior tests
moving towards disabling failing tests on an individual basis
Diffstat (limited to 'test/behavior/error.zig')
-rw-r--r--test/behavior/error.zig26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/behavior/error.zig b/test/behavior/error.zig
index d58ad6ccb5..2e243d1d23 100644
--- a/test/behavior/error.zig
+++ b/test/behavior/error.zig
@@ -478,3 +478,29 @@ test "error union comptime caching" {
S.quux(@as(anyerror!void, {}));
S.quux(@as(anyerror!void, {}));
}
+
+test "@errorName" {
+ if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
+
+ try expect(mem.eql(u8, @errorName(error.AnError), "AnError"));
+ try expect(mem.eql(u8, @errorName(error.ALongerErrorName), "ALongerErrorName"));
+ try expect(mem.eql(u8, @errorName(gimmeItBroke()), "ItBroke"));
+}
+fn gimmeItBroke() anyerror {
+ return error.ItBroke;
+}
+
+test "@errorName sentinel length matches slice length" {
+ if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
+
+ const name = testBuiltinErrorName(error.FooBar);
+ const length: usize = 6;
+ try expect(length == std.mem.indexOfSentinel(u8, 0, name.ptr));
+ try expect(length == name.len);
+}
+
+pub fn testBuiltinErrorName(err: anyerror) [:0]const u8 {
+ return @errorName(err);
+}