summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2020-02-21 15:03:25 +0000
committerJan Rybar <jrybar@redhat.com>2020-02-21 15:03:25 +0000
commitcd1dc6450373704a1c9839ff6ad0a0336d27b858 (patch)
tree228b94feac518be8ee9f863573533a25aa703502
parent721e0a5ade4ae788d377c6aecd9f6fd860dc01ee (diff)
downloadpolkit-cd1dc6450373704a1c9839ff6ad0a0336d27b858.tar.gz
ci: Add a CI
Just compiles and installs polkit
-rw-r--r--.gitlab-ci.yml44
-rw-r--r--src/polkitbackend/polkitbackendjsauthority.cpp5
-rw-r--r--test/polkitbackend/Makefile.am6
-rwxr-xr-xtest/polkitbackend/polkitbackendjsauthoritytest-wrapper.py65
-rw-r--r--test/polkitbackend/test-polkitbackendjsauthority.c2
5 files changed, 116 insertions, 6 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..6689607
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,44 @@
+image: fedora:rawhide
+
+variables:
+ DEPENDENCIES: gcc
+ gcc-c++
+ libtool
+ autoconf
+ automake
+ gtk-doc
+ intltool
+ gobject-introspection-devel
+ make
+ libxslt
+ pkgconfig(gio-2.0)
+ pkgconfig(mozjs-60)
+ expat-devel
+ pkgconfig(libsystemd)
+ pkgconfig(systemd)
+ pam-devel
+ python3-dbusmock
+
+build_stable:
+ before_script:
+ - dnf upgrade -y --nogpgcheck fedora-release fedora-repos*
+ - dnf update -y && dnf install -y $DEPENDENCIES
+ script:
+ - mkdir _build
+ - cd _build
+ - CPPFLAGS='-D_FORTIFY_SOURCE=2' ../autogen.sh
+ --disable-dependency-tracking
+ --enable-ansi
+ --enable-man-pages
+ --enable-test
+ --enable-libsystemd-login=yes
+ --enable-libelogind=no
+ - make
+ - make check
+ - make install
+ artifacts:
+ name: 'test logs'
+ when: 'always'
+ paths:
+ - '_build/test/*/*.log'
+
diff --git a/src/polkitbackend/polkitbackendjsauthority.cpp b/src/polkitbackend/polkitbackendjsauthority.cpp
index e97b8aa..0f18085 100644
--- a/src/polkitbackend/polkitbackendjsauthority.cpp
+++ b/src/polkitbackend/polkitbackendjsauthority.cpp
@@ -1153,8 +1153,9 @@ polkit_backend_js_authority_get_admin_auth_identities (PolkitBackendInteractiveA
if (identity == NULL)
{
polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
- "Identity `%s' is not valid, ignoring",
- identity_str);
+ "Identity `%s' is not valid, ignoring (%s)",
+ identity_str, error->message);
+ g_clear_error (&error);
}
else
{
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);