[evolution-ews] I#49 - Test suite is failing



commit a3c00e03c3b3e89d007e591b2646cb6ec86c73e1
Author: Milan Crha <mcrha redhat com>
Date:   Wed May 22 16:05:55 2019 +0200

    I#49 - Test suite is failing
    
    Closes https://gitlab.gnome.org/GNOME/evolution-ews/issues/49

 src/calendar/CMakeLists.txt            |   1 +
 src/calendar/e-cal-backend-ews-utils.c |   6 +-
 tests/CMakeLists.txt                   |   4 --
 tests/ews-test-common.c                |   1 +
 tests/ews-test-timezones.c             | 103 +++++++++++++++++++++++----------
 5 files changed, 78 insertions(+), 37 deletions(-)
---
diff --git a/src/calendar/CMakeLists.txt b/src/calendar/CMakeLists.txt
index fff441f5..4492b211 100644
--- a/src/calendar/CMakeLists.txt
+++ b/src/calendar/CMakeLists.txt
@@ -26,6 +26,7 @@ target_compile_definitions(ecalbackendews PRIVATE
        -DG_LOG_DOMAIN=\"ecalbackendews\"
        -DEXCHANGE_EWS_DATADIR=\"${ewsdatadir}\"
        -DEXCHANGE_EWS_LOCALEDIR=\"${LOCALE_INSTALL_DIR}\"
+       -DEXCHANGE_EWS_SRCDIR=\"${CMAKE_CURRENT_SOURCE_DIR}\"
 )
 
 target_compile_options(ecalbackendews PUBLIC
diff --git a/src/calendar/e-cal-backend-ews-utils.c b/src/calendar/e-cal-backend-ews-utils.c
index 3c0ace09..e7f410b3 100644
--- a/src/calendar/e-cal-backend-ews-utils.c
+++ b/src/calendar/e-cal-backend-ews-utils.c
@@ -80,7 +80,11 @@ e_cal_backend_ews_populate_windows_zones (void)
                return;
        }
 
-       filename = g_build_filename (EXCHANGE_EWS_DATADIR, "windowsZones.xml", NULL);
+       if (g_strcmp0 (g_getenv ("EWS_INTERNAL_TEST"), "1") == 0)
+               filename = g_build_filename (EXCHANGE_EWS_SRCDIR, "windowsZones.xml", NULL);
+       else
+               filename = g_build_filename (EXCHANGE_EWS_DATADIR, "windowsZones.xml", NULL);
+
        doc = xmlReadFile (filename, NULL, 0);
 
        if (doc == NULL) {
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 378b8d24..50a9b020 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -17,10 +17,6 @@ macro(add_ews_test _name)
                ${DEPENDENCIES}
        )
 
-       set_target_properties (${_name} PROPERTIES
-               BUILD_WITH_INSTALL_RPATH ON
-       )
-
        target_compile_definitions(${_name} PRIVATE
                -DG_LOG_DOMAIN=\"${_name}\"
                -DTEST_FILE_DIR=\"${CMAKE_CURRENT_SOURCE_DIR}\"
diff --git a/tests/ews-test-common.c b/tests/ews-test-common.c
index 21ef472c..2d1cf0d6 100644
--- a/tests/ews-test-common.c
+++ b/tests/ews-test-common.c
@@ -220,6 +220,7 @@ ews_test_init (gint argc,
        g_test_bug_base ("http://bugzilla.gnome.org/show_bug.cgi?id=";);
 
        g_setenv ("EWS_DEBUG", "3", TRUE);
+       g_setenv ("EWS_INTERNAL_TEST", "1", TRUE);
 
        mock_server = uhm_server_new ();
        uhm_server_set_default_tls_certificate (mock_server);
diff --git a/tests/ews-test-timezones.c b/tests/ews-test-timezones.c
index 2207890c..2ee3b60a 100644
--- a/tests/ews-test-timezones.c
+++ b/tests/ews-test-timezones.c
@@ -27,6 +27,7 @@
 void (* populate_windows_zones) (void);
 const gchar * (* ical_to_msdn_equivalent) (const gchar *);
 gboolean (* convert_calcomp_to_xml) (ESoapMessage *, gpointer, GError **);
+GType (* cal_backend_ews_get_type) (void);
 
 const gchar *str_comp =
        "BEGIN:VEVENT\n"
@@ -72,6 +73,29 @@ static const gchar *unknown_timezones[] = {
        "America/Adak",
        "America/Metlakatla",
        "Asia/Ho_Chi_Minh",
+       "Antarctica/Troll",
+       "America/Argentina/Buenos_Aires",
+       "America/Argentina/Cordoba",
+       "America/Argentina/Jujuy",
+       "America/Argentina/Catamarca",
+       "America/Argentina/Mendoza",
+       "America/Fort_Nelson",
+       "America/Punta_Arenas",
+       "Asia/Famagusta",
+       "Asia/Atyrau",
+       "Asia/Yangon",
+       "Asia/Kathmandu",
+       "Pacific/Bougainville",
+       "Europe/Kirov",
+       "Europe/Astrakhan",
+       "Europe/Saratov",
+       "Europe/Ulyanovsk",
+       "Asia/Barnaul",
+       "Asia/Tomsk",
+       "Asia/Chita",
+       "Asia/Srednekolymsk",
+       "America/Kentucky/Louisville",
+       "America/Indiana/Indianapolis",
        NULL
 };
 
@@ -147,8 +171,10 @@ test_time_zones_sync (gconstpointer user_data)
        GError *error = NULL;
        UhmServer *local_server;
        EwsTestData *etd = (gpointer) user_data;
-       EwsCalendarConvertData convert_data;
+       EwsCalendarConvertData convert_data = { 0, };
        EwsFolderId *calendar_fid = NULL;
+       ESourceRegistry *registry;
+       ESource *dummy_source;
        gboolean includes_last_folder = FALSE;
        gchar *old_sync_state = NULL;
        gchar **tokens;
@@ -169,9 +195,6 @@ test_time_zones_sync (gconstpointer user_data)
                GSList *folders_deleted = NULL;
                GSList *l;
                gchar *new_sync_state = NULL;
-               gboolean found = FALSE;
-
-               old_sync_state = new_sync_state;
 
                e_ews_connection_sync_folder_hierarchy_sync (
                        etd->connection,
@@ -199,11 +222,7 @@ test_time_zones_sync (gconstpointer user_data)
 
                                fid = e_ews_folder_get_id (folder);
 
-                               calendar_fid = g_new0 (EwsFolderId, 1);
-                               calendar_fid->id = g_strdup (fid->id);
-                               calendar_fid->change_key = g_strdup (fid->change_key);
-
-                               found = TRUE;
+                               calendar_fid = e_ews_folder_id_new (fid->id, fid->change_key, 
fid->is_distinguished_id);
                                break;
                        }
                }
@@ -213,9 +232,9 @@ test_time_zones_sync (gconstpointer user_data)
                g_slist_free_full (folders_deleted, g_free);
 
                g_free (old_sync_state);
-               old_sync_state = NULL;
+               old_sync_state = new_sync_state;
 
-               if (found) {
+               if (calendar_fid) {
                        g_free (new_sync_state);
                        break;
                }
@@ -226,8 +245,19 @@ test_time_zones_sync (gconstpointer user_data)
                goto exit;
        }
 
+       registry = e_source_registry_new_sync (NULL, NULL);
+       dummy_source = e_source_new (NULL, NULL, NULL);
+
        convert_data.connection = etd->connection;
        convert_data.default_zone = i_cal_timezone_get_utc_timezone ();
+       convert_data.timezone_cache = g_object_new (cal_backend_ews_get_type (),
+               "registry", registry,
+               "source", dummy_source,
+               "kind", I_CAL_VEVENT_COMPONENT,
+               NULL);
+
+       g_clear_object (&dummy_source);
+       g_clear_object (&registry);
 
        tokens = g_strsplit (str_comp, "ICAL_TIMEZONE", 0);
 
@@ -295,6 +325,9 @@ test_time_zones_sync (gconstpointer user_data)
                g_object_unref (zone);
        }
 
