z3-src 503.2.1

Source distribution of the Z3 SMT solver, for use as a build dependency
Documentation
#include "sat/sat_config.h"
#include "sat/sat_types.h"
#include "util/debug.h"
#include <cstring>

static bool rejects_drat_config(char const* parameter, unsigned value) {
    params_ref params;
    params.set_sym("drat.file", symbol("trace.out"));
    if (strcmp(parameter, "drat.disable") == 0)
        params.set_bool(parameter, value != 0);
    else
        params.set_uint(parameter, value);

    try {
        sat::config config(params);
    }
    catch (sat::sat_param_exception const&) {
        return true;
    }
    return false;
}

void tst_sat_config() {
    ENSURE(rejects_drat_config("threads", 2));
    ENSURE(rejects_drat_config("local_search_threads", 1));
    ENSURE(rejects_drat_config("ddfw.threads", 1));
    ENSURE(rejects_drat_config("drat.disable", 1));

    params_ref params;
    params.set_sym("drat.file", symbol("trace.out"));
    sat::config config(params);
    ENSURE(config.m_drat);

    params_ref threaded_params;
    threaded_params.set_uint("threads", 2);
    sat::config threaded_config(threaded_params);
    ENSURE(!threaded_config.m_drat);
}