From a0a817ee8a82ce959d2f5b3d8e771bcb17b2d54a Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Thu, 27 Feb 2025 11:29:46 -0600 Subject: [PATCH] Add scaffolding for a new test-internals binary * There is a gcal_tests_add_internal() function... * called from tests/test-internals.c... * ... which doesn't add any tests yet, but we'll have some soon. Part-of: --- src/gui/event-editor/gcal-schedule-section.c | 6 ++++++ src/gui/event-editor/gcal-schedule-section.h | 8 ++++++++ src/gui/gcal-tests.c | 15 +++++++++++++++ src/gui/gcal-tests.h | 3 +++ src/gui/meson.build | 1 + tests/meson.build | 1 + tests/test-internals.c | 17 +++++++++++++++++ 7 files changed, 51 insertions(+) create mode 100644 src/gui/gcal-tests.c create mode 100644 src/gui/gcal-tests.h create mode 100644 tests/test-internals.c diff --git a/src/gui/event-editor/gcal-schedule-section.c b/src/gui/event-editor/gcal-schedule-section.c index 5cac4615..df13904d 100644 --- a/src/gui/event-editor/gcal-schedule-section.c +++ b/src/gui/event-editor/gcal-schedule-section.c @@ -949,3 +949,9 @@ gcal_schedule_values_free (GcalScheduleValues *values) g_free (values); } + +void +gcal_schedule_section_add_tests (void) +{ + /* g_test_add_func ("/event_editor/schedule_section/...", ...); */ +} diff --git a/src/gui/event-editor/gcal-schedule-section.h b/src/gui/event-editor/gcal-schedule-section.h index 04211c12..35ec0a46 100644 --- a/src/gui/event-editor/gcal-schedule-section.h +++ b/src/gui/event-editor/gcal-schedule-section.h @@ -23,6 +23,10 @@ #include #include +#include "gcal-enums.h" +#include "gcal-event.h" +#include "gcal-recurrence.h" + G_BEGIN_DECLS #define GCAL_TYPE_SCHEDULE_SECTION (gcal_schedule_section_get_type()) @@ -52,4 +56,8 @@ void gcal_schedule_values_free (GcalScheduleVa G_DEFINE_AUTOPTR_CLEANUP_FUNC (GcalScheduleValues, gcal_schedule_values_free); +/* Tests */ + +void gcal_schedule_section_add_tests (void); + G_END_DECLS diff --git a/src/gui/gcal-tests.c b/src/gui/gcal-tests.c new file mode 100644 index 00000000..979ba9fc --- /dev/null +++ b/src/gui/gcal-tests.c @@ -0,0 +1,15 @@ +#include + +#include "gcal-tests.h" +#include "event-editor/gcal-schedule-section.h" + +/* Adds all the tests for the internals of the GUI. + * + * To avoid exporting lots of little test functions from each source file, add a single + * gcal_foo_add_tests() that in turn adds unit tests for that file. + */ +void +gcal_tests_add_internals (void) +{ + gcal_schedule_section_add_tests (); +} diff --git a/src/gui/gcal-tests.h b/src/gui/gcal-tests.h new file mode 100644 index 00000000..346d13fc --- /dev/null +++ b/src/gui/gcal-tests.h @@ -0,0 +1,3 @@ +#pragma once + +void gcal_tests_add_internals (void); diff --git a/src/gui/meson.build b/src/gui/meson.build index 7fbebd2c..aff98194 100644 --- a/src/gui/meson.build +++ b/src/gui/meson.build @@ -52,6 +52,7 @@ sources += files( 'gcal-quick-add-popover.c', 'gcal-search-button.c', 'gcal-sync-indicator.c', + 'gcal-tests.c', 'gcal-weather-settings.c', 'gcal-window.c', ) diff --git a/tests/meson.build b/tests/meson.build index 29aff0a2..682fff56 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -35,6 +35,7 @@ tests = [ 'daylight-saving', #'discoverer', # https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1251 'event', + 'internals', 'range', 'range-tree', #'server', # https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1251 diff --git a/tests/test-internals.c b/tests/test-internals.c new file mode 100644 index 00000000..239e569c --- /dev/null +++ b/tests/test-internals.c @@ -0,0 +1,17 @@ +#include +#include + +#include "gui/gcal-tests.h" + +int +main (int argc, char **argv) +{ + g_setenv ("TZ", "UTC", TRUE); + + g_test_init (&argc, &argv, NULL); + g_test_bug_base ("https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/"); + + gcal_tests_add_internals (); + + return g_test_run (); +}