Changeset: a1c28c17e23b for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a1c28c17e23b
Modified Files:
        monetdb5/extras/crackers/crackers_core_unordered.mx
Branch: holindex
Log Message:

Add more assertions.


diffs (139 lines):

diff --git a/monetdb5/extras/crackers/crackers_core_unordered.mx 
b/monetdb5/extras/crackers/crackers_core_unordered.mx
--- a/monetdb5/extras/crackers/crackers_core_unordered.mx
+++ b/monetdb5/extras/crackers/crackers_core_unordered.mx
@@ -471,7 +471,7 @@ CRKcrackUnorderedZero_@2_@1_STxx ( const
        assert(p >= first && p <= last + 1);
        assert(p == first || (m && pp + 1 < qq && p == qq && src_t[pp] @7 mval) 
|| (!(m && pp + 1 < qq && p == qq) && src_t[p-1] @7 mval));
        assert(p == last + 1 || src_t[p] @8 mval);
-#ifndef NDEBUG
+#ifdef NDEBUG
        for (q = first; q < p; q++) {
                if (m && pp + 1 < qq && q == pp + 1) {
                        q = qq;
@@ -622,7 +622,10 @@ CRKcrackUnorderedZero_@2_@1_STxxx ( cons
        assert(p >= first && p <= last + 1);
        assert(p == first || (ml && mr && pp + 1 < qq && p == qq && src_t[pp] 
@7 mval) || (!(ml && mr && pp + 1 < qq && p == qq) && src_t[p-1] @7 mval));
        assert(p == last + 1 || src_t[p] @8 mval);
-#ifndef NDEBUG
+
+#ifdef NDEBUG
+       BUN i_res = 0;  
+
        for (q = first; q < p; q++) {
                if (ml && mr && pp + 1 < qq && q == pp + 1) {
                        q = qq;
@@ -638,7 +641,15 @@ CRKcrackUnorderedZero_@2_@1_STxxx ( cons
                if (!(src_t[q] @8 mval))
                        fprintf(stderr,"b "BUNFMT": %d !@8 
%d\n",q,(int)src_t[q],(int)mval);
        }
+       
+        for(i_res=first; i_res<=last; i_res++)
+        {
+                assert((i_res<p && src_t[i_res] @7 mval) || (i_res>=p && 
src_t[i_res] @8 mval));
+                if(ml!=0 && mr!=0 && (i_res)==(first+ml-1))
+                        i_res=last+1-mr;
+        }
 #endif
+
        *pos_r = p;
 
  #ifdef CRACK_MUTLI_THREAD_DEBUG
@@ -961,7 +972,7 @@ CRKcrackUnorderedZero_@2_@1_MT ( const B
        assert(f != BUN_NONE);
        assert((f == last + 1 && src_t[f-1] @7 mval) || src_t[f]   @8 mval);
        assert((f == first    && src_t[f]   @8 mval) || src_t[f-1] @7 mval);
-#ifndef NDEBUG
+#ifdef NDEBUG
        for (l = first; l < f; l++)
                if (!(src_t[l] @7 mval))
                        fprintf(stderr,"c "BUNFMT": %d !@7 
%d\n",l,(int)src_t[l],(int)mval);
@@ -1201,6 +1212,41 @@ static str CRKvectorized_x_@2_@1 (
        assert (vectorR == vectorCount);
        //assert(lowerReadCursor == upperReadCursor || (lowerReadCursor == 
first_right && upperReadCursor == last_left + 1));
 
+
+#ifdef NDEBUG
+       BUN lwc = (BUN) lowerWriteCursor;
+       BUN uwc = (BUN) upperWriteCursor;
+       BUN fl = (BUN) first_left;
+       BUN ll = (BUN) last_left;
+       BUN fr = (BUN) first_right;
+       BUN lr = (BUN) last_right;
+       BUN i_res = 0;
+
+       assert(lwc >= fl);
+       assert(lwc <= lr + 1);
+       assert((fl == 0 && uwc >= fl) || (fl !=0 && uwc >= fl - 1));
+       assert(uwc <= lr);
+       assert(lwc > uwc);
+       assert(uwc == fl - 1 || src_t[uwc] @7  pivot);
+       assert(lwc == lr + 1 || src_t[lwc] @8 pivot);
+       if (ml && mr && ll + 1 < fr) {
+               if (lwc <= ll || uwc >= fr) {
+                       assert(lwc == uwc + 1);
+               } else {
+                       assert(lwc == fr && uwc == ll);
+               }
+       } else {
+               assert(lwc == uwc + 1);
+       }
+
+       /*for(i_res=first; i_res<=last; i_res++)
+       {
+               assert((i_res<p && src_t[i_res] @7 pivot) || (i_res>=p && 
src_t[i_res] @8 pivot));
+               if(ml!=0 && mr!=0 && (i_res)==(first+ml-1))
+                       i_res=last+1-mr;
+       }*/
+#endif
+
        *pos_r = lowerWriteCursor;
 
        GDKfree(src_h_local);
@@ -1257,6 +1303,7 @@ static str CRKvectorized_MT_@2_@1 (const
        remaining_elements += ((n - remaining_elements) % nthreads);
        last_vector_pos -= remaining_elements;
        mm -= ((n - remaining_elements) % nthreads);
+       assert((last-first+1) != (last_vector_pos-first+remaining_elements));
         if (alt == 1) {
                ml = 0;
                mr = 0;
@@ -1432,6 +1479,12 @@ static str CRKvectorized_MT_@2_@1 (const
                 }
         }
 
+#ifdef NDEBUG
+       BUN i_res = 0;
+        for(i_res=first;i_res<=last_vector_pos;i_res++)
+                assert((i_res<f && src_t[i_res] @7 pivot) || (i_res>=f && 
src_t[i_res] @8 pivot));
+#endif
+
        if(remaining_elements > 0)
        {
                BUN qualifying_elements = 0;
@@ -1466,6 +1519,13 @@ static str CRKvectorized_MT_@2_@1 (const
                if (lowerCursor == upperCursor && src_t[lowerCursor] @7 pivot)
                        qualifying_elements += 1;
 
+#ifdef NDEBUG
+               BUN i_res = 0;
+                for(i_res=last_vector_pos+1;i_res<=last;i_res++)
+                        assert((i_res<=last_vector_pos+qualifying_elements && 
src_t[i_res] @7 pivot) || (i_res>last_vector_pos+qualifying_elements && 
src_t[i_res] @8 pivot));
+
+#endif
+
 
                 if ((qualifying_elements == remaining_elements && f == 
last_vector_pos + 1) || (qualifying_elements == 0 && f == last_vector_pos + 1))
                 {
@@ -1511,6 +1571,12 @@ static str CRKvectorized_MT_@2_@1 (const
        assert((f == last + 1 && src_t[f-1] @7 pivot) || src_t[f]   @8 pivot);
        assert((f == first    && src_t[f]   @8 pivot) || src_t[f-1] @7 pivot);
 
+#ifdef NDEBUG
+       BUN i_res = 0;
+        for(i_res=first;i_res<=last;i_res++)
+                assert((i_res<f && src_t[i_res] @7 pivot) || (i_res>=f && 
src_t[i_res] @8 pivot));
+#endif
+
         *pos = (BUN) (f == 0 ? 0 : f - 1);
 
        GDKfree(tmp_h);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to