+       g_clear_object (&convert_data.timezone_cache);
+       g_strfreev (tokens);
+
        retval = zone_location_errors == NULL;
 
  exit:
@@ -309,6 +342,7 @@ test_time_zones_sync (gconstpointer user_data)
        }
 
        uhm_server_end_trace (local_server);
+       e_ews_folder_id_free (calendar_fid);
        g_clear_error (&error);
 
        g_assert (retval == TRUE);
@@ -322,6 +356,7 @@ int main (int argc,
        UhmServer *server;
        const gchar *module_path;
        GModule *module = NULL;
+       gpointer symbol = NULL;
 
        retval = ews_test_init (argc, argv);
 
@@ -345,33 +380,37 @@ int main (int argc,
                goto exit;
        }
 
-       if (!g_module_symbol (
-               module,
-               "e_cal_backend_ews_populate_windows_zones",
-               (gpointer *) &populate_windows_zones)) {
-                       g_printerr ("\n%s\n", g_module_error ());
-                       retval = 3;
-                       goto exit;
+       if (!g_module_symbol (module, "e_cal_backend_ews_populate_windows_zones", &symbol)) {
+               g_printerr ("\n%s\n", g_module_error ());
+               retval = 3;
+               goto exit;
        }
 
-       if (!g_module_symbol (
-               module,
-               "e_cal_backend_ews_tz_util_get_msdn_equivalent",
-               (gpointer *) &ical_to_msdn_equivalent)) {
-                       g_printerr ("\n%s\n", g_module_error ());
-                       retval = 4;
-                       goto exit;
+       populate_windows_zones = symbol;
+
+       if (!g_module_symbol (module, "e_cal_backend_ews_tz_util_get_msdn_equivalent", &symbol)) {
+               g_printerr ("\n%s\n", g_module_error ());
+               retval = 4;
+               goto exit;
        }
 
-       if (!g_module_symbol (
-               module,
-               "e_cal_backend_ews_convert_calcomp_to_xml",
-               (gpointer *) &convert_calcomp_to_xml)) {
-                       g_printerr ("\n%s\n", g_module_error ());
-                       retval = 5;
-                       goto exit;
+       ical_to_msdn_equivalent = symbol;
+
+       if (!g_module_symbol (module, "e_cal_backend_ews_convert_calcomp_to_xml", &symbol)) {
+               g_printerr ("\n%s\n", g_module_error ());
+               retval = 5;
+               goto exit;
+       }
+
+       convert_calcomp_to_xml = symbol;
+
+       if (!g_module_symbol (module, "e_cal_backend_ews_get_type", &symbol)) {
+               g_printerr ("\n%s\n", g_module_error ());
+               retval = 6;
+               goto exit;
        }
 
+       cal_backend_ews_get_type = symbol;
 
        server = ews_test_get_mock_server ();
        etds = ews_test_get_test_data_list ();


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]