summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* release3.27.5Christoph Reiter2018-03-011-0/+9
|
* setup.py: fix distcheckChristoph Reiter2018-02-271-1/+1
|
* coverage: exclude external headers. See #168Christoph Reiter2018-02-231-0/+6
| | | | | While we could just pass --no-external we want the coverage of the gobject-introspection files.
* coverage.py: ignore errorsChristoph Reiter2018-02-231-1/+1
| | | | not sure where that path is comming from, it worked in the MR..
* gitlab-ci: Add Windows coverage support. See #168Christoph Reiter2018-02-235-17/+101
| | | | | | Use coverage.py and cygwin lcov to generate coverage files. In the report generation step fixup the Windows paths in the coverage files to match the Linux/Docker ones.
* gitlab-ci: Add MSYS2 test jobsChristoph Reiter2018-02-212-5/+55
| | | | | This assumes a gitlab runner with a "win32" tag which has MSYS2 installed in the default path and uses the "cmd" shell.
* tests: skip one more GdkAtom test on WindowsChristoph Reiter2018-02-201-0/+2
| | | | This has started to crash with newer gtk
* Merge branch 'gilabissue123' into 'master'Christoph Reiter2018-02-185-8/+56
|\ | | | | | | | | Performance improvements to avoid GIL congestion See merge request GNOME/pygobject!13
| * gi/pygtype.c: avoid GIL congestion in pyg_type_lookupMikhail Fludkov2018-02-071-5/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | https://gitlab.gnome.org/GNOME/pygobject/issues/123 GIL congestion can be caused when many threads emit signals with objects of boxed type up to Python. The code in pyg_type_lookup imports a python module corresponding to gtype, which is expensive and can cause GIL congestion. What the proposed patch of pyg_type_lookup does: - pygi_type_import_by_g_type is called only once per a gtype - early NULL return. For example GStreamer types benefit greatly from it. Because pyg_register_gtype_custom is not used and pyg_type_lookup always returns NULL for such types.
| * Use optimized version of PyImport_ImportModuleMikhail Fludkov2018-02-074-3/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://gitlab.gnome.org/GNOME/pygobject/issues/123 You would expect PyImport_ImportModule to import a module once, store it's reference to sys.modules and the next time we call it with the same argument reuse the reference from sys.module. But it is not what is happening unfortunately. Everytime we call it it releases GIL, grabs global python import lock, grabs GIL back. The proposed optimization looks at sys.modules first and uses the reference from there to avoid GIL congestion. pyg_type_lookup is a good example of a function which imports python modules at run time and can cause GIL congestion.
* | coverage: don't just use the major python version number for coverage files ↵Christoph Reiter2018-02-171-1/+1
| | | | | | | | | | | | names all py3 jobs wrote to the same file, oops..
* | gitlab-ci: Add coverage reportsChristoph Reiter2018-02-176-4/+60
| | | | | | | | | | Use gcov/lcov and coverage.py; merge all results and provide the final html reports as job artifacts.
* | array, list: always run items cleanup funcsMathieu Duponchelle2018-02-162-49/+58
| |
* | pygi-struct-marshal: perform boxed copy ...Mathieu Duponchelle2018-02-161-16/+32
| | | | | | | | | | | | | | when the cleanup marshaller will not be called, that is when marshalling something that is not actually an argument. Fixes #164
* | Revert "Revert "to python struct marshalling: copy boxed during cleanup""Mathieu Duponchelle2018-02-162-8/+27
| | | | | | | | This reverts commit 10c062001ddd948b0a70545cbf613b38ed6fa46c.
* | Revert "Revert "to python marshalling: collect cleanup data""Mathieu Duponchelle2018-02-1614-43/+120
| | | | | | | | This reverts commit fa555767464fbe551b14cfbc121febc5290b1371.
* | Revert "Revert "pygi-boxed: make in-place copy safer""Mathieu Duponchelle2018-02-161-1/+7
| | | | | | | | This reverts commit 700c785367975995d24a8ffd00b2aa028ccf77e8.
* | Revert "Revert "Revert "Refactor boxed wrapper memory management strategy"""Mathieu Duponchelle2018-02-1610-119/+29
| | | | | | | | This reverts commit a506d5e3c64321c43a4ce7c2a72ca8d36e985999.
* | tests: add tests for boxed in GLists. See !24Christoph Reiter2018-02-163-0/+53
| |
* | gitlab-ci: use ccacheChristoph Reiter2018-02-163-2/+16
| |
* | tests: Add a test for a out transfer-none boxed arrayChristoph Reiter2018-02-163-0/+27
| | | | | | | | Makes sure we copy the array items as well.
* | tests: add a pytest hook for handling unhandled exception in closuresChristoph Reiter2018-02-166-31/+65
| | | | | | | | | | | | | | | | | | | | | | | | In PyGObject when an exception is raised in a closure called from C then the error gets passed to sys.excepthook (on the main thread at least) and the error is by default printed to stdout. Since pytest by default hides stdout, errors can be easily missed now. To make these errors more visible add a test wrapper which checks sys.excepthook for unhandled exceptions and reraises them. This makes the tests fail and as a bonus also shows the right stack trace instead of just the error message.
* | version bumpChristoph Reiter2018-02-141-1/+1
| |
* | release3.27.4Christoph Reiter2018-02-141-0/+9
| |
* | Fix make distcheckChristoph Reiter2018-02-141-2/+7
| |
* | setup.py: cache pkg-config callsChristoph Reiter2018-02-141-12/+17
| | | | | | | | This saves 300ms for a noop build_tests command
* | gitlab-ci: Install pytest-faulthandlerChristoph Reiter2018-02-141-1/+1
| | | | | | | | This makes pytest print a Python stack trace in case of a crash.
* | setup.py: set the same env vars for testing as autotoolsChristoph Reiter2018-02-141-2/+6
| | | | | | | | | | Also don't print a Python stack trace of the calling process on error, just return the error status.
* | tests: add a test for Gio.DBusNodeInfo.new_for_xml, see #164Christoph Reiter2018-02-141-0/+29
| | | | | | | | This was fixed by the recent reverts
* | Revert "Revert "Refactor boxed wrapper memory management strategy""Christoph Reiter2018-02-1310-29/+119
| | | | | | | | This reverts commit daefdfa3e4dc97b4ae38250358d722f09764cc9b.
* | Revert "pygi-boxed: make in-place copy safer"Christoph Reiter2018-02-131-7/+1
| | | | | | | | This reverts commit 9d96df1ea3ad533885fbcae4de693a3cd81e765a.
* | Revert "to python marshalling: collect cleanup data"Christoph Reiter2018-02-1314-120/+43
| | | | | | | | This reverts commit 80eab029ce4e181624d7b845a4b517051797080d.
* | Revert "to python struct marshalling: copy boxed during cleanup"Christoph Reiter2018-02-132-27/+8
| | | | | | | | This reverts commit 7ed8191818733b9130bce84f782dc6f8f734abf7.
* | tests: Fix tests under Wayland. Fixes #163Christoph Reiter2018-02-121-5/+12
| | | | | | | | | | | | | | | | These tests try to test Gdk.Atom with the exsting API in libgdk but under Wayland they either don't return Gdk.Atom or block. Since they are disabled on other platforms just change them to only run under X11.
* | docs: fix build with sphinx 1.7.0Christoph Reiter2018-02-121-1/+2
| | | | | | | | 1.7.0 no longer allows non-class references as param types
* | tests: Make it possible to use pytest directlywip/creiter/pytest-directChristoph Reiter2018-02-1242-193/+244
| | | | | | | | | | | | | | | | | | | | | | pytest will just import the files passed to it and try to run tests. Since we need to run some setup code convert the tests directory to a Python package and do the initialization in __init__.py. This makes the init code (env vars, typelib search path, dbus) always run when something from the package gets imported. python3 setup.py build_tests # build pygobject and tests py.test-3 tests/test_gi.py # run tests in test_gi.py only
* | tests: Make patching in pygtkcompat reversibleChristoph Reiter2018-02-115-145/+237
| | | | | | | | | | | | | | | | Record all the attribute and sys.modules changes and add an API for reverting them after tests are completed. This allows us to run the pygtkcompat tests in the same test process as other tests.
* | version bumpChristoph Reiter2018-02-101-1/+1
| |
* | release3.27.3Christoph Reiter2018-02-102-0/+12
| |
* | tests: switch to pytest as the default test runner. See #153Christoph Reiter2018-02-107-19/+34
| | | | | | | | | | | | | | | | | | | | | | The TEST_NAMES env var gets translated to work with the pytest syntax (foo.py::class::method). Rename one class which triggers a pytest warning because it starts with "Test" but isn't one. Remove erroring out on Python warnings as pytest triggers some deprecation warnings by default.
* | tests: set DBUS_SESSION_BUS_ADDRESS to some invalid value to disable dbusChristoph Reiter2018-02-101-1/+1
| | | | | | | | | | While keepig it empty works on Linux, on Windows setting an invalid value is needed to disable dbus.
* | tests: remove locale test for uppercasing C namesChristoph Reiter2018-02-094-83/+1
| | | | | | | | | | | | | | | | | | | | | | Someone on IRC had problems running the test suite, and that's not the first time, so remove it for now (added in 63c7f17c2248) The locale generation adds extra dependencies and only works on Linux, and while the test does something useful it complicates things too much. We need to find a better way (in Python if possible) to test for locale dependend upper()/lower().
* | tests: disable dbus tests on Windows/macOSChristoph Reiter2018-02-091-0/+3
| | | | | | | | | | | | dbus-daemon is available in MSYS2 unlike dbus-run-session but the tests fail. Disable dbus tests on Windows/macOS to restore the old behaviour for now.
* | tests: move dbus session bus handling into runtests.pyChristoph Reiter2018-02-085-22/+30
| | | | | | | | | | | | | | This allows us to remove code duplication in autotools/distutils. This also fixes the noisy dbus output during tests because dbus-run-session forwarded dbus logging output to stderr.
* | gitlab-ci: use pyenv in docker instead of the deadsnakes PPAChristoph Reiter2018-02-084-32/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | deadsnakes only provides packages for Ubuntu LTS versions and doesn't include versions present in that Ubuntu version. With Ubuntu zesty this happened to work, but now that that's EOL we have to switch to artful and no longer have a Python 3.5 available. Instead switch to using pyenv in docker and compiler our own Python versions. This should make it easier to swtich distros in the future. Also adds a run-docker.sh script which builds the image and runs it with the git repo mounted. This should make local testing easier in the future.
* | tests: Make tests run without Gtk/Gdk installedMikhail Fludkov2018-02-083-35/+42
| | | | | | | | | | | | Python evaluates the code inside @unittest.skipIf decorator during import time. Because Gtk is not installed it crashes while evaluating 'Gtk._version' where Gtk=None.
* | Revert "to-py-struct: don't copy the boxed if we are the sole owner of the ↵Christoph Reiter2018-02-082-11/+2
| | | | | | | | | | | | | | | | | | | | | | | | wrapper" This reverts commit a4a68b3c7a4bb64c71e1bdbe52ede109b6bcd0bb. This was wrong. In the context of a boxed return value we also have only one ref but it doesn't get freed after. We could decide this based on PYGI_CALLING_CONTEXT_IS_FROM_C from the callable cache, but let's leave that for now.
* | tests: test_boxed_c_wrapper failing testsMikhail Fludkov2018-02-085-3/+106
|/ | | | Introduced here 1ec8d58
* version bumpChristoph Reiter2018-02-071-1/+1
|
* release3.27.2Christoph Reiter2018-02-071-2/+2
|