| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- /*
- * libcsync -- a library to sync a directory with another
- *
- * Copyright (c) 2008-2013 by Andreas Schneider <asn@cryptomilk.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
- #include <sys/types.h>
- #include <sys/stat.h>
- #include "torture.h"
- #include "csync.h"
- #include "csync_log.c"
- #include "c_private.h"
- static int setup(void **state) {
- CSYNC *csync;
- int rc;
- rc = system("mkdir -p /tmp/check_csync1");
- assert_int_equal(rc, 0);
- csync_create(&csync, "/tmp/check_csync1");
- *state = csync;
-
- return 0;
- }
- static int teardown(void **state) {
- CSYNC *csync = *state;
- int rc;
- rc = csync_destroy(csync);
- rc = system("rm -rf /tmp/check_csync");
- assert_int_equal(rc, 0);
- rc = system("rm -rf /tmp/check_csync1");
- assert_int_equal(rc, 0);
- *state = NULL;
-
- return 0;
- }
- static void check_log_callback(int verbosity,
- const char *function,
- const char *buffer)
- {
- int rc;
- assert_true(verbosity >= 0);
- assert_non_null(function);
- assert_false(function[0] == '\0');
- assert_non_null(buffer);
- assert_false(buffer[0] == '\0');
- rc = system("touch /tmp/check_csync1/cb_called");
- assert_int_equal(rc, 0);
- }
- static void check_set_log_level(void **state)
- {
- int rc;
- (void) state;
- rc = csync_set_log_level(-5);
- assert_int_equal(rc, -1);
- rc = csync_set_log_level(5);
- assert_int_equal(rc, 0);
- rc = csync_get_log_level();
- assert_int_equal(rc, 5);
- }
- static void check_set_auth_callback(void **state)
- {
- csync_log_callback log_fn;
- int rc;
- (void) state;
- rc = csync_set_log_callback(NULL);
- assert_int_equal(rc, -1);
- rc = csync_set_log_callback(check_log_callback);
- assert_int_equal(rc, 0);
- log_fn = csync_get_log_callback();
- assert_non_null(log_fn);
- assert_true(log_fn == &check_log_callback);
- }
- static void check_logging(void **state)
- {
- int rc;
- csync_stat_t sb;
- mbchar_t *path;
- path = c_utf8_path_to_locale("/tmp/check_csync1/cb_called");
- (void) state; /* unused */
- assert_non_null(path);
- rc = csync_set_log_level(1);
- assert_int_equal(rc, 0);
- rc = csync_set_log_callback(check_log_callback);
- assert_int_equal(rc, 0);
- csync_log(1, __func__, "rc = %d", rc);
- rc = _tstat(path, &sb);
- c_free_locale_string(path);
- assert_int_equal(rc, 0);
- }
- int torture_run_tests(void)
- {
- const struct CMUnitTest tests[] = {
- cmocka_unit_test(check_set_log_level),
- cmocka_unit_test(check_set_auth_callback),
- cmocka_unit_test_setup_teardown(check_logging, setup, teardown),
- };
- return cmocka_run_group_tests(tests, NULL, NULL);
- }
|