Commit Graph

20350 Commits

Author SHA1 Message Date
Philip Withnall
d23a8bd6e4 ci: Add scan-build job in a new ‘analysis’ pipeline stage
Use Meson’s support for running scan-build (Clang’s static analyser)
against the build, so that we get static analysis of each pipeline. Add
it in a new pipeline stage, after code coverage, so that we don’t waste
resources on it unless the unit tests pass — a static analysis build
takes perhaps 10× as long as a normal GCC build.

https://mesonbuild.com/howtox.html#use-clang-static-analyzer

Currently, the static analysis results are uploaded as artifacts, but
the job will always succeed (regardless of whether there are any bugs
found in the analysis).

Currently, a large number of reports are outputted by the analyser,
which need to be fixed before we can gate the pipeline on it.
Furthermore, in order to get scan-build to exit with a non-zero status
if any bugs are found, we need to depend on Meson ≥ 0.49.0, which
contains the fix https://github.com/mesonbuild/meson/issues/4334,
allowing us to add the following to .gitlab-ci.yml:
```
variables:
  # Exit with a non-zero status if any bugs are found
  SCANBUILD: "scan-build --status-bugs"
```

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2019-05-01 12:48:08 +01:00
Philip Withnall
48b037fc3a Merge branch 'ci-update' into 'master'
Update the Docker images used for CI

See merge request GNOME/glib!808
2019-05-01 10:12:02 +00:00
Emmanuele Bassi
0b609b53fa ci: Add a debian-stable job
So we can test ancient toolchains.
2019-04-30 18:26:15 +01:00
Emmanuele Bassi
992e7cee34 ci: Move to per-job images
We don't use a global Docker image any more.
2019-04-30 18:26:15 +01:00
Emmanuele Bassi
397e44fc8a ci: Update the Android NDK image to Fedora 28
Fedora 27 was EOL'ed on November 2018.

We move to Fedora 28 because the Android NDK requires Python 2 and
probably other things, and bumping to Fedora 29 is going to be more
painful.
2019-04-30 18:26:15 +01:00
Emmanuele Bassi
ee9afb33af ci: Remove Android and MingW bits from the fedora Dockerfile
These live in their own Dockerfiles, now.
2019-04-30 18:22:44 +01:00
Emmanuele Bassi
15d13d1e97 ci: Add a MinGW Docker image
The Fedora image we use contains MinGW bits that ought to go into
their own Docker container. This avoids having a massive Docker image
that gloms everything and is harder to update.

While we're splitting off, we can also update to Fedora 29, as we can
rely on Fedora packagers doing their job and ensuring that the MinGW
cross-compilation toolchain still works.
2019-04-30 18:21:15 +01:00
Emmanuele Bassi
92fbdb5730 ci: Add an Android NDK Docker image
The Fedora image we use contains Android bits that ought to go into
their own Docker container. This avoids having a massive Docker image
that gloms everything and is harder to update.

We reuse the same Docker image we used for Fedora, to avoid regressing.
2019-04-30 18:18:38 +01:00
Emmanuele Bassi
b4d920f60c ci: Beef up run-docker.sh
Add argument validation and split the build/run/push phases into
commands.
2019-04-30 15:37:31 +01:00
Emmanuele Bassi
d42a551e3e ci: Rename the Fedora Dockerfile
We're going to add more, so let's avoid collisions.
2019-04-30 15:37:31 +01:00
Emmanuele Bassi
2515015a67 ci: Add Debian stable Docker image
Does everything the Fedora image does, only with an older toolchain and
older dependencies.
2019-04-30 15:37:31 +01:00
Emmanuele Bassi
eb55d6413d Check GCC version before ignoring diagnostic message
The `alloc-size-larger-than` warning is available starting with GCC 7,
and using it in a pragma will generate a warning on older versions of
GCC.
2019-04-30 14:49:00 +01:00
Emmanuele Bassi
6cb6b418bf Add a version check for duplicated-branches warning
The GHashTable code ignores the duplicated-branches GCC warning, but we
need to do a compiler and version check, as either non-GCC compatible
compilers, or older versions of GCC will warn about the unknown pragma
or diagnostic.

If we don't do this while turning warnings into error, we're going to
fail the build unnecessarily.
2019-04-30 14:49:00 +01:00
Emmanuele Bassi
99d068fb90 ci: Add clang and scan-build
We want to run the Clang-based build analysis tool in our CI pipeline,
taking advantage of its native support in Meson.
2019-04-30 14:49:00 +01:00
Emmanuele Bassi
7875f34433 ci: Update the Docker image for Fedora
Use Fedora 29, soon to be old-stable.
2019-04-30 14:49:00 +01:00
Philip Withnall
94f63b8de1 Merge branch 'strcanon-docs' into 'master'
Merge of initial commits from !784

