Branch Coverage

xs/Type.xs
Criterion Covered Total %
branch 70 76 92.1


line true false branch
42 269 37 RETVAL = ffi_pl_sizeof(self);
55 1 18 if((type_code & FFI_PL_SHAPE_MASK) == FFI_PL_SHAPE_CUSTOM_PERL)
119 4 15 if((type_code & FFI_PL_SHAPE_MASK) == FFI_PL_SHAPE_CUSTOM_PERL)
192 1 14 switch(self->type_code)
217 351 215 RETVAL = self->type_code;
226 0 13 RETVAL = self->type_code == FFI_PL_TYPE_RECORD
227 11 2 || self->type_code == (FFI_PL_TYPE_RECORD | FFI_PL_SHAPE_CUSTOM_PERL);
2 9 || self->type_code == (FFI_PL_TYPE_RECORD | FFI_PL_SHAPE_CUSTOM_PERL);
235 4 16 RETVAL = self->type_code == FFI_PL_TYPE_RECORD_VALUE
236 16 4 || self->type_code == (FFI_PL_TYPE_RECORD_VALUE | FFI_PL_SHAPE_CUSTOM_PERL);
1 15 || self->type_code == (FFI_PL_TYPE_RECORD_VALUE | FFI_PL_SHAPE_CUSTOM_PERL);
249 178 29 RETVAL = shape == FFI_PL_SHAPE_SCALAR
250 205 2 && ( base == FFI_PL_BASE_SINT
156 49 && ( base == FFI_PL_BASE_SINT
251 69 87 || base == FFI_PL_BASE_UINT
252 39 30 || base == FFI_PL_BASE_FLOAT
253 2 37 || base == FFI_PL_BASE_OPAQUE
254 1 1 || base == FFI_PL_BASE_RECORD
255 1 0 || base == (FFI_PL_BASE_RECORD | FFI_PL_BASE_OPAQUE)
269 15 11 RETVAL = shape == FFI_PL_SHAPE_SCALAR
270 26 0 && ( base == FFI_PL_BASE_SINT
16 10 && ( base == FFI_PL_BASE_SINT
271 8 8 || base == FFI_PL_BASE_UINT
272 6 2 || base == FFI_PL_BASE_OPAQUE
281 6 0 RETVAL = self->type_code == FFI_PL_TYPE_STRING &&
0 6 RETVAL = self->type_code == FFI_PL_TYPE_STRING &&
282 4 2 self->sub_type == FFI_PL_TYPE_STRING_RO;
290 89 2342 if(self->type_code == FFI_PL_TYPE_CLOSURE)
292 13 76 if(!PL_dirty)
295 2277 65 else if(self->type_code == FFI_PL_TYPE_RECORD
296 7 2270 || self->type_code == FFI_PL_TYPE_RECORD_VALUE)
298 28 44 if(self->extra[0].record.class != NULL)
311 107 102 if(custom->perl_to_native != NULL)
313 62 147 if(custom->perl_to_native_post != NULL)
315 127 82 if(custom->native_to_perl != NULL)
317 4 205 if(self->extra[0].record.class != NULL)
323 24 0 if(self->extra[0].object.class != NULL)
331 229 2202 if(!PL_dirty)