OpenCoverage

dtotimespec.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/dtotimespec.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* Convert double to timespec.-
2-
3 Copyright (C) 2011-2018 Free Software Foundation, Inc.-
4-
5 This program is free software: you can redistribute it and/or modify-
6 it under the terms of the GNU General Public License as published by-
7 the Free Software Foundation; either version 3 of the License, or-
8 (at your option) any later version.-
9-
10 This program is distributed in the hope that it will be useful,-
11 but WITHOUT ANY WARRANTY; without even the implied warranty of-
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the-
13 GNU General Public License for more details.-
14-
15 You should have received a copy of the GNU General Public License-
16 along with this program. If not, see <https://www.gnu.org/licenses/>. */-
17-
18/* written by Paul Eggert */-
19-
20/* Convert the double value SEC to a struct timespec. Round toward-
21 positive infinity. On overflow, return an extremal value. */-
22-
23#include <config.h>-
24-
25#include "timespec.h"-
26-
27#include "intprops.h"-
28-
29struct timespec-
30dtotimespec (double sec)-
31{-
32 if (! (TYPE_MINIMUM (time_t) < sec))
! (((time_t) ~...+ 1)))) < sec)Description
TRUEnever evaluated
FALSEevaluated 602 times by 3 tests
Evaluated by:
  • sleep
  • tail
  • timeout
0-602
33 return make_timespec (TYPE_MINIMUM (time_t), 0);
never executed: return make_timespec (((time_t) ~ ((time_t) (! (! ((time_t) 0 < (time_t) -1)) ? (time_t) -1 : ((((time_t) 1 << ((sizeof (time_t) * 8) - 2)) - 1) * 2 + 1)))), 0);
0
34 else if (! (sec < 1.0 + TYPE_MAXIMUM (time_t)))
! (sec < 1.0 +...1) * 2 + 1))))Description
TRUEevaluated 4 times by 2 tests
Evaluated by:
  • sleep
  • timeout
FALSEevaluated 598 times by 3 tests
Evaluated by:
  • sleep
  • tail
  • timeout
4-598
35 return make_timespec (TYPE_MAXIMUM (time_t), TIMESPEC_RESOLUTION - 1);
executed 4 times by 2 tests: return make_timespec (((time_t) (! (! ((time_t) 0 < (time_t) -1)) ? (time_t) -1 : ((((time_t) 1 << ((sizeof (time_t) * 8) - 2)) - 1) * 2 + 1))), TIMESPEC_RESOLUTION - 1);
Executed by:
  • sleep
  • timeout
4
36 else-
37 {-
38 time_t s = sec;-
39 double frac = TIMESPEC_RESOLUTION * (sec - s);-
40 long ns = frac;-
41 ns += ns < frac;-
42 s += ns / TIMESPEC_RESOLUTION;-
43 ns %= TIMESPEC_RESOLUTION;-
44-
45 if (ns < 0)
ns < 0Description
TRUEnever evaluated
FALSEevaluated 598 times by 3 tests
Evaluated by:
  • sleep
  • tail
  • timeout
0-598
46 {-
47 s--;-
48 ns += TIMESPEC_RESOLUTION;-
49 }
never executed: end of block
0
50-
51 return make_timespec (s, ns);
executed 598 times by 3 tests: return make_timespec (s, ns);
Executed by:
  • sleep
  • tail
  • timeout
598
52 }-
53}-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.1.2