Closes #29

See merge request GNOME/glib!807
2019-04-30 10:52:42 +00:00
Philip Withnall
31c4a3afc5 Merge branch 'flaky-monitor' into 'master'
Remove monitor test

See merge request GNOME/glib!785
2019-04-30 10:04:03 +00:00
Emmanuel Fleury
b3eab1deaf Fixing glib/tests/strfuncs.c to conform to new test coding standards 2019-04-30 09:43:01 +02:00
Emmanuel Fleury
95a5f63775 Fix some documentation issue in glib/gstrfuncs.c
Apparently, the documentation of g_strcanon() was not really cristal
clear, so this new code sample try to make it clear the fact that we
are working on the given string and not a copy. Moreover, it provides
a way to keep the original string at once.

Fix #29
2019-04-30 09:43:01 +02:00
Emmanuele Bassi
6d3dcd1a60 Merge branch 'tap-p-order' into 'master'
testing: Run tests specified with -p in the order specified

Closes #1763

See merge request GNOME/glib!805
2019-04-29 17:09:20 +00:00
Simon McVittie
a537e538be testing: Run tests specified with -p in the order specified
Closes: #1763
Signed-off-by: Simon McVittie <smcv@collabora.com>
2019-04-29 17:28:55 +01:00
Philip Withnall
0e999f37d0 Merge branch 'tap-skip' into 'master'
gtestutils: Make --tap compatible with -p and --GTestSkipCount

See merge request GNOME/glib!556
2019-04-29 15:45:59 +00:00
Simon McVittie
48cc3abede testing: Comment that test order with -p is reversed
Signed-off-by: Simon McVittie <smcv@collabora.com>
2019-04-29 16:12:02 +01:00
Simon McVittie
dfec3c6789 Test what happens when GTestSkipCount is 0 or more than number of tests
Using --GTestSkipCount 0 is the same as omitting it. A skip count
greater than the number of tests is the same as equalling the number
of tests: they are all skipped.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2019-04-29 16:08:55 +01:00
Simon McVittie
bcee67e29c gtestutils: Test the combination of --tap and -p
Signed-off-by: Simon McVittie <smcv@collabora.com>
2019-04-29 15:54:10 +01:00
Simon McVittie
b24cdffd5c gtestutils: Allow combining --tap with -p
The -p option is documented, and can be used to select and repeat
test-cases. This is particularly useful when debugging a single
failure among a large number of test-cases, or when debugging a
test-case that you suspect influences another test-case by leaking
global state.

