rizin/test/unit/test_config.c
Riccardo Schirone 75fc447873
Fix some memleaks in unit tests (#1869)
* Cleanup RzAnalysisRzil when freeing RzAnalysis

* Fix str leaking in rz_core_write_string_at

* Fix buf leaking in rz_core_yank_paste

* Fix memleak in json unit tests

* Fix features leaking in RzBinInfo

* Fix features leaking in RzAsm

* Fix memleaks in RzTable

* Fix test_str_search memleaks

* Fix memleak in test_io.c

* Fix memleaks in RzBuf and test_buf.c

* Fix memleaks in test_cmd.c

* Fix memleaks in test_config.c

* Fix memleaks in RzCons

* Fix hashes leaking in test_bin.c

* Fix memleaks in test_id_storage.c

* Fix memleaks in test_il*.c and adjust APIs
2021-10-22 09:33:20 +08:00

61 lines
1.6 KiB
C

// SPDX-FileCopyrightText: 2021 Anton Kochkov <anton.kochkov@gmail.com>
// SPDX-License-Identifier: LGPL-3.0-only
#include <rz_config.h>
#include "minunit.h"
bool test_config() {
RzConfig *cfg = rz_config_new(NULL);
// string variables
rz_config_set(cfg, "foo.bar", "bla");
const char *bla = rz_config_get(cfg, "foo.bar");
mu_assert_streq(bla, "bla", "String variable");
// integer variables
rz_config_set_i(cfg, "universe.question", 42);
int answer = rz_config_get_i(cfg, "universe.question");
mu_assert_eq(answer, 42, "Integer variable");
// boolean variables
rz_config_set_b(cfg, "true.or.false", true);
bool what = rz_config_get_b(cfg, "true.or.false");
mu_assert_eq(what, true, "Boolean variable");
rz_config_toggle(cfg, "true.or.false");
what = rz_config_get_b(cfg, "true.or.false");
mu_assert_eq(what, false, "Boolean variable (toggle)");
rz_config_free(cfg);
mu_end;
}
bool test_config_lock() {
RzConfig *cfg = rz_config_new(NULL);
cfg->lock = 1;
// string variables
rz_config_set(cfg, "foo.bar", "bla");
const char *bla = rz_config_get(cfg, "foo.bar");
mu_assert_null(bla, "String variable (locked)");
// integer variables
rz_config_set_i(cfg, "universe.question", 42);
int answer = rz_config_get_i(cfg, "universe.question");
mu_assert_neq(answer, 42, "Integer variable (locked)");
// boolean variables
rz_config_set_b(cfg, "true.or.false", true);
bool what = rz_config_get_b(cfg, "true.or.false");
mu_assert_false(what, "Boolean variable (locked)");
rz_config_free(cfg);
mu_end;
}
bool all_tests() {
mu_run_test(test_config);
mu_run_test(test_config_lock);
return tests_passed != tests_run;
}
mu_main(all_tests)