Skip to content

Commit

Permalink
Remove use of check for tests
Browse files Browse the repository at this point in the history
  • Loading branch information
sebastinas committed Jun 19, 2024
1 parent 23b4ed7 commit 3b14422
Show file tree
Hide file tree
Showing 10 changed files with 459 additions and 654 deletions.
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ For building girara, the following dependencies are also required:

The following dependencies are optional build-time only dependencies:

* `check` (>= 0.11): for tests
* `doxygen`: HTML documentation

To disable the optional support for `json-glib-1.0`, configure the build system
Expand Down
67 changes: 47 additions & 20 deletions tests/meson.build
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
check = dependency('check', required: get_option('tests'), version: '>=0.11')
if check.found()
if get_option('tests').allowed()
test_dependencies = [
declare_dependency(link_with: girara),
check
]

include_directories += [ include_directories('../girara') ]
Expand All @@ -13,36 +11,47 @@ if check.found()
c_args: defines + flags
)

datastructures = executable('test_datastructures', ['test_datastructures.c', 'tests.c'],
datastructures = executable('test_datastructures', files('test_datastructures.c'),
dependencies: build_dependencies + test_dependencies,
include_directories: include_directories,
c_args: defines + flags
)
test('datastructures', datastructures,
timeout: 60*60
timeout: 60*60,
protocol: 'tap',
env: [
'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir())
]
)

template = executable('test_template', ['test_template.c', 'tests.c'],
template = executable('test_template', files('test_template.c'),
dependencies: build_dependencies + test_dependencies,
include_directories: include_directories,
c_args: defines + flags
)
test('template', template,
timeout: 60*60
timeout: 60*60,
protocol: 'tap',
env: [
'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir())
]
)

utils = executable('test_utils', ['test_utils.c', 'tests.c'],
utils = executable('test_utils', files('test_utils.c'),
dependencies: build_dependencies + test_dependencies,
include_directories: include_directories,
c_args: defines + flags
)

env = environment()
env.set('XDG_TEST_HELPER_PATH', meson.current_build_dir())
env.set('HOME', '/home/test')
test('utils-with-home', utils,
env: env,
timeout: 60*60
timeout: 60*60,
protocol: 'tap',
env: [
'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir()),
'HOME=/home/test'
]
)

xvfb = find_program('xvfb-run', required: get_option('tests'))
Expand All @@ -56,37 +65,55 @@ if check.found()
xvfb_args += ['-a']
endif

config = executable('test_config', ['test_config.c', 'tests.c'],
config = executable('test_config', files('test_config.c'),
dependencies: build_dependencies + test_dependencies,
include_directories: include_directories,
c_args: defines + flags
)
test('config', xvfb,
args: xvfb_args + [config],
timeout: 60*60,
is_parallel: false
is_parallel: false,
protocol: 'tap',
env: [
'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir()),
'NO_AT_BRIDGE=1'
]
)

session = executable('test_session', ['test_session.c', 'tests.c'],
session = executable('test_session', files('test_session.c'),
dependencies: build_dependencies + test_dependencies,
include_directories: include_directories,
c_args: defines + flags
)
test('session', xvfb,
args: xvfb_args + [session],
timeout: 60*60,
is_parallel: false
is_parallel: false,
protocol: 'tap',
env: [
'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir()),
'NO_AT_BRIDGE=1'
]
)

setting = executable('test_setting', ['test_setting.c', 'tests.c'],
setting = executable('test_setting', files('test_setting.c'),
dependencies: build_dependencies + test_dependencies,
include_directories: include_directories,
c_args: defines + flags
)
test('setting', xvfb,
args: xvfb_args + [setting],
timeout: 60*60,
is_parallel: false
is_parallel: false,
protocol: 'tap',
env: [
'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir()),
'NO_AT_BRIDGE=1'
]
)
endif
endif
62 changes: 24 additions & 38 deletions tests/test_config.c
Original file line number Diff line number Diff line change
@@ -1,69 +1,55 @@
/* SPDX-License-Identifier: Zlib */

#include <check.h>
#include <glib.h>
#include <glib/gstdio.h>
#include <unistd.h>

#include "session.h"
#include "settings.h"
#include "config.h"

#include "tests.h"

START_TEST(test_config_parse) {
static void test_config_parse(void) {
setup_logger();

girara_session_t* session = girara_session_create();
ck_assert_msg(session != NULL, "Failed to create girara session.");
g_assert_nonnull(session);

int default_val = 1;
ck_assert_msg(girara_setting_add(session, "test1", "default-string", STRING, false, NULL, NULL, NULL),
"Failed to add setting 'test1'");
ck_assert_msg(girara_setting_add(session, "test2", &default_val, INT, false, NULL, NULL, NULL),
"Failed to add setting 'test2'");
g_assert_true(girara_setting_add(session, "test1", "default-string", STRING, false, NULL, NULL, NULL));
g_assert_true(girara_setting_add(session, "test2", &default_val, INT, false, NULL, NULL, NULL));

char* filename = NULL;
int fd = g_file_open_tmp(NULL, &filename, NULL);
ck_assert_msg(fd != -1 && filename != NULL, "Couldn't open temporary file.");
GError* error = NULL;
int fd = g_file_open_tmp(NULL, &filename, NULL);
g_assert_cmpint(fd, !=, -1);
g_assert_nonnull(filename);
if (g_file_set_contents(filename,
"set test1 config-string\n" \
"set test2 2\n", -1, &error) == FALSE) {
ck_abort_msg("Couldn't set content: %s", error->message);
g_error_free(error);
"set test1 config-string\n"
"set test2 2\n",
-1, NULL) == FALSE) {
g_assert_not_reached();
}
girara_config_parse(session, filename);

char* ptr = NULL;
ck_assert_msg(girara_setting_get(session, "test1", &ptr), "Failed to get setting 'test1'.");
ck_assert_msg(g_strcmp0(ptr, "config-string") == 0, "Value of 'test1' doesn't match (got: %s, expected: %s",
ptr, "config-string");
g_assert_true(girara_setting_get(session, "test1", &ptr));
g_assert_cmpstr(ptr, ==, "config-string");
g_free(ptr);

int real_val = 0;
ck_assert_msg(girara_setting_get(session, "test2", &real_val), "Failed to get setting 'test1'.");
ck_assert_msg(real_val == 2, "Value of 'test2' doesn't match (got: %d, expected: %d",
real_val, 2);
g_assert_true(girara_setting_get(session, "test2", &real_val));
g_assert_cmpint(real_val, ==, 2);

close(fd);
ck_assert_msg(g_remove(filename) == 0, "Failed to remove temporary file.");
g_remove(filename);
g_free(filename);
girara_session_destroy(session);
} END_TEST

static Suite* suite_config(void)
{
TCase* tcase = NULL;
Suite* suite = suite_create("Config");

/* parse */
tcase = tcase_create("parse");
tcase_add_checked_fixture(tcase, setup, NULL);
tcase_add_test(tcase, test_config_parse);
suite_add_tcase(suite, tcase);

return suite;
}

int main()
{
return run_suite(suite_config());
int main(int argc, char* argv[]) {
gtk_init(NULL, NULL);
g_test_init(&argc, &argv, NULL);
g_test_add_func("/config/parse", test_config_parse);
return g_test_run();
}
Loading

0 comments on commit 3b14422

Please sign in to comment.