From 7a941391d86a863ab08b24d161dcad8eb047f1bd Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 12 Sep 2022 22:32:15 -0700 Subject: [PATCH] universal-libc: fix strncmp tests The specification for this function is that it returns a positive value, zero, or negative value, not that it returns the difference between ascii values. --- lib/c.zig | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/c.zig b/lib/c.zig index 9df1b3fb01..c08454a22c 100644 --- a/lib/c.zig +++ b/lib/c.zig @@ -298,10 +298,10 @@ fn strerror(errnum: c_int) callconv(.C) [*:0]const u8 { } test "strncmp" { - try std.testing.expect(strncmp("a", "b", 1) == -1); - try std.testing.expect(strncmp("a", "c", 1) == -2); - try std.testing.expect(strncmp("b", "a", 1) == 1); - try std.testing.expect(strncmp("\xff", "\x02", 1) == 253); + try std.testing.expect(strncmp("a", "b", 1) < 0); + try std.testing.expect(strncmp("a", "c", 1) < 0); + try std.testing.expect(strncmp("b", "a", 1) > 0); + try std.testing.expect(strncmp("\xff", "\x02", 1) > 0); } // TODO we should be able to put this directly in std/linux/x86_64.zig but