summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan-Michael Brummer <jan.brummer@tabos.org>2023-03-09 14:52:52 +0100
committerJan-Michael Brummer <jan.brummer@tabos.org>2023-03-27 16:31:58 +0200
commite7713214c85ded42112aefdd05bf7af37a80fd6e (patch)
treef755710da22336152cc7c9ffe5ab465b7b9ffe60
parent1752685aa329e434d0410a8d865722c294efe137 (diff)
downloadlibproxy-git-e7713214c85ded42112aefdd05bf7af37a80fd6e.tar.gz
Add config-option property (#68)
In order to reduce the number of environment manipulation for testing purpose, introduce a new config-option property to set config files for tests.
-rw-r--r--src/backend/plugins/config-env/config-env.c41
-rw-r--r--src/backend/plugins/config-gnome/config-gnome.c43
-rw-r--r--src/backend/plugins/config-kde/config-kde.c68
-rw-r--r--src/backend/plugins/config-sysconfig/config-sysconfig.c69
-rw-r--r--src/backend/px-manager.c38
-rw-r--r--src/backend/px-manager.h2
-rw-r--r--src/backend/px-plugin-config.c8
-rw-r--r--tests/config-env-test.c2
-rw-r--r--tests/config-gnome-test.c8
-rw-r--r--tests/config-kde-test.c34
-rw-r--r--tests/config-sysconfig-test.c7
-rw-r--r--tests/px-manager-helper.c10
-rw-r--r--tests/px-manager-helper.h2
-rw-r--r--tests/px-manager-test.c14
14 files changed, 281 insertions, 65 deletions
diff --git a/src/backend/plugins/config-env/config-env.c b/src/backend/plugins/config-env/config-env.c
index bec1d72..af13de6 100644
--- a/src/backend/plugins/config-env/config-env.c
+++ b/src/backend/plugins/config-env/config-env.c
@@ -43,6 +43,11 @@ G_DEFINE_FINAL_TYPE_WITH_CODE (PxConfigEnv,
G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (PX_TYPE_CONFIG, px_config_iface_init))
+enum {
+ PROP_0,
+ PROP_CONFIG_OPTION
+};
+
static void
px_config_env_init (PxConfigEnv *self)
{
@@ -80,11 +85,47 @@ px_config_env_dispose (GObject *object)
}
static void
+px_config_env_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ switch (prop_id) {
+ case PROP_CONFIG_OPTION:
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+px_config_env_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ switch (prop_id) {
+ case PROP_CONFIG_OPTION:
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
px_config_env_class_init (PxConfigEnvClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->dispose = px_config_env_dispose;
+ object_class->set_property = px_config_env_set_property;
+ object_class->get_property = px_config_env_get_property;
+
+ g_object_class_override_property (object_class, PROP_CONFIG_OPTION, "config-option");
}
static gboolean
diff --git a/src/backend/plugins/config-gnome/config-gnome.c b/src/backend/plugins/config-gnome/config-gnome.c
index f5c8008..0041c1b 100644
--- a/src/backend/plugins/config-gnome/config-gnome.c
+++ b/src/backend/plugins/config-gnome/config-gnome.c
@@ -49,6 +49,11 @@ G_DEFINE_FINAL_TYPE_WITH_CODE (PxConfigGnome,
G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (PX_TYPE_CONFIG, px_config_iface_init))
+enum {
+ PROP_0,
+ PROP_CONFIG_OPTION
+};
+
static void
px_config_gnome_init (PxConfigGnome *self)
{
@@ -74,8 +79,46 @@ px_config_gnome_init (PxConfigGnome *self)
}
static void
+px_config_gnome_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ switch (prop_id) {
+ case PROP_CONFIG_OPTION:
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+px_config_gnome_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ switch (prop_id) {
+ case PROP_CONFIG_OPTION:
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
px_config_gnome_class_init (PxConfigGnomeClass *klass)
{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->set_property = px_config_gnome_set_property;
+ object_class->get_property = px_config_gnome_get_property;
+
+ g_object_class_override_property (object_class, PROP_CONFIG_OPTION, "config-option");
}
static gboolean
diff --git a/src/backend/plugins/config-kde/config-kde.c b/src/backend/plugins/config-kde/config-kde.c
index 3fb6d1c..24fb9e1 100644
--- a/src/backend/plugins/config-kde/config-kde.c
+++ b/src/backend/plugins/config-kde/config-kde.c
@@ -40,6 +40,7 @@ typedef enum {
struct _PxConfigKde {
GObject parent_instance;
+ char *config_option;
gboolean available;
char *no_proxy;
@@ -56,6 +57,11 @@ G_DEFINE_FINAL_TYPE_WITH_CODE (PxConfigKde,
G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (PX_TYPE_CONFIG, px_config_iface_init))
+enum {
+ PROP_0,
+ PROP_CONFIG_OPTION
+};
+
static void
px_config_kde_read_config (PxConfigKde *self,
char *proxy_file)
@@ -118,11 +124,17 @@ px_config_kde_read_config (PxConfigKde *self,
} while (line);
}
-static void
-px_config_kde_init (PxConfigKde *self)
+static
+void
+px_config_kde_set_config_file (PxConfigKde *self,
+ const char *file)
{
- const char *test_file = g_getenv ("PX_CONFIG_KDE");
- g_autofree char *config = test_file ? g_strdup (test_file) : g_build_filename (g_get_user_config_dir (), "kioslaverc", NULL);
+ g_autofree char *config = NULL;
+
+ g_clear_pointer (&self->config_option, g_free);
+ self->config_option = file ? g_strdup (file) : NULL;
+
+ config = self->config_option ? g_strdup (self->config_option) : g_build_filename (g_get_user_config_dir (), "kioslaverc", NULL);
self->available = g_file_test (config, G_FILE_TEST_EXISTS);
if (self->available)
@@ -130,17 +142,65 @@ px_config_kde_init (PxConfigKde *self)
}
static void
+px_config_kde_init (PxConfigKde *self)
+{
+ px_config_kde_set_config_file (self, NULL);
+}
+
+static void
px_config_kde_dispose (GObject *object)
{
G_OBJECT_CLASS (px_config_kde_parent_class)->dispose (object);
}
static void
+px_config_kde_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ PxConfigKde *config = PX_CONFIG_KDE (object);
+
+ switch (prop_id) {
+ case PROP_CONFIG_OPTION:
+ px_config_kde_set_config_file (config, g_value_dup_string (value));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+px_config_kde_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ PxConfigKde *config = PX_CONFIG_KDE (object);
+
+ switch (prop_id) {
+ case PROP_CONFIG_OPTION:
+ g_value_set_string (value, config->config_option);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
px_config_kde_class_init (PxConfigKdeClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->dispose = px_config_kde_dispose;
+ object_class->set_property = px_config_kde_set_property;
+ object_class->get_property = px_config_kde_get_property;
+
+ g_object_class_override_property (object_class, PROP_CONFIG_OPTION, "config-option");
}
static gboolean
diff --git a/src/backend/plugins/config-sysconfig/config-sysconfig.c b/src/backend/plugins/config-sysconfig/config-sysconfig.c
index 77c7fe1..d7a1fa1 100644
--- a/src/backend/plugins/config-sysconfig/config-sysconfig.c
+++ b/src/backend/plugins/config-sysconfig/config-sysconfig.c
@@ -30,6 +30,7 @@ struct _PxConfigSysConfig {
GObject parent_instance;
char *proxy_file;
+ char *config_option;
gboolean available;
gboolean proxy_enabled;
@@ -47,17 +48,27 @@ G_DEFINE_FINAL_TYPE_WITH_CODE (PxConfigSysConfig,
G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (PX_TYPE_CONFIG, px_config_iface_init))
-static void
-px_config_sysconfig_init (PxConfigSysConfig *self)
+enum {
+ PROP_0,
+ PROP_CONFIG_OPTION
+};
+
+static
+void
+px_config_sysconfig_set_config_file (PxConfigSysConfig *self,
+ const char *config_file)
{
+ g_autofree char *config = NULL;
g_autoptr (GFile) file = NULL;
g_autoptr (GError) error = NULL;
g_autoptr (GFileInputStream) istr = NULL;
g_autoptr (GDataInputStream) dstr = NULL;
- const char *test_file = g_getenv ("PX_CONFIG_SYSCONFIG");
char *line = NULL;
- self->proxy_file = g_strdup (test_file ? test_file : "/etc/sysconfig/proxy");
+ g_clear_pointer (&self->config_option, g_free);
+ self->config_option = config_file ? g_strdup (config_file) : NULL;
+
+ self->proxy_file = g_strdup (self->config_option ? self->config_option : "/etc/sysconfig/proxy");
self->available = FALSE;
file = g_file_new_for_path (self->proxy_file);
@@ -110,8 +121,58 @@ px_config_sysconfig_init (PxConfigSysConfig *self)
}
static void
+px_config_sysconfig_init (PxConfigSysConfig *self)
+{
+ px_config_sysconfig_set_config_file (self, NULL);
+}
+
+static void
+px_config_sysconfig_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ PxConfigSysConfig *config = PX_CONFIG_SYSCONFIG (object);
+
+ switch (prop_id) {
+ case PROP_CONFIG_OPTION:
+ px_config_sysconfig_set_config_file (config, g_value_dup_string (value));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+px_config_sysconfig_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ PxConfigSysConfig *config = PX_CONFIG_SYSCONFIG (object);
+
+ switch (prop_id) {
+ case PROP_CONFIG_OPTION:
+ g_value_set_string (value, config->config_option);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
px_config_sysconfig_class_init (PxConfigSysConfigClass *klass)
{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->set_property = px_config_sysconfig_set_property;
+ object_class->get_property = px_config_sysconfig_get_property;
+
+ g_object_class_override_property (object_class, PROP_CONFIG_OPTION, "config-option");
}
static gboolean
diff --git a/src/backend/px-manager.c b/src/backend/px-manager.c
index 0eabf1b..f69dab3 100644
--- a/src/backend/px-manager.c
+++ b/src/backend/px-manager.c
@@ -32,6 +32,7 @@ enum {
PROP_0,
PROP_PLUGINS_DIR,
PROP_CONFIG_PLUGIN,
+ PROP_CONFIG_OPTION,
LAST_PROP
};
@@ -55,6 +56,7 @@ struct _PxManager {
GCancellable *cancellable;
char *config_plugin;
+ char *config_option;
gboolean online;
gboolean wpad;
@@ -106,7 +108,7 @@ px_manager_constructed (GObject *object)
peas_engine_add_search_path (self->engine, self->plugins_dir, NULL);
- self->config_set = peas_extension_set_new (self->engine, PX_TYPE_CONFIG, NULL);
+ self->config_set = peas_extension_set_new (self->engine, PX_TYPE_CONFIG, "config-option", self->config_option, NULL);
self->pacrunner_set = peas_extension_set_new (self->engine, PX_TYPE_PACRUNNER, NULL);
list = peas_engine_get_plugin_list (self->engine);
@@ -183,6 +185,9 @@ px_manager_set_property (GObject *object,
case PROP_CONFIG_PLUGIN:
self->config_plugin = g_strdup (g_value_get_string (value));
break;
+ case PROP_CONFIG_OPTION:
+ self->config_option = g_strdup (g_value_get_string (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
@@ -227,6 +232,12 @@ px_manager_class_init (PxManagerClass *klass)
NULL,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_CONFIG_OPTION] = g_param_spec_string ("config-option",
+ NULL,
+ NULL,
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+
g_object_class_install_properties (object_class, LAST_PROP, obj_properties);
}
@@ -236,6 +247,29 @@ px_manager_init (PxManager *self)
}
/**
+ * px_manager_new_with_options:
+ * @optname1: name of first property to set
+ * @...: value of @optname1, followed by additional property/value pairs
+ *
+ * Create a new `PxManager` with the specified options.
+ *
+ * Returns: the newly created `PxManager`
+ */
+PxManager *
+px_manager_new_with_options (const char *optname1,
+ ...)
+{
+ PxManager *self;
+ va_list ap;
+
+ va_start (ap, optname1);
+ self = (PxManager *)g_object_new_valist (PX_TYPE_MANAGER, optname1, ap);
+ va_end (ap);
+
+ return self;
+}
+
+/**
* px_manager_new:
*
* Create a new `PxManager`.
@@ -245,7 +279,7 @@ px_manager_init (PxManager *self)
PxManager *
px_manager_new (void)
{
- return g_object_new (PX_TYPE_MANAGER, "plugins-dir", PX_PLUGINS_DIR, NULL);
+ return px_manager_new_with_options ("plugins-dir", PX_PLUGINS_DIR, NULL);
}
static size_t
diff --git a/src/backend/px-manager.h b/src/backend/px-manager.h
index ca3c2fe..74c0584 100644
--- a/src/backend/px-manager.h
+++ b/src/backend/px-manager.h
@@ -49,6 +49,8 @@ typedef enum {
PxManager *px_manager_new (void);
+PxManager *px_manager_new_with_options (const char *optname1, ...);
+
char **px_manager_get_proxies_sync (PxManager *self,
const char *url,
GError **error);
diff --git a/src/backend/px-plugin-config.c b/src/backend/px-plugin-config.c
index 6f8c803..d71d49a 100644
--- a/src/backend/px-plugin-config.c
+++ b/src/backend/px-plugin-config.c
@@ -27,4 +27,12 @@ G_DEFINE_INTERFACE (PxConfig, px_config, G_TYPE_OBJECT)
static void
px_config_default_init (PxConfigInterface *iface)
{
+ g_object_interface_install_property (iface,
+ g_param_spec_string ("config-option",
+ NULL,
+ NULL,
+ NULL,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS));
}
diff --git a/tests/config-env-test.c b/tests/config-env-test.c
index 074f51b..2cfc3cb 100644
--- a/tests/config-env-test.c
+++ b/tests/config-env-test.c
@@ -75,7 +75,7 @@ test_config_env (void)
g_setenv ("no_proxy", test.no_proxy, TRUE);
}
- manager = px_test_manager_new ("config-env");
+ manager = px_test_manager_new ("config-env", NULL);
g_clear_error (&error);
uri = g_uri_parse (test.url, G_URI_FLAGS_PARSE_RELAXED, &error);
diff --git a/tests/config-gnome-test.c b/tests/config-gnome-test.c
index a7940d9..73602ad 100644
--- a/tests/config-gnome-test.c
+++ b/tests/config-gnome-test.c
@@ -96,7 +96,7 @@ test_config_gnome_manual (Fixture *self,
g_settings_set_string (self->socks_proxy_settings, "host", test.proxy);
g_settings_set_int (self->socks_proxy_settings, "port", test.proxy_port);
- manager = px_test_manager_new ("config-gnome");
+ manager = px_test_manager_new ("config-gnome", NULL);
g_clear_error (&error);
uri = g_uri_parse (test.url, G_URI_FLAGS_PARSE_RELAXED, &error);
@@ -128,7 +128,7 @@ test_config_gnome_manual_auth (Fixture *self,
g_settings_set_string (self->http_proxy_settings, "authentication-user", "test");
g_settings_set_string (self->http_proxy_settings, "authentication-password", "pwd");
- manager = px_test_manager_new ("config-gnome");
+ manager = px_test_manager_new ("config-gnome", NULL);
g_clear_error (&error);
uri = g_uri_parse ("http://www.example.com", G_URI_FLAGS_PARSE_RELAXED, &error);
@@ -146,7 +146,7 @@ test_config_gnome_auto (Fixture *self,
g_auto (GStrv) config = NULL;
g_autoptr (GUri) uri = NULL;
- manager = px_test_manager_new ("config-gnome");
+ manager = px_test_manager_new ("config-gnome", NULL);
g_settings_set_enum (self->proxy_settings, "mode", GNOME_PROXY_MODE_AUTO);
g_settings_set_string (self->proxy_settings, "autoconfig-url", "");
@@ -171,7 +171,7 @@ test_config_gnome_fail (Fixture *self,
/* Disable GNOME support */
g_setenv ("XDG_CURRENT_DESKTOP", "unknown", TRUE);
- manager = px_test_manager_new ("config-gnome");
+ manager = px_test_manager_new ("config-gnome", NULL);
g_settings_set_enum (self->proxy_settings, "mode", GNOME_PROXY_MODE_AUTO);
g_settings_set_string (self->proxy_settings, "autoconfig-url", "");
diff --git a/tests/config-kde-test.c b/tests/config-kde-test.c
index 371907d..c918afd 100644
--- a/tests/config-kde-test.c
+++ b/tests/config-kde-test.c
@@ -64,12 +64,7 @@ test_config_kde_disabled (void)
ConfigKdeTest test = config_kde_manual_test_set[idx];
g_autofree char *path = g_test_build_filename (G_TEST_DIST, "data", "sample-kde-proxy-disabled", NULL);
- if (!g_setenv ("PX_CONFIG_KDE", path, TRUE)) {
- g_warning ("Failed to set kde environment");
- continue;
- }
-
- manager = px_test_manager_new ("config-kde");
+ manager = px_test_manager_new ("config-kde", path);
g_clear_error (&error);
uri = g_uri_parse (test.url, G_URI_FLAGS_PARSE_RELAXED, &error);
@@ -98,12 +93,7 @@ test_config_kde_manual (void)
ConfigKdeTest test = config_kde_manual_test_set[idx];
g_autofree char *path = g_test_build_filename (G_TEST_DIST, "data", "sample-kde-proxy-manual", NULL);
- if (!g_setenv ("PX_CONFIG_KDE", path, TRUE)) {
- g_warning ("Failed to set kde environment");
- continue;
- }
-
- manager = px_test_manager_new ("config-kde");
+ manager = px_test_manager_new ("config-kde", path);
g_clear_error (&error);
uri = g_uri_parse (test.url, G_URI_FLAGS_PARSE_RELAXED, &error);
@@ -135,12 +125,7 @@ test_config_kde_wpad (void)
ConfigKdeTest test = config_kde_wpad_test_set[idx];
g_autofree char *path = g_test_build_filename (G_TEST_DIST, "data", "sample-kde-proxy-wpad", NULL);
- if (!g_setenv ("PX_CONFIG_KDE", path, TRUE)) {
- g_warning ("Failed to set kde environment");
- continue;
- }
-
- manager = px_test_manager_new ("config-kde");
+ manager = px_test_manager_new ("config-kde", path);
g_clear_error (&error);
uri = g_uri_parse (test.url, G_URI_FLAGS_PARSE_RELAXED, &error);
@@ -172,12 +157,7 @@ test_config_kde_pac (void)
ConfigKdeTest test = config_kde_pac_test_set[idx];
g_autofree char *path = g_test_build_filename (G_TEST_DIST, "data", "sample-kde-proxy-pac", NULL);
- if (!g_setenv ("PX_CONFIG_KDE", path, TRUE)) {
- g_warning ("Failed to set kde environment");
- continue;
- }
-
- manager = px_test_manager_new ("config-kde");
+ manager = px_test_manager_new ("config-kde", path);
g_clear_error (&error);
uri = g_uri_parse (test.url, G_URI_FLAGS_PARSE_RELAXED, &error);
@@ -205,14 +185,10 @@ test_config_kde_fail (void)
g_auto (GStrv) config = NULL;
g_autofree char *path = g_test_build_filename (G_TEST_DIST, "data", "sample-kde-proxy-pac", NULL);
- if (!g_setenv ("PX_CONFIG_KDE", path, TRUE)) {
- g_warning ("Failed to set kde environment");
- }
-
/* Disable KDE support */
g_unsetenv ("KDE_FULL_SESSION");
- manager = px_test_manager_new ("config-kde");
+ manager = px_test_manager_new ("config-kde", path);
uri = g_uri_parse ("https://www.example.com", G_URI_FLAGS_PARSE_RELAXED, &error);
diff --git a/tests/config-sysconfig-test.c b/tests/config-sysconfig-test.c
index e2d0571..40c0b92 100644
--- a/tests/config-sysconfig-test.c
+++ b/tests/config-sysconfig-test.c
@@ -49,12 +49,7 @@ test_config_sysconfig (void)
ConfigSysConfigTest test = config_sysconfig_test_set[idx];
g_autofree char *path = g_test_build_filename (G_TEST_DIST, "data", "sample-sysconfig-proxy", NULL);
- if (!g_setenv ("PX_CONFIG_SYSCONFIG", path, TRUE)) {
- g_warning ("Failed to set sysconfig environment");
- continue;
- }
-
- manager = px_test_manager_new ("config-sysconfig");
+ manager = px_test_manager_new ("config-sysconfig", path);
g_clear_error (&error);
uri = g_uri_parse (test.url, G_URI_FLAGS_PARSE_RELAXED, &error);
diff --git a/tests/px-manager-helper.c b/tests/px-manager-helper.c
index 223ad62..c5e0b87 100644
--- a/tests/px-manager-helper.c
+++ b/tests/px-manager-helper.c
@@ -23,12 +23,12 @@
#include "px-manager-helper.h"
PxManager *
-px_test_manager_new (const char *config_plugin)
+px_test_manager_new (const char *config_plugin, const char *config_option)
{
g_autofree char *path = g_test_build_filename (G_TEST_BUILT, "../src/backend/plugins", NULL);
- return g_object_new (PX_TYPE_MANAGER,
- "plugins-dir", path,
- "config-plugin", config_plugin,
- NULL);
+ return px_manager_new_with_options ("plugins-dir", path,
+ "config-plugin", config_plugin,
+ "config-option", config_option,
+ NULL);
}
diff --git a/tests/px-manager-helper.h b/tests/px-manager-helper.h
index ad5d662..2717448 100644
--- a/tests/px-manager-helper.h
+++ b/tests/px-manager-helper.h
@@ -21,4 +21,4 @@
#pragma once
-PxManager *px_test_manager_new (const char *config_plugin);
+PxManager *px_test_manager_new (const char *config_plugin, const char *config_option);
diff --git a/tests/px-manager-test.c b/tests/px-manager-test.c
index ced1fbf..85936c8 100644
--- a/tests/px-manager-test.c
+++ b/tests/px-manager-test.c
@@ -59,24 +59,20 @@ static void
fixture_setup (Fixture *fixture,
gconstpointer data)
{
+ g_autofree char *path = NULL;
+
fixture->loop = g_main_loop_new (NULL, FALSE);
- if (data) {
- g_autofree char *path = g_test_build_filename (G_TEST_DIST, "data", data, NULL);
- if (!g_setenv ("PX_CONFIG_SYSCONFIG", path, TRUE)) {
- g_warning ("Failed to set environment");
- return;
- }
- }
+ if (data)
+ path = g_test_build_filename (G_TEST_DIST, "data", data, NULL);
- fixture->manager = px_test_manager_new ("config-sysconfig");
+ fixture->manager = px_test_manager_new ("config-sysconfig", path);
}
static void
fixture_teardown (Fixture *fixture,
gconstpointer data)
{
- g_unsetenv ("PX_CONFIG_SYSCONFIG");
g_clear_object (&fixture->manager);
}