File Coverage

stat2.xs
Criterion Covered Total %
statement 18 18 100.0
branch 15 28 53.5
condition n/a
subroutine n/a
pod n/a
total 33 46 71.7


line stmt bran cond sub pod time code
1             #include "EXTERN.h"
2             #include "perl.h"
3             #include "XSUB.h"
4              
5             #include "ppport.h"
6              
7             #include
8             #include
9             #include
10             #include
11             #include
12             #include
13              
14 3           static double t2d (const struct timespec * ts)
15             {
16 3           double d = (double)ts->tv_sec + ((double)ts->tv_nsec) / 1000000000;
17 3           return d;
18             }
19              
20             MODULE = File::stat2 PACKAGE = File::stat2
21              
22             void
23             _stat2 (path)
24             const char * path
25             INIT:
26             struct stat st;
27             char ino[128];
28             PPCODE:
29 2 100         if (stat (path, &st) == 0)
30             {
31 1           sprintf (ino, "%llu", (unsigned long long)st.st_ino);
32 1 50         XPUSHs (sv_2mortal (newSViv (st.st_dev )));
33 1 50         XPUSHs (sv_2mortal (newSVpv (ino , 0)));
34 1 50         XPUSHs (sv_2mortal (newSViv (st.st_mode )));
35 1 50         XPUSHs (sv_2mortal (newSViv (st.st_nlink )));
36 1 50         XPUSHs (sv_2mortal (newSViv (st.st_uid )));
37 1 50         XPUSHs (sv_2mortal (newSViv (st.st_gid )));
38 1 50         XPUSHs (sv_2mortal (newSViv (st.st_rdev )));
39 1 50         XPUSHs (sv_2mortal (newSViv (st.st_size )));
40 1 50         XPUSHs (sv_2mortal (newSVnv (t2d (&st.st_atim))));
41 1 50         XPUSHs (sv_2mortal (newSVnv (t2d (&st.st_mtim))));
42 1 50         XPUSHs (sv_2mortal (newSVnv (t2d (&st.st_ctim))));
43 1 50         XPUSHs (sv_2mortal (newSViv (st.st_blksize)));
44 1 50         XPUSHs (sv_2mortal (newSViv (st.st_blocks )));
45             }
46              
47            
48              
49