authorgravatar for jan.hafer@rwth-aachen.deJan Philipp Hafer <jan.hafer@rwth-aachen.de> 2022-12-08 21:06:33+01:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-12-12 10:58:54+02:00
log8a27df5355a1d97bdc483df093c4d69489b99e42
tree530990b53243a04f713b36f88c220b1d0b26cea9
parent959c10c5e53d35f059dae577cd606d8c96a5feb4

std.os.linux: fix timerfd test

Remove timerfd timeout and fix timerfd_settime flag. CI tests should not rely on timings to succeed. Closes #13721.

1 files changed, 5 insertions(+), 10 deletions(-)

lib/std/os/test.zig+5-10
...@@ -1042,11 +1042,6 @@ test "access smoke test" {...@@ -1042,11 +1042,6 @@ test "access smoke test" {
1042}1042}
10431043
1044test "timerfd" {1044test "timerfd" {
1045 if (true) {
1046 // https://github.com/ziglang/zig/issues/13721
1047 return error.SkipZigTest;
1048 }
1049
1050 if (native_os != .linux)1045 if (native_os != .linux)
1051 return error.SkipZigTest;1046 return error.SkipZigTest;
10521047
...@@ -1054,16 +1049,16 @@ test "timerfd" {...@@ -1054,16 +1049,16 @@ test "timerfd" {
1054 var tfd = try os.timerfd_create(linux.CLOCK.MONOTONIC, linux.TFD.CLOEXEC);1049 var tfd = try os.timerfd_create(linux.CLOCK.MONOTONIC, linux.TFD.CLOEXEC);
1055 defer os.close(tfd);1050 defer os.close(tfd);
10561051
1052 // Fire event 10_000_000ns = 10ms after the os.timerfd_settime call.
1057 var sit: linux.itimerspec = .{ .it_interval = .{ .tv_sec = 0, .tv_nsec = 0 }, .it_value = .{ .tv_sec = 0, .tv_nsec = 10 * (1000 * 1000) } };1053 var sit: linux.itimerspec = .{ .it_interval = .{ .tv_sec = 0, .tv_nsec = 0 }, .it_value = .{ .tv_sec = 0, .tv_nsec = 10 * (1000 * 1000) } };
1058 try os.timerfd_settime(tfd, 0, &sit, null);1054 try os.timerfd_settime(tfd, 0, &sit, null);
10591055
1060 var fds: [1]os.pollfd = .{.{ .fd = tfd, .events = os.linux.POLL.IN, .revents = 0 }};1056 var fds: [1]os.pollfd = .{.{ .fd = tfd, .events = os.linux.POLL.IN, .revents = 0 }};
1061 try expectEqual(try os.poll(&fds, -1), 1);1057 try expectEqual(@as(usize, 1), try os.poll(&fds, -1)); // -1 => infinite waiting
1062 var git = try os.timerfd_gettime(tfd);
1063 try expectEqual(git, .{ .it_interval = .{ .tv_sec = 0, .tv_nsec = 0 }, .it_value = .{ .tv_sec = 0, .tv_nsec = 0 } });
10641058
1065 try os.timerfd_settime(tfd, 0, &sit, null);1059 var git = try os.timerfd_gettime(tfd);
1066 try expectEqual(try os.poll(&fds, 5), 0);1060 var expect_disarmed_timer: linux.itimerspec = .{ .it_interval = .{ .tv_sec = 0, .tv_nsec = 0 }, .it_value = .{ .tv_sec = 0, .tv_nsec = 0 } };
1061 try expectEqual(expect_disarmed_timer, git);
1067}1062}
10681063
1069test "isatty" {1064test "isatty" {