Until now, -p was only supported with GLib's default (GLib-specific)
textual output format, and not with the standardized TAP format that
we are now encouraging. If we are considering making TAP the new default
(see glib#1619) it should get feature-equivalence with the current
default.

Because -p allows test-cases to be re-ordered and repeated, and an entry
in the test_paths list can match any number of test-cases (including
zero), we don't know ahead of time how many test-cases we are going to
run. TAP allows the "plan" to be deferred to the end, exactly to support
situations like this.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2019-04-29 15:54:10 +01:00
Simon McVittie
efa56aa957 gtestutils: Test the combination of --tap and --GTestSkipCount
Signed-off-by: Simon McVittie <smcv@collabora.com>
2019-04-29 15:54:10 +01:00
Simon McVittie
14082191e8 gtestutils: Make --tap compatible with --GTestSkipCount
The undocumented --GTestSkipCount option is internal to the deprecated
gtester tool and rather obscure, but it's straightforward to support
by making G_TEST_LOG_SKIP_CASE produce TAP output similar to what already
happened when we emitted G_TEST_LOG_STOP_CASE with result
G_TEST_RUN_SKIPPED. I might as well do that while I'm looking at the
interaction between the --tap, -p and -s options.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2019-04-29 15:54:10 +01:00
Simon McVittie
88bac46287 gtestutils: Add regression test for combining -s with --tap
Signed-off-by: Simon McVittie <smcv@collabora.com>
2019-04-29 15:54:10 +01:00
Philip Withnall
87014c8e97 glib: Update Unicode Character Database to version 12.0.0
Using commands:
   glib/gen-unicode-tables.pl -both 12.0.0 path/to/UCD
   tests/gen-casefold-txt.py 12.0.0 path/to/UCD/CaseFolding.txt \
     > tests/casefold.txt
   tests/gen-casemap-txt.py 12.0.0 path/to/UCD/UnicodeData.txt \
      path/to/UCD/SpecialCasing.txt > tests/casemap.txt
plus some manual additions of the new G_UNICODE_SCRIPT_* symbols to
gunicode.h, guniprop.c and glib/tests/unicode.c.

Using UCD release https://www.unicode.org/Public/zipped/12.0.0/UCD.zip.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Fixes: #1713
2019-04-29 14:16:12 +01:00
Philip Withnall
e9389efe5b gsocket: Clarify in docs that flags arguments can be platform specific
As suggested by Philip Chimento.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2019-04-29 13:21:08 +01:00
Philip Withnall
1c77c93e81 Merge branch 'gconstrutor-h-stdlib-h-msvc' into 'master'
glib/gconstructor.h: Include stdlib.h for MSVC builds

See merge request GNOME/glib!791
2019-04-29 12:10:52 +00:00
Philip Withnall
8482318208 Merge branch 'master' into 'master'
gnetworkmonitornm: Fix network available detection

See merge request GNOME/glib!781
2019-04-29 12:05:54 +00:00
Fabrice Bellet
719133e882 gnetworkmonitornm: Fix network available detection
The network-available property can be asserted by querying the NMState
describing the current overval network state, instead of the
NMConnectivityState. The advantage of the NMState is that is reflects
immediately the network state modification, while the connectivity
state is tested at a fixed frequency.
2019-04-29 12:05:54 +00:00
Philip Withnall
798c59a14f Merge branch 'openbsd-no-ld' into 'master'
gio: tests, don't check for libdl on OpenBSD

See merge request GNOME/glib!802
2019-04-29 11:21:41 +00:00
Philip Withnall
4ceac0d40c Merge branch '1760-txt-record-docs' into 'master'
docs: Clarify support for multiple TXT record strings

Closes #1760

See merge request GNOME/glib!797
2019-04-29 10:50:05 +00:00
Philip Withnall
753eeb1bac gproxy: Add a missing ‘the’ to a documentation comment
Spotted by Michael Catanzaro.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2019-04-29 11:33:02 +01:00
Asier Sarasua Garmendia
1273fa3993 Update Basque translation 2019-04-28 09:21:55 +00:00
Antoine Jacoutot
c14ac90ed2 gio: tests, don't check for libdl on OpenBSD
libdl does not exist on OpenBSD and is not required as the
functionnality is provided in libc.
2019-04-27 18:45:45 +02:00
Philip Withnall
5bb19b04af docs: Clarify support for multiple TXT record strings
Most TXT records only contain a single string, but some may contain
more.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Fixes: #1760
2019-04-26 16:49:38 +01:00
Philip Withnall
1916700541 Revert "macros: Try to use the standard __func__ first in G_STRFUNC"
This reverts commit 9f75cc9edf.

It breaks usage of G_STRFUNC when compiling applications with
`-Wpedantic` — `__func__` is not `#define`d, so G_STRFUNC was falling
through to using `__FUNCTION__`, which raises a warning with
`-Wpedantic`.

Fun times.

Fixes: #1755
2019-04-26 13:08:21 +01:00
Philip Withnall
63af8ed0ea Merge branch 'mate-xfce4-term' into 'master'
gdesktopappinfo: Add support for MATE and Xfce4 terminals

See merge request GNOME/glib!795
2019-04-26 11:27:19 +00:00
Philip Withnall
e036d1bb29 docs: Improve formatting of GVariant types in GResolverRecordType docs
Signed-off-by: Philip Withnall <withnall@endlessm.com>
2019-04-26 12:15:55 +01:00
Philip Withnall
38de3e9dc3 docs: Use ‘look up’ as a verb, rather than the noun ‘lookup’
Another niggle fixed.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2019-04-26 12:12:31 +01:00
Sebastian Dröge
0b562298fd Merge branch 'master-terminology' into 'master'
general: Remove a few unhelpful references to ‘master’

See merge request GNOME/glib!792
2019-04-25 15:26:06 +00:00
Colomban Wendling
292cb2cb1b gdesktopappinfo: Add support for MATE and Xfce4 terminals
Add support for mate-terminal and xfce4-terminal with higher precedence
over xterm as it's likely people that have those want to use them.
They both use the gnome-terminal `-x` switch instead of xterm's `-e`.
2019-04-25 16:10:49 +02:00
Philip Withnall
aba0b644c2 Merge branch 'issue-1751' into 'master'
cocoanotificationbackend: do not release readonly property

Closes #1751

See merge request GNOME/glib!786
2019-04-25 09:11:44 +00:00
Kukuh Syafaat
8b1d763d1f Update Indonesian translation 2019-04-25 08:48:15 +00:00
Philip Withnall
192bf09529 general: Remove a few unhelpful references to ‘master’
Some of these have a negative master/slave connotation, and they add no
value. Change or drop them.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2019-04-25 09:25:49 +01:00
Chun-wei Fan
d4238b9a19 glib/gconstructor.h: Include stdlib.h for MSVC builds
This is in case the compiler complains that we don't have the prototypes
for atexit(), and it doesn't hurt to include that file here.
2019-04-25 12:55:04 +08:00