Branch Coverage

XS.xs
Criterion Covered Total %
branch 101 194 52.0


line true false branch
17 103011 0 hash.store("offset", Simple(trans.offset));
103011 0 hash.store("offset", Simple(trans.offset));
18 103011 0 hash.store("abbrev", Simple(trans.abbrev));
103011 0 hash.store("abbrev", Simple(trans.abbrev));
19 101783 1228 if (!is_past) {
20 101783 0 hash.store("start", Simple(trans.start));
101783 0 hash.store("start", Simple(trans.start));
21 101783 0 hash.store("isdst", Simple(trans.isdst));
101783 0 hash.store("isdst", Simple(trans.isdst));
22 101783 0 hash.store("gmt_offset", Simple(trans.gmt_offset));
101783 0 hash.store("gmt_offset", Simple(trans.gmt_offset));
23 101783 0 hash.store("leap_corr", Simple(trans.leap_corr));
101783 0 hash.store("leap_corr", Simple(trans.leap_corr));
24 101783 0 hash.store("leap_delta", Simple(trans.leap_delta));
101783 0 hash.store("leap_delta", Simple(trans.leap_delta));
34 1256 0 }
37 15 0 RETVAL = tzlocal()->name;
15 0 RETVAL = tzlocal()->name;
41 109 3 if (!newzone || !SvOK(newzone)) panda::time::tzset(string_view());
0 109 if (!newzone || !SvOK(newzone)) panda::time::tzset(string_view());
0 0 if (!newzone || !SvOK(newzone)) panda::time::tzset(string_view());
0 0 if (!newzone || !SvOK(newzone)) panda::time::tzset(string_view());
3 0 if (!newzone || !SvOK(newzone)) panda::time::tzset(string_view());
42 1 108 else if (SvROK(newzone)) panda::time::tzset(xs::in(aTHX_ newzone));
1 0 else if (SvROK(newzone)) panda::time::tzset(xs::in(aTHX_ newzone));
1 0 else if (SvROK(newzone)) panda::time::tzset(xs::in(aTHX_ newzone));
43 108 0 else panda::time::tzset(xs::in(aTHX_ newzone));
108 0 else panda::time::tzset(xs::in(aTHX_ newzone));
47 26 3 if (newdirSV) {
48 26 0 string newdir = xs::in(aTHX_ newdirSV);
49 26 0 if (tzdir(newdir)) RETVAL = "1";
26 0 if (tzdir(newdir)) RETVAL = "1";
26 0 if (tzdir(newdir)) RETVAL = "1";
50 26 0 else XSRETURN_UNDEF;
52 3 0 RETVAL = tzdir();
3 0 RETVAL = tzdir();
56 26 0 RETVAL = tzsysdir();
26 0 RETVAL = tzsysdir();
61 23760 0 if (epochSV) epoch = xs::in(aTHX_ epochSV);
23760 0 if (epochSV) epoch = xs::in(aTHX_ epochSV);
65 4727 19033 bool success = (ix == 0) ? gmtime(epoch, &date) : localtime(epoch, &date);
4727 0 bool success = (ix == 0) ? gmtime(epoch, &date) : localtime(epoch, &date);
19033 0 bool success = (ix == 0) ? gmtime(epoch, &date) : localtime(epoch, &date);
67 23760 0 if (GIMME_V == G_ARRAY) {
0 0 if (GIMME_V == G_ARRAY) {
23749 11 if (GIMME_V == G_ARRAY) {
68 2 23747 if (!success) XSRETURN_EMPTY;
69 0 23747 EXTEND(SP, 9);
0 0 EXTEND(SP, 9);
70 0 23747 EXTEND_MORTAL(9);
0 0 EXTEND_MORTAL(9);
71 23747 0 mPUSHu(date.sec);
23747 0 mPUSHu(date.sec);
72 23747 0 mPUSHu(date.min);
23747 0 mPUSHu(date.min);
73 23747 0 mPUSHu(date.hour);
23747 0 mPUSHu(date.hour);
74 23747 0 mPUSHu(date.mday);
23747 0 mPUSHu(date.mday);
75 23747 0 mPUSHu(date.mon);
23747 0 mPUSHu(date.mon);
76 23747 0 mPUSHi(date.year);
23747 0 mPUSHi(date.year);
77 23747 0 mPUSHu(date.wday);
23747 0 mPUSHu(date.wday);
78 23747 0 mPUSHu(date.yday);
23747 0 mPUSHu(date.yday);
79 23747 0 mPUSHu(date.isdst);
23747 0 mPUSHu(date.isdst);
82 0 11 EXTEND(SP, 1);
0 0 EXTEND(SP, 1);
83 2 9 if (!success) XSRETURN_UNDEF;
84 9 0 SV* ret = newSV(1000);
87 9 0 size_t strlen = strftime(str, 1000, LT_FORMAT, &date);
89 9 0 mPUSHs(ret);
96 23827 0 date.sec = xs::in(aTHX_ sec);
97 23827 0 date.min = xs::in(aTHX_ min);
98 23827 0 date.hour = xs::in(aTHX_ hour);
99 23827 0 date.mday = xs::in(aTHX_ mday);
100 23827 0 date.mon = xs::in(aTHX_ mon);
101 23827 0 date.year = xs::in(aTHX_ year);
103 23793 34 if (isdst) date.isdst = SvIV(isdst);
23793 0 if (isdst) date.isdst = SvIV(isdst);
0 0 if (isdst) date.isdst = SvIV(isdst);
108 4723 0 RETVAL = timegml(&date);
111 19069 0 RETVAL = timelocall(&date);
114 5 0 RETVAL = timegm(&date);
117 30 0 RETVAL = timelocal(&date);
122 35 23792 if (ix & 2) {
123 34 0 sv_setiv(sec, date.sec);
124 34 0 sv_setiv(min, date.min);
125 34 0 sv_setiv(hour, date.hour);
126 34 0 sv_setiv(mday, date.mday);
127 34 0 sv_setiv(mon, date.mon);
128 34 0 sv_setiv(year, date.year);
129 30 4 if (isdst) sv_setiv(isdst, date.isdst);
30 0 if (isdst) sv_setiv(isdst, date.isdst);