Branch Coverage

lib/Neo4j/Bolt/CTypeHandlers.xs
Criterion Covered Total %
branch 101 162 62.3


line true false branch
61 1 0 return neo4j_bool( (bool) SvIV(sv) );
65 3 0 return neo4j_int( (long long) SvIV(sv) );
69 1 0 return neo4j_float( SvNV(sv) );
75 16 0 k = SvPV(sv,len);
87 0 28 if (!SvOK(sv) ) {
0 0 if (!SvOK(sv) ) {
0 0 if (!SvOK(sv) ) {
90 10 18 if (SvROK(sv)) { // a ref
93 1 9 if ( t < SVt_PVAV) { // scalar ref
94 0 1 if ((sv_isobject(sv) && sv_isa(sv, "JSON::PP::Boolean")) || (SvIOK(thing) && SvIV(thing) >> 1 == 0)) {
0 0 if ((sv_isobject(sv) && sv_isa(sv, "JSON::PP::Boolean")) || (SvIOK(thing) && SvIV(thing) >> 1 == 0)) {
1 0 if ((sv_isobject(sv) && sv_isa(sv, "JSON::PP::Boolean")) || (SvIOK(thing) && SvIV(thing) >> 1 == 0)) {
1 0 if ((sv_isobject(sv) && sv_isa(sv, "JSON::PP::Boolean")) || (SvIOK(thing) && SvIV(thing) >> 1 == 0)) {
1 0 if ((sv_isobject(sv) && sv_isa(sv, "JSON::PP::Boolean")) || (SvIOK(thing) && SvIV(thing) >> 1 == 0)) {
0 0 if ((sv_isobject(sv) && sv_isa(sv, "JSON::PP::Boolean")) || (SvIOK(thing) && SvIV(thing) >> 1 == 0)) {
102 2 7 else if (t == SVt_PVAV) { //array
103 1 1 if (sv_isobject(sv)) {
104 1 0 if (sv_isa(sv, PATH_CLASS)) { // path
111 7 0 else if (t == SVt_PVHV) { //hash
114 6 1 if (sv_isobject(sv)) {
115 3 3 if (sv_isa(sv, NODE_CLASS)) { // node
118 3 0 if (sv_isa(sv, RELATIONSHIP_CLASS)) { // reln
127 3 15 if (SvIOK(sv)) {
130 1 14 else if (SvNOK(sv)) {
133 14 0 else if (SvPOK(sv)) {
148 0 2 if (n < 0) {
151 0 2 Newx(items, n+1, neo4j_value_t);
152 6 2 for (i=0;i<=n;i++) {
164 0 4 if (!HvTOTALKEYS(hv)) {
167 0 4 Newx(map_ents,HvTOTALKEYS(hv),neo4j_map_entry_t);
170 9 4 while ((ent = hv_iternext(hv))) {
197 1 2 if (lbls_ref_p && SvROK(*lbls_ref_p)) {
1 0 if (lbls_ref_p && SvROK(*lbls_ref_p)) {
202 1 2 if (lbls && SvTYPE((SV*)lbls) == SVt_PVAV && av_top_index(lbls) >= 0) {
1 0 if (lbls && SvTYPE((SV*)lbls) == SVt_PVAV && av_top_index(lbls) >= 0) {
1 0 if (lbls && SvTYPE((SV*)lbls) == SVt_PVAV && av_top_index(lbls) >= 0) {
207 3 0 fields[0] = neo4j_identity( node_id_p ? SvIV( *node_id_p ) : -1 );
3 0 fields[0] = neo4j_identity( node_id_p ? SvIV( *node_id_p ) : -1 );
210 2 1 if (props_ref_p && SvROK(*props_ref_p)) {
2 0 if (props_ref_p && SvROK(*props_ref_p)) {
215 2 1 if (props && SvTYPE((SV*)props) == SVt_PVHV && HvTOTALKEYS(props)) {
2 0 if (props && SvTYPE((SV*)props) == SVt_PVHV && HvTOTALKEYS(props)) {
2 0 if (props && SvTYPE((SV*)props) == SVt_PVHV && HvTOTALKEYS(props)) {
245 3 0 fields[0] = neo4j_identity( reln_id_p ? SvIV( *reln_id_p ) : -1 );
3 0 fields[0] = neo4j_identity( reln_id_p ? SvIV( *reln_id_p ) : -1 );
246 3 0 fields[1] = neo4j_identity( start_id_p ? SvIV( *start_id_p ) : -1 );
3 0 fields[1] = neo4j_identity( start_id_p ? SvIV( *start_id_p ) : -1 );
247 3 0 fields[2] = neo4j_identity( end_id_p ? SvIV( *end_id_p ) : -1 );
3 0 fields[2] = neo4j_identity( end_id_p ? SvIV( *end_id_p ) : -1 );
248 2 1 if (type_p && SvOK(*type_p)) {
0 2 if (type_p && SvOK(*type_p)) {
0 0 if (type_p && SvOK(*type_p)) {
0 0 if (type_p && SvOK(*type_p)) {
255 1 2 if (props_ref_p && SvROK(*props_ref_p)) {
1 0 if (props_ref_p && SvROK(*props_ref_p)) {
260 1 2 if (props && SvTYPE((SV*)props) == SVt_PVHV && HvTOTALKEYS(props)) {
1 0 if (props && SvTYPE((SV*)props) == SVt_PVHV && HvTOTALKEYS(props)) {
1 0 if (props && SvTYPE((SV*)props) == SVt_PVHV && HvTOTALKEYS(props)) {
310 2 27 if ( the_type == NEO4J_BOOL) {
312 0 27 } else if ( the_type == NEO4J_BYTES) {
314 1 26 } else if ( the_type == NEO4J_FLOAT) {
316 3 23 } else if ( the_type == NEO4J_INT) {
318 3 20 } else if ( the_type == NEO4J_NODE) {
321 3 17 } else if ( the_type == NEO4J_RELATIONSHIP) {
324 0 17 } else if ( the_type == NEO4J_NULL) {
326 2 15 } else if ( the_type == NEO4J_LIST) {
328 1 14 } else if ( the_type == NEO4J_MAP) {
330 0 14 } else if ( the_type == NEO4J_PATH ){
334 14 0 } else if ( the_type == NEO4J_STRING) {
348 6 2 for (i=0;i
363 9 7 for (i=0;i
368 0 9 if (hv_store(hv, ks, neo4j_string_length(entry->key), sv,0) ==
393 1 2 if (neo4j_list_length(labels)) {
396 2 1 if (HvTOTALKEYS(props_hv)) {
418 3 0 SvPV(type,len);
420 2 1 if (retlen) {
423 1 2 if (HvTOTALKEYS(props_hv)) {
441 0 0 if (n==0) {
444 0 0 for (i=1; i<=n; i++) {
448 0 0 hv_stores( (HV*) SvRV(rel_sv), "start", newSViv( (IV) (dir ? last_node_id : node_id)));
449 0 0 hv_stores( (HV*) SvRV(rel_sv), "end", newSViv( (IV) (dir ? node_id : last_node_id)));