| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
| |
While we could just pass --no-external we want the coverage of
the gobject-introspection files.
|
|
|
|
| |
not sure where that path is comming from, it worked in the MR..
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This assumes a gitlab runner with a "win32" tag which has
MSYS2 installed in the default path and uses the "cmd" shell.
|
|
|
|
| |
This has started to crash with newer gtk
|
|\
| |
| |
| |
| | |
Performance improvements to avoid GIL congestion
See merge request GNOME/pygobject!13
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
names
all py3 jobs wrote to the same file, oops..
|
| |
| |
| |
| |
| | |
Use gcov/lcov and coverage.py; merge all results and provide
the final html reports as job artifacts.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
when the cleanup marshaller will not be called, that is when
marshalling something that is not actually an argument.
Fixes #164
|
| |
| |
| |
| | |
This reverts commit 10c062001ddd948b0a70545cbf613b38ed6fa46c.
|
| |
| |
| |
| | |
This reverts commit fa555767464fbe551b14cfbc121febc5290b1371.
|
| |
| |
| |
| | |
This reverts commit 700c785367975995d24a8ffd00b2aa028ccf77e8.
|
| |
| |
| |
| | |
This reverts commit a506d5e3c64321c43a4ce7c2a72ca8d36e985999.
|
| | |
|
| | |
|
| |
| |
| |
| | |
Makes sure we copy the array items as well.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
This saves 300ms for a noop build_tests command
|
| |
| |
| |
| | |
This makes pytest print a Python stack trace in case of a crash.
|
| |
| |
| |
| |
| | |
Also don't print a Python stack trace of the calling process on
error, just return the error status.
|
| |
| |
| |
| | |
This was fixed by the recent reverts
|
| |
| |
| |
| | |
This reverts commit daefdfa3e4dc97b4ae38250358d722f09764cc9b.
|
| |
| |
| |
| | |
This reverts commit 9d96df1ea3ad533885fbcae4de693a3cd81e765a.
|
| |
| |
| |
| | |
This reverts commit 80eab029ce4e181624d7b845a4b517051797080d.
|
| |
| |
| |
| | |
This reverts commit 7ed8191818733b9130bce84f782dc6f8f734abf7.
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
1.7.0 no longer allows non-class references as param types
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
While keepig it empty works on Linux, on Windows setting an invalid
value is needed to disable dbus.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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().
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
| |
Introduced here 1ec8d58
|
| |
|
| |
|