1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
|
#include "../src/import.h"
#include "../src/resize.h"
#include "../src/resources.h"
#include "test.h"
static kissat *new_solver (void) {
kissat *solver = kissat_init ();
tissat_init_solver (solver);
return solver;
}
static void test_init_zero (void) {
#ifndef QUIET
assert (kissat_verbosity (0) < 0);
#endif
kissat_warning (0, "YOU SHOULD NOT SEE THIS WARNING!");
kissat_signal (0, "YOU SHOULD NOT SEE THIS SIGNAL MESSAGE FOR ", 0);
}
static void test_init_release (void) {
kissat *solver = new_solver ();
kissat_release (solver);
}
static void test_init_enlarge_release (void) {
format format;
memset (&format, 0, sizeof format);
#ifndef QUIET
printf (
"before allocating solver %s\n",
kissat_format_bytes (&format, kissat_maximum_resident_set_size ()));
#endif
kissat *solver = new_solver ();
kissat_enlarge_variables (solver, 17);
for (int i = 1; i < (tissat_big ? 28 : 21); i++) {
kissat_enlarge_variables (solver, solver->vars + 1);
kissat_enlarge_variables (solver, 1 << i);
#ifndef QUIET
printf (
"after %d << 20 %s\n", i,
kissat_format_bytes (&format, kissat_maximum_resident_set_size ()));
#endif
}
if (tissat_big) {
kissat_enlarge_variables (solver, EXTERNAL_MAX_VAR);
#ifndef QUIET
printf (
"after %d %s\n", EXTERNAL_MAX_VAR,
kissat_format_bytes (&format, kissat_maximum_resident_set_size ()));
#endif
}
kissat_release (solver);
#ifndef QUIET
printf (
"after deallocating solver %s\n",
kissat_format_bytes (&format, kissat_maximum_resident_set_size ()));
#endif
}
static void test_init_import_release (void) {
kissat *solver = new_solver ();
(void) kissat_import_literal (solver, -1);
(void) kissat_import_literal (solver, 42);
if (tissat_big)
(void) kissat_import_literal (solver, EXTERNAL_MAX_VAR);
kissat_release (solver);
}
static void test_init_add_release (void) {
#ifndef NDEBUG
const int max_check = 1;
#else
const int max_check = 0;
#endif
for (int check = 0; check <= max_check; check++) {
kissat *solver = new_solver ();
kissat_set_option (solver, "log", 4);
#ifndef NDEBUG
kissat_set_option (solver, "check", check);
#endif
kissat_add (solver, 2);
kissat_add (solver, -12);
kissat_add (solver, 0);
kissat_add (solver, -17);
kissat_add (solver, -2);
kissat_add (solver, 0);
kissat_add (solver, -1);
kissat_add (solver, 1);
kissat_add (solver, -1);
kissat_add (solver, 1);
kissat_add (solver, 0);
kissat_add (solver, 7);
kissat_add (solver, 8);
kissat_add (solver, 7);
kissat_add (solver, 8);
kissat_add (solver, 7);
kissat_add (solver, 0);
kissat_add (solver, -7);
kissat_add (solver, -7);
kissat_add (solver, -7);
kissat_add (solver, -7);
kissat_add (solver, -7);
kissat_add (solver, 0);
kissat_add (solver, 9);
kissat_add (solver, 7);
kissat_add (solver, 0);
if (tissat_big) {
kissat_add (solver, EXTERNAL_MAX_VAR);
kissat_add (solver, 0);
}
kissat_release (solver);
}
}
void tissat_schedule_init (void) {
SCHEDULE_FUNCTION (test_init_zero);
SCHEDULE_FUNCTION (test_init_release);
SCHEDULE_FUNCTION (test_init_enlarge_release);
SCHEDULE_FUNCTION (test_init_import_release);
SCHEDULE_FUNCTION (test_init_add_release);
}
|