/* * Copyright 2023 GNOME Foundation, Inc. * Copyright 2024 Philip Chimento * * SPDX-License-Identifier: LGPL-2.1-or-later * * 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, see . */ #include "config.h" #include "girepository.h" #include "glib.h" #include "test-common.h" void repository_init (int *argc, char **argv[]) { /* Isolate from the system typelibs and GIRs. */ g_setenv ("GI_TYPELIB_PATH", "/dev/null", TRUE); g_setenv ("GI_GIR_PATH", "/dev/null", TRUE); g_test_init (argc, argv, G_TEST_OPTION_ISOLATE_DIRS, NULL); } void repository_setup (RepositoryFixture *fx, const void *data) { GITypelib *typelib = NULL; GError *local_error = NULL; TypelibLoadSpec *load_spec = (TypelibLoadSpec *) data; fx->gobject_typelib_dir = g_test_build_filename (G_TEST_BUILT, "..", "..", "introspection", NULL); g_test_message ("Using GI_TYPELIB_DIR = %s", fx->gobject_typelib_dir); gi_repository_prepend_search_path (fx->gobject_typelib_dir); fx->repository = gi_repository_new (); g_assert_nonnull (fx->repository); if (load_spec) { typelib = gi_repository_require (fx->repository, load_spec->name, load_spec->version, 0, &local_error); g_assert_no_error (local_error); g_assert_nonnull (typelib); } } void repository_teardown (RepositoryFixture *fx, const void *unused) { g_clear_pointer (&fx->gobject_typelib_dir, g_free); g_clear_object (&fx->repository); }