[libc-commits] [libc] [libc][time] Add timer_settime and timer_gettime functions. (PR #219360)
via libc-commits
libc-commits at lists.llvm.org
Fri Aug 28 04:26:18 PDT 2026
================
@@ -94,3 +98,134 @@ TEST_F(LlvmLibcTimerTest, CreateAndDelete) {
ASSERT_THAT(LIBC_NAMESPACE::timer_delete(timerid), Succeeds(0));
ASSERT_THAT(LIBC_NAMESPACE::timer_delete(timerid), Fails(EINVAL));
}
+
+TEST_F(LlvmLibcTimerTest, SetTimeRelativeAndDisarm) {
+ timer_t timerid;
+ ASSERT_THAT(LIBC_NAMESPACE::timer_create(CLOCK_REALTIME, nullptr, &timerid),
+ Succeeds(0));
+
+ itimerspec new_val{};
+ new_val.it_value.tv_sec = 10;
+ new_val.it_value.tv_nsec = 0;
+ new_val.it_interval.tv_sec = 1;
+ new_val.it_interval.tv_nsec = 0;
+
+ itimerspec old_val{};
+ ASSERT_THAT(LIBC_NAMESPACE::timer_settime(timerid, 0, &new_val, &old_val),
+ Succeeds(0));
+ // Initially, old_val should be 0 because it was disarmed.
+ ASSERT_EQ(old_val.it_value.tv_sec, static_cast<time_t>(0));
+ ASSERT_EQ(old_val.it_value.tv_nsec,
+ static_cast<decltype(old_val.it_value.tv_nsec)>(0));
----------------
lntue wrote:
is it possible that `time_t` and `tv_nsec` do not alias `long` in some configuration / target?
https://github.com/llvm/llvm-project/pull/219360
More information about the libc-commits
mailing list