From cd1dc6450373704a1c9839ff6ad0a0336d27b858 Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Fri, 21 Feb 2020 15:03:25 +0000 Subject: ci: Add a CI Just compiles and installs polkit --- test/polkitbackend/Makefile.am | 6 +- .../polkitbackendjsauthoritytest-wrapper.py | 65 ++++++++++++++++++++++ test/polkitbackend/test-polkitbackendjsauthority.c | 2 +- 3 files changed, 69 insertions(+), 4 deletions(-) create mode 100755 test/polkitbackend/polkitbackendjsauthoritytest-wrapper.py (limited to 'test') diff --git a/test/polkitbackend/Makefile.am b/test/polkitbackend/Makefile.am index 53bfb2a..4b13256 100644 --- a/test/polkitbackend/Makefile.am +++ b/test/polkitbackend/Makefile.am @@ -33,16 +33,16 @@ TEST_PROGS = # ---------------------------------------------------------------------------------------------------- -TEST_PROGS += polkitbackendjsauthoritytest polkitbackendjsauthoritytest_SOURCES = test-polkitbackendjsauthority.c # force C++ link via dummy C++ file, (see GNU automake manual section 8.3.5) nodist_EXTRA_polkitbackendjsauthoritytest_SOURCES = dummy-force-cpp-link.cxx +TESTS_ENVIRONMENT = TOP_BUILD_DIR="$(top_builddir)" +TEST_PROGS += polkitbackendjsauthoritytest-wrapper.py # ---------------------------------------------------------------------------------------------------- -noinst_PROGRAMS = $(TEST_PROGS) -check_PROGRAMS = $(TEST_PROGS) +noinst_PROGRAMS = polkitbackendjsauthoritytest TESTS = $(TEST_PROGS) clean-local : diff --git a/test/polkitbackend/polkitbackendjsauthoritytest-wrapper.py b/test/polkitbackend/polkitbackendjsauthoritytest-wrapper.py new file mode 100755 index 0000000..2a4e160 --- /dev/null +++ b/test/polkitbackend/polkitbackendjsauthoritytest-wrapper.py @@ -0,0 +1,65 @@ +#!/usr/bin/python3 + +# This program 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 3 of the License, or (at your option) any +# later version. See http://www.gnu.org/copyleft/lgpl.html for the full text +# of the license. + +__author__ = 'Bastien Nocera' +__email__ = 'hadess@hadess.net' +__copyright__ = '(c) 2020 Red Hat Inc.' +__license__ = 'LGPL 3+' + +import unittest +import sys +import subprocess +import dbus +import dbus.mainloop.glib +import dbusmock +import os +import time + +dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) + +class TestPolkitBackendJsAuthority(dbusmock.DBusTestCase): + '''Test polkitbackendjsauthoritytest''' + + @classmethod + def setUpClass(klass): + klass.start_system_bus() + + klass.top_build_dir = '../../' + if 'TOP_BUILD_DIR' in os.environ: + klass.top_build_dir = os.environ['TOP_BUILD_DIR'] + klass.mocklibc_path = klass.top_build_dir + '/test/mocklibc/bin/mocklibc' + assert(os.path.exists(klass.mocklibc_path)) + print ('Top build dir: %s' % klass.top_build_dir) + + klass.top_src_dir = os.path.dirname(os.path.realpath(__file__)) + '/../../' + if 'TOP_SRC_DIR' in os.environ: + klass.top_src_dir = os.environ['TOP_SRC_DIR'] + print ('Top source dir: %s' % klass.top_src_dir) + + os.environ['POLKIT_TEST_DATA'] = klass.top_src_dir + '/test/data' + print ('Polkit test data dir: %s' % os.environ['POLKIT_TEST_DATA']) + + os.environ['MOCK_PASSWD'] = klass.top_src_dir + '/test/data/etc/passwd' + print ('Mock password file: %s' % os.environ['MOCK_PASSWD']) + os.environ['MOCK_GROUP'] = klass.top_src_dir + '/test/data/etc/group' + print ('Mock group file: %s' % os.environ['MOCK_GROUP']) + os.environ['MOCK_NETGROUP'] = klass.top_src_dir + '/test/data/etc/netgroup' + print ('Mock netgroup file: %s' % os.environ['MOCK_NETGROUP']) + + def test_polkitbackendjsauthoritytest(self): + # Add '; exit 0' at the end of the cmd line if launching fails and you + # want to capture the error output + out = subprocess.check_output(self.mocklibc_path + ' ' + self.top_build_dir + '/test/polkitbackend/polkitbackendjsauthoritytest', + stderr=subprocess.STDOUT, + shell=True, + universal_newlines=True) + print(out) + +if __name__ == '__main__': + # avoid writing to stderr + unittest.main(testRunner=unittest.TextTestRunner(stream=sys.stdout, verbosity=2)) diff --git a/test/polkitbackend/test-polkitbackendjsauthority.c b/test/polkitbackend/test-polkitbackendjsauthority.c index 71aad23..f97e0e0 100644 --- a/test/polkitbackend/test-polkitbackendjsauthority.c +++ b/test/polkitbackend/test-polkitbackendjsauthority.c @@ -101,7 +101,7 @@ test_get_admin_identities_for_action_id (const gchar *action_id, g_assert_cmpstr (expected_admins[n], ==, s); g_free (s); } - g_assert (expected_admins[n] == NULL); + g_assert_cmpstr (expected_admins[n], ==, NULL); g_list_free_full (admin_identities, g_object_unref); g_clear_object (&details); -- cgit v1.2.1