3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-26 18:45:33 +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

@ -31,30 +31,30 @@ static void tst1() {
bool val = (rand()%2) != 0;
v1.push_back(val);
v2.push_back(val);
SASSERT(v1.size() == v2.size());
ENSURE(v1.size() == v2.size());
}
else if (op <= 3) {
SASSERT(v1.size() == v2.size());
ENSURE(v1.size() == v2.size());
if (v1.size() > 0) {
bool val = (rand()%2) != 0;
unsigned idx = rand()%v1.size();
SASSERT(v1.get(idx) == v2[idx]);
ENSURE(v1.get(idx) == v2[idx]);
v1.set(idx, val);
v2[idx] = val;
SASSERT(v1.get(idx) == v2[idx]);
ENSURE(v1.get(idx) == v2[idx]);
}
}
else if (op <= 4) {
SASSERT(v1.size() == v2.size());
ENSURE(v1.size() == v2.size());
if (v1.size() > 0) {
unsigned idx = rand()%v1.size();
VERIFY(v1.get(idx) == v2[idx]);
}
}
else if (op <= 5) {
SASSERT(v1.size() == v2.size());
ENSURE(v1.size() == v2.size());
for (unsigned j = 0; j < v1.size(); j++) {
SASSERT(v1.get(j) == v2[j]);
ENSURE(v1.get(j) == v2[j]);
}
}
}
@ -66,11 +66,11 @@ static void tst2() {
b.push_back(false);
b.push_back(true);
b.resize(30);
SASSERT(b.get(0) == true);
SASSERT(b.get(1) == false);
SASSERT(b.get(2) == true);
SASSERT(b.get(3) == false);
SASSERT(b.get(29) == false);
ENSURE(b.get(0) == true);
ENSURE(b.get(1) == false);
ENSURE(b.get(2) == true);
ENSURE(b.get(3) == false);
ENSURE(b.get(29) == false);
}
static void tst_shift() {
@ -116,14 +116,14 @@ static void tst_or() {
std::cout << b1 << "\n";
std::cout << b2 << "\n";
b1 |= b2;
SASSERT(b1.size() == 10);
ENSURE(b1.size() == 10);
std::cout << b1 << "\n";
SASSERT(b1 != b2);
SASSERT(b1 != b2);
ENSURE(b1 != b2);
ENSURE(b1 != b2);
b1.unset(4);
SASSERT(b1 == b2);
ENSURE(b1 == b2);
b1.unset(3);
SASSERT(b1 != b2);
ENSURE(b1 != b2);
}
{
bit_vector b1;
@ -133,9 +133,9 @@ static void tst_or() {
b1.set(0);
b2.set(4);
b1 |= b2;
SASSERT(b1 != b2);
ENSURE(b1 != b2);
b2.set(0);
SASSERT(b1 == b2);
ENSURE(b1 == b2);
std::cout << "-----\n";
std::cout << b1 << "\n";
}
@ -149,9 +149,9 @@ static void tst_or() {
b2.set(3);
b2.resize(5);
b1 |= b2;
SASSERT(!b1.get(8));
SASSERT(b1.get(5));
SASSERT(b1.get(3));
ENSURE(!b1.get(8));
ENSURE(b1.get(5));
ENSURE(b1.get(3));
}
{
bit_vector b1;
@ -166,17 +166,17 @@ static void tst_or() {
b2.set(80);
b1.set(4);
b2.set(4);
SASSERT(b1!=b2);
ENSURE(b1!=b2);
b2.resize(123);
SASSERT(b1!=b2);
ENSURE(b1!=b2);
b1.resize(120);
b2.resize(120);
SASSERT(b1==b2);
ENSURE(b1==b2);
b1.unset(80);
b1.unset(100);
SASSERT(b1!=b2);
ENSURE(b1!=b2);
b1 |= b2;
SASSERT(b1 == b2);
ENSURE(b1 == b2);
}
{
bit_vector b1;
@ -188,8 +188,8 @@ static void tst_or() {
b2.set(1);
b1.set(0);
b1 |= b2;
SASSERT(b1.size() == 10);
SASSERT(b1.get(8) && b1.get(4) && b1.get(1) && b1.get(0) && !b1.get(9));
ENSURE(b1.size() == 10);
ENSURE(b1.get(8) && b1.get(4) && b1.get(1) && b1.get(0) && !b1.get(9));
}
{
bit_vector b1;
@ -201,7 +201,7 @@ static void tst_or() {
b2.set(8);
b2.set(0);
b1 |= b2;
SASSERT(b1.get(1) && b1.get(5) && b1.get(8) && b1.get(0) && !b1.get(11));
ENSURE(b1.get(1) && b1.get(5) && b1.get(8) && b1.get(0) && !b1.get(11));
std::cout << "b1(size32): " << b1 << "\n";
}
}
@ -218,8 +218,8 @@ static void tst_and() {
std::cout << "------\nb1: " << b1 << "\n";
b1 &= b2;
std::cout << "------\nb1: " << b1 << "\n";
SASSERT(!b1.get(4));
SASSERT(b1.get(2));
ENSURE(!b1.get(4));
ENSURE(b1.get(2));
}
{
bit_vector b1;
@ -234,7 +234,7 @@ static void tst_and() {
b2.set(127);
b2.set(5);
b1 &= b2;
SASSERT(!b1.get(240) && !b1.get(232) && !b1.get(128) && b1.get(127) && !b1.get(8) && !b1.get(5));
ENSURE(!b1.get(240) && !b1.get(232) && !b1.get(128) && b1.get(127) && !b1.get(8) && !b1.get(5));
}
}
@ -243,17 +243,17 @@ static void tst_crash() {
bit_vector b;
b.push_back(true);
b.resize(64);
SASSERT(!b.get(63));
SASSERT(b.get(0));
SASSERT(!b.get(1));
ENSURE(!b.get(63));
ENSURE(b.get(0));
ENSURE(!b.get(1));
}
{
bit_vector b;
b.push_back(false);
b.resize(64, true);
SASSERT(b.get(63));
SASSERT(!b.get(0));
SASSERT(b.get(1));
ENSURE(b.get(63));
ENSURE(!b.get(0));
ENSURE(b.get(1));
}
}
@ -264,12 +264,12 @@ static void tst_bv_reset() {
b.reset();
b.resize(sz, bit);
for (unsigned i = 0; i < sz; ++i) {
SASSERT(bit == b.get(i));
ENSURE(bit == b.get(i));
}
for (unsigned sz2 = sz; sz2 < sz+10; ++sz2) {
b.resize(sz2, !bit);
for (unsigned i = sz; i < sz2; ++i) {
SASSERT(bit != b.get(i));
ENSURE(bit != b.get(i));
}
}
bit = !bit;
@ -283,19 +283,19 @@ static void tst_eq() {
b3.resize(32);
b1.set(3, true);
SASSERT(b1 != b2);
SASSERT(!(b1 == b2));
SASSERT(b2 == b3);
ENSURE(b1 != b2);
ENSURE(!(b1 == b2));
ENSURE(b2 == b3);
b3.set(3, true);
SASSERT(b1 == b3);
SASSERT(!(b1 != b3));
ENSURE(b1 == b3);
ENSURE(!(b1 != b3));
b2.set(31, true);
b3.set(31);
b3.unset(3);
SASSERT(b2 == b3);
SASSERT(!(b2 != b3));
ENSURE(b2 == b3);
ENSURE(!(b2 != b3));
}
void tst_bit_vector() {