[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