3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-25 04:26:00 +00:00

ensure that assertions within the unit tests are exercised in all build modes, remove special handling of SASSERT for release mode #1163

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2017-07-26 20:28:55 -07:00
parent 3f8b63f5a8
commit b1298d7bde
67 changed files with 1277 additions and 1285 deletions

View file

@ -44,91 +44,91 @@ static void tst1(unsigned n) {
s2[idx] = false;
s1.remove(idx);
}
SASSERT(s1.num_elems() == size);
SASSERT((size == 0) == s1.empty());
ENSURE(s1.num_elems() == size);
ENSURE((size == 0) == s1.empty());
for (unsigned idx = 0; idx < n; idx++) {
SASSERT(s2[idx] == s1.contains(idx));
ENSURE(s2[idx] == s1.contains(idx));
}
}
}
static void tst2(unsigned n) {
uint_set s;
SASSERT(s.empty());
ENSURE(s.empty());
unsigned val = rand()%n;
s.insert(val);
SASSERT(!s.empty());
SASSERT(s.num_elems() == 1);
ENSURE(!s.empty());
ENSURE(s.num_elems() == 1);
for (unsigned i = 0; i < 100; i++) {
unsigned val2 = rand()%n;
if (val != val2) {
SASSERT(!s.contains(val2));
ENSURE(!s.contains(val2));
}
}
s.remove(val);
SASSERT(s.num_elems() == 0);
SASSERT(s.empty());
ENSURE(s.num_elems() == 0);
ENSURE(s.empty());
}
static void tst3(unsigned n) {
SASSERT(n > 10);
ENSURE(n > 10);
uint_set s1;
uint_set s2;
SASSERT(s1 == s2);
ENSURE(s1 == s2);
s1.insert(3);
SASSERT(s1.num_elems() == 1);
SASSERT(s2.num_elems() == 0);
SASSERT(s1 != s2);
ENSURE(s1.num_elems() == 1);
ENSURE(s2.num_elems() == 0);
ENSURE(s1 != s2);
s2.insert(5);
SASSERT(s2.num_elems() == 1);
SASSERT(s1 != s2);
SASSERT(!s1.subset_of(s2));
ENSURE(s2.num_elems() == 1);
ENSURE(s1 != s2);
ENSURE(!s1.subset_of(s2));
s2 |= s1;
SASSERT(s1.subset_of(s2));
SASSERT(s2.num_elems() == 2);
SASSERT(s1 != s2);
ENSURE(s1.subset_of(s2));
ENSURE(s2.num_elems() == 2);
ENSURE(s1 != s2);
s1 |= s2;
SASSERT(s1.subset_of(s2));
SASSERT(s2.subset_of(s1));
SASSERT(s1.num_elems() == 2);
SASSERT(s2.num_elems() == 2);
SASSERT(s1 == s2);
ENSURE(s1.subset_of(s2));
ENSURE(s2.subset_of(s1));
ENSURE(s1.num_elems() == 2);
ENSURE(s2.num_elems() == 2);
ENSURE(s1 == s2);
s1.insert(9);
SASSERT(s1.num_elems() == 3);
SASSERT(s2.num_elems() == 2);
ENSURE(s1.num_elems() == 3);
ENSURE(s2.num_elems() == 2);
s1.insert(9);
SASSERT(s1.num_elems() == 3);
SASSERT(s2.num_elems() == 2);
SASSERT(s2.subset_of(s1));
SASSERT(!s1.subset_of(s2));
SASSERT(s1 != s2);
ENSURE(s1.num_elems() == 3);
ENSURE(s2.num_elems() == 2);
ENSURE(s2.subset_of(s1));
ENSURE(!s1.subset_of(s2));
ENSURE(s1 != s2);
uint_set s3(s1);
SASSERT(s1 == s3);
SASSERT(s1.subset_of(s3));
SASSERT(s3.subset_of(s1));
SASSERT(s2 != s3);
ENSURE(s1 == s3);
ENSURE(s1.subset_of(s3));
ENSURE(s3.subset_of(s1));
ENSURE(s2 != s3);
uint_set s4(s2);
SASSERT(s2 == s4);
SASSERT(s2.subset_of(s4));
SASSERT(s4.subset_of(s2));
SASSERT(s2 != s3);
ENSURE(s2 == s4);
ENSURE(s2.subset_of(s4));
ENSURE(s4.subset_of(s2));
ENSURE(s2 != s3);
for (unsigned i = 0; i < n; i++) {
uint_set s5;
s5.insert(i);
SASSERT(s1.contains(i) == s5.subset_of(s1));
ENSURE(s1.contains(i) == s5.subset_of(s1));
}
}
static void tst4() {
uint_set s;
s.insert(32);
SASSERT(s.contains(32));
SASSERT(!s.contains(31));
SASSERT(!s.contains(0));
ENSURE(s.contains(32));
ENSURE(!s.contains(31));
ENSURE(!s.contains(0));
s.remove(32);
SASSERT(!s.contains(32));
SASSERT(!s.contains(31));
SASSERT(!s.contains(0));
ENSURE(!s.contains(32));
ENSURE(!s.contains(31));
ENSURE(!s.contains(0));
}
#include "map.h"