7288 Commits

Author SHA1 Message Date
Philip Withnall
23f1a31923 gspawn: Handle ENOSYS from close_range()
It’s possible that GLib will eventually be compiled against a version of
libc which supports `close_range()` (hence `HAVE_CLOSE_RANGE` will be
defined), but then run against an older kernel which doesn’t support it.
In this case, we want to fall back to `fdwalk()`, which should work on
such systems.

This is what cpython does: 3529718925/Python/fileutils.c (L2227)

Spotted by Allison Karlitskaya in !1688.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-12-03 14:30:29 +00:00
Sebastian Dröge
c27f729752 Merge branch 'extend_p_option_for_tests' into 'master'
Extend the usage of -p option for glib test framework

See merge request GNOME/glib!1738
2020-12-02 08:14:12 +00:00
Frederic Martinsons
3872bf2ccf Introduce new options -r (or --run-prefix) and -x (or --skip-prefix)
They extend the behavior of, respectively, -p and -s options of the
glib test framework

Currently test suite are only run for one level under -p path, for
example, testfilemonitor -p /monitor would execute the following tests:

/monitor/atomic-replace
/monitor/file-changes
/monitor/dir-monitor
/monitor/dir-not-existent
/monitor/cross-dir-moves

With the --run-prefix the sub-test suite file will be executed:

/monitor/atomic-replace
/monitor/file-changes
/monitor/dir-monitor
/monitor/dir-not-existent
/monitor/cross-dir-moves
/monitor/file/hard-links

The --skip-prefix and run-prefix seems symmetrical, but there is a
difference with skip towards run:
--skip-prefix will use a prefix while --run-prefix only work for a valid test path.
For example and for the following test family:

/monitor/atomic-replace
/monitor/file-changes
/monitor/dir-monitor
/monitor/dir-not-existent
/monitor/cross-dir-moves
/monitor/file/hard-links

while --run-prefix /mon will not execute anything, --skip-prefix /mon
 will skip all of these tests.

See #2238 which references this change.
2020-11-30 14:42:58 +01:00
Frederic Martinsons
1d221af7f1 Extends uri test with GstURI inspiration
- Add a test for parsing FILE scheme from uri
It had taken from GST test_protocol_case
- Add a split uri test with encoded spaces in its path
It had taken from GST test_uri_get_location
- Add tests for g_uri_is_valid
It had taken from GST test_uri_misc
Note that the 4 followings uri failed under gst_uri_is_valid but not
under g_uri_is_valid
   B:\\foo.txt
   B:/foo.txt
   B://foo.txt
   B:foo.txt
- Add tests for g_uri_split
It had taken from GST test_url_parsing
- Add tests for test_uri_normalize and test_uri_parsing_relative
The test URI had been taken from GST test_url_normalization
- Add tests for test_uri_iter_params
It had taken from GST test_url_unescape_equals_in_http_query

Closes #2150

Signed-off-by: Frederic Martinsons <frederic.martinsons@sigfox.com>
2020-11-30 14:34:06 +01:00
Philip Withnall
0af274faa4 Merge branch 'macos-cross' into 'master'
macos: fix frexpl checks in cross-compilation

See merge request GNOME/glib!1771
2020-11-25 19:11:19 +00:00
Philip Withnall
3088fbae52 Merge branch 'mark_g_assert_as_noreturn_on_MSVC' into 'master'
Adding macros G_NORETURN and G_NORETURN_FUNCPTR

Closes #994

See merge request GNOME/glib!1078
2020-11-25 11:52:23 +00:00
Philip Withnall
9cccc08b82 gmacros: Document soft-deprecation of G_GNUC_NORETURN
It still works, and deprecating it would be quite disruptive (as it’s
used in headers), so amend the documentation to point people to
`G_NORETURN` instead.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #994
2020-11-25 11:37:06 +00:00
Emmanuel Fleury
76426c0158 Rewriting the G_GNUC_NORETURN into G_NORETURN macros everywhere 2020-11-25 11:34:05 +00:00
Emmanuel Fleury
c1d74e35c1 Adding macros G_NORETURN and G_NORETURN_FUNCPTR
This macro is borrowed from the gnulib project in the 'noreturn.h' file.

Fixes: #994
2020-11-25 11:34:05 +00:00
Carlos Garcia Campos
fb838bf3f6 guri: apply scheme normalization flag consistently
For URIs produced in string form, the path should be normalized and port
omitted when the default one is used. When querying the path and port of
a GUri (using getters or g_uri_split()) the normalized path and the
default port should be returned when they were omitted in the parsed URI.

Closes #2257
2020-11-24 14:35:19 +01:00
Andoni Morales Alastruey
64dda3ad87 macos: fix frexpl checks in cross-compilation
Cross-compilation to arm64 for Apple Silicon is not possible
due to the hardcoded settings for frexpl.
See: #1868
2020-11-24 13:05:17 +00:00
Jean Felder
cd6b35f7d2 gdatetime: Fix g_date_time_equal annotation
The parameters C type need to be overriden to GDateTime.
2020-11-24 09:45:58 +00:00
Jean Felder
b513b358a8 gdatetime: Fix g_date_time_hash annotation
The parameter C type needs to be overriden to GDateTime.
2020-11-24 09:45:58 +00:00
Jean Felder
7ec3c26e67 gdatetime: Fix g_date_time_compare annotation
The parameters C type need to be overriden to GDateTime.
2020-11-24 09:45:58 +00:00
Sebastian Dröge
d78778cc46 Merge branch 'scan-build-fixes' into 'master'
Minor scan-build fixes

See merge request GNOME/glib!1770
2020-11-24 09:40:34 +00:00
Philip Withnall
6e446931a8 tests: Add a test to avoid a set-but-unused variable
Spotted by `scan-build`.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-11-24 09:21:45 +00:00
Philip Withnall
eafc6b257c tests: Add a test to avoid a set-but-unused variable
Spotted by `scan-build`.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-11-24 09:21:45 +00:00
Philip Withnall
6fcc4db228 tests: Drop dead code from GDateTime test
Spotted by `scan-build`.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-11-24 09:21:45 +00:00
Philip Withnall
2237db78f1 tests: Fix GDateTime tests on FreeBSD
`g_time_zone_new_identifier()` returns NULL in the FreeBSD test setup,
presumably because `TZ` isn’t set.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #553
2020-11-24 09:20:28 +00:00
Sebastian Dröge
72360eb8bd Merge branch '553-tz-errors' into 'master'
gtimezone: Add new constructor which can report errors

Closes #553

See merge request GNOME/glib!1760
2020-11-22 08:35:33 +00:00
Philip Withnall
3356934db5 gtimezone: Deprecate g_time_zone_new()
Use `g_time_zone_new_identifier()` instead so you can get error
checking.

Adapt the tests to match.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #553
2020-11-21 23:11:23 +00:00
Sebastian Dröge
fa8a39c6c6 Merge branch 'py-fixes' into 'master'
Python formatting improvements

See merge request GNOME/glib!1757
2020-11-20 18:10:40 +00:00
Philip Withnall
a7c0adbe11 Merge branch 'py-sh-check-fixes' into 'master'
shellcheck fixes

See merge request GNOME/glib!1756
2020-11-20 15:01:59 +00:00
Philip Withnall
c7d2206df3 update-pcre: Use a subshell to avoid cd ..
Shellcheck warning SC2103.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-11-20 14:48:14 +00:00
Philip Withnall
83e48d8ac1 docs: Document not to use volatile qualifiers
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #600
2020-11-20 14:41:07 +00:00
Philip Withnall
6bd0a4b297 gthread: Use g_atomic() primitives correctly in destructor list
In the Windows destructor list, consistently access
`g_private_destructors` using atomic primitives.

`g_atomic_pointer_compare_and_exchange()` should be equivalent to
`InterlockedCompareExchangePointer()`, but is a bit more understandable
in a general GLib context, and pairs with `g_atomic_pointer_get()`. (I
can’t find a Windows API equivalent for that.)

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #600
2020-11-20 14:41:07 +00:00
Philip Withnall
2d03f99ae4 tests: Add comment to volatile atomic tests
`volatile` should not be used to indicate atomic variables, and we
shouldn’t encourage its use. Keep the tests, since they check that we
don’t emit warnings when built against incorrect old code which uses
`volatile`. But add a comment to stop copy/paste use of `volatile`
in the future.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #600
2020-11-20 14:40:19 +00:00
Philip Withnall
8a87069ff4 gtypes: Drop volatile qualifier from gatomicrefcount
This is technically an API break, but since the type is meant to be
opaque (third party code is not meant to treat it like an integer) it
should not cause problems.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #600
2020-11-20 14:40:19 +00:00
Philip Withnall
eee7e3c668 gmessages: Drop unnecessary volatile qualifiers from macro variables
It’s not necessary and provides no thread safety guarantees.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #600
2020-11-20 14:40:19 +00:00
Philip Withnall
1314ff93fc glib: Drop unnecessary volatile qualifiers from internal variables
These variables were already (correctly) accessed atomically. The
`volatile` qualifier doesn’t help with that.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #600
2020-11-20 14:40:19 +00:00
Philip Withnall
9474655eb2 gatomic: Drop unnecessary volatile qualifiers from macro variables
It’s not necessary and provides no thread safety guarantees.

The `volatile` qualifiers on the function arguments have to be kept, as
they are (unfortunately) part of the API.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #600
2020-11-20 14:40:19 +00:00
Philip Withnall
3c648457c2 gatomic: Drop unnecessary volatile qualifiers from internal variables
It’s not necessary and provides no thread safety guarantees.

The `volatile` qualifiers on the function arguments have to be kept, as
they are (unfortunately) part of the API.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #600
2020-11-20 14:40:19 +00:00
Philip Withnall
3dda662beb tests: Drop unnecessary volatile qualifiers from tests
These variables were already (correctly) accessed atomically. The
`volatile` qualifier doesn’t help with that.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #600
2020-11-20 14:40:19 +00:00
Philip Withnall
ea746c79fa tests: Fix non-atomic access to a shared variable
And drop the `volatile` qualifier from the variable, as that doesn’t
help with thread safety.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #600
2020-11-20 14:40:19 +00:00
Philip Withnall
a6ce0e742a tests: Fix non-atomic access to a shared variable
And drop the `volatile` qualifier from the variable, as that doesn’t
help with thread safety.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #600
2020-11-20 14:40:19 +00:00
Emmanuele Bassi
6e9ed964c3 Merge branch 'task-trace' into 'master'
Add some tracing to GTask

See merge request GNOME/glib!1629
2020-11-18 13:53:41 +00:00
Sebastian Dröge
56cbdb1a66 Merge branch 'fix_warnings' into 'master'
Fix warnings

See merge request GNOME/glib!1758
2020-11-18 11:53:59 +00:00
Philip Withnall
f9d0135a90 gdatetime: Port to use new g_time_zone_new_identifier() constructor
This allows slightly more reliable error checking on this code path.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #553
2020-11-18 11:31:57 +00:00
Philip Withnall
8105c36e84 gtimezone: Add new constructor which can report errors
Add a new variant of `g_time_zone_new()` which returns `NULL` on
failure to load a timezone, rather than silently returning UTC.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #553
2020-11-18 11:31:15 +00:00
Emmanuel Fleury
40e70f5d94 Fix several signedness warnings in glib/tests/uri.c
In file included from glib/glib.h:86,
                 from glib/tests/uri.c:25:
glib/gtestutils.h:134:96: error: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘GConvertError’
  134 |                                                if (!err || (err)->domain != dom || (err)->code != c) \
      |                                                                                                ^~
glib/tests/uri.c:182:9: note: in expansion of macro ‘g_assert_error’
  182 |         g_assert_error (error, G_CONVERT_ERROR, file_to_uri_tests[i].expected_error);
      |         ^~~~~~~~~~~~~~
glib/gtestutils.h:134:96: error: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘GConvertError’
  134 |                                                if (!err || (err)->domain != dom || (err)->code != c) \
      |                                                                                                ^~
glib/tests/uri.c:220:9: note: in expansion of macro ‘g_assert_error’
  220 |         g_assert_error (error, G_CONVERT_ERROR, file_from_uri_tests[i].expected_error);
      |         ^~~~~~~~~~~~~~
glib/tests/uri.c: In function ‘test_uri_parsing_absolute’:
glib/gtestutils.h:134:96: error: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘GUriError’
  134 |                                                if (!err || (err)->domain != dom || (err)->code != c) \
      |                                                                                                ^~
glib/tests/uri.c:790:11: note: in expansion of macro ‘g_assert_error’
  790 |           g_assert_error (error, G_URI_ERROR, test->expected_error_code);
      |           ^~~~~~~~~~~~~~
In file included from glib/glibconfig.h:9,
                 from glib/gtypes.h:32,
                 from glib/galloca.h:32,
                 from glib/glib.h:30,
                 from glib/tests/uri.c:25:
glib/tests/uri.c: In function ‘test_uri_iter_params’:
glib/tests/uri.c:1495:51: error: comparison of integer expressions of different signedness: ‘gssize’ {aka ‘const long int’} and ‘long unsigned int’
 1495 |                 params_tests[i].expected_n_params <= G_N_ELEMENTS (params_tests[i].expected_param_key_values) / 2);
      |                                                   ^~
glib/gmacros.h:941:25: note: in definition of macro ‘G_LIKELY’
  941 | #define G_LIKELY(expr) (expr)
      |                         ^~~~
glib/tests/uri.c:1494:7: note: in expansion of macro ‘g_assert’
 1494 |       g_assert (params_tests[i].expected_n_params < 0 ||
      |       ^~~~~~~~
glib/tests/uri.c: In function ‘test_uri_parse_params’:
glib/tests/uri.c:1562:51: error: comparison of integer expressions of different signedness: ‘gssize’ {aka ‘const long int’} and ‘long unsigned int’
 1562 |                 params_tests[i].expected_n_params <= G_N_ELEMENTS (params_tests[i].expected_param_key_values) / 2);
      |                                                   ^~
glib/gmacros.h:941:25: note: in definition of macro ‘G_LIKELY’
  941 | #define G_LIKELY(expr) (expr)
      |                         ^~~~
glib/tests/uri.c:1561:7: note: in expansion of macro ‘g_assert’
 1561 |       g_assert (params_tests[i].expected_n_params < 0 ||
      |       ^~~~~~~~
2020-11-18 12:30:44 +01:00
Emmanuel Fleury
e457df8b8b Fix several signedness warnings in glib/tests/uri.c
glib/tests/uri.c: In function ‘run_file_to_uri_tests’:
glib/tests/uri.c:172:17: error: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’
  172 |   for (i = 0; i < G_N_ELEMENTS (file_to_uri_tests); i++)
      |                 ^
glib/tests/uri.c: In function ‘run_file_from_uri_tests’:
glib/tests/uri.c:197:17: error: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’
  197 |   for (i = 0; i < G_N_ELEMENTS (file_from_uri_tests); i++)
      |                 ^
glib/tests/uri.c: In function ‘run_file_roundtrip_tests’:
glib/tests/uri.c:276:17: error: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’
  276 |   for (i = 0; i < G_N_ELEMENTS (file_to_uri_tests); i++)
      |                 ^
glib/tests/uri.c: In function ‘test_uri_parse_params’:
glib/tests/uri.c:1594:25: error: comparison of integer expressions of different signedness: ‘gsize’ {aka ‘long unsigned int’} and ‘gssize’ {aka ‘const long int’}
 1594 |           for (j = 0; j < params_tests[i].expected_n_params; j += 2)
      |                         ^
2020-11-18 10:26:12 +01:00
Matt Rose
b23811a234 add __APPLE__ to the list of operating systems that can use sysconf() to get open file limits 2020-11-17 14:42:06 -05:00
Emmanuel Fleury
8aa6e39cc0 Fix several missing initializers in glib/tests/uri.c
glib/tests/uri.c:40:3: error: missing initializer for field ‘expected_error’ of ‘FileToUriTest’
   40 |   { "/etc", NULL, "file:///etc"},
      |   ^
glib/tests/uri.c:35:17: note: ‘expected_error’ declared here
   35 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:41:3: error: missing initializer for field ‘expected_error’ of ‘FileToUriTest’
   41 |   { "/etc", "", "file:///etc"},
      |   ^
glib/tests/uri.c:35:17: note: ‘expected_error’ declared here
   35 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:42:3: error: missing initializer for field ‘expected_error’ of ‘FileToUriTest’
   42 |   { "/etc", "otherhost", "file://otherhost/etc"},
      |   ^
glib/tests/uri.c:35:17: note: ‘expected_error’ declared here
   35 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:51:3: error: missing initializer for field ‘expected_error’ of ‘FileToUriTest’
   51 |   { "/etc", "localhost", "file://localhost/etc"},
      |   ^
glib/tests/uri.c:35:17: note: ‘expected_error’ declared here
   35 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:58:3: error: missing initializer for field ‘expected_error’ of ‘FileToUriTest’
   58 |   { "/etc/\xE5\xE4\xF6", NULL, "file:///etc/%E5%E4%F6" },
      |   ^
glib/tests/uri.c:35:17: note: ‘expected_error’ declared here
   35 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:59:3: error: missing initializer for field ‘expected_error’ of ‘FileToUriTest’
   59 |   { "/etc/\xC3\xB6\xC3\xA4\xC3\xA5", NULL, "file:///etc/%C3%B6%C3%A4%C3%A5"},
      |   ^
glib/tests/uri.c:35:17: note: ‘expected_error’ declared here
   35 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:63:3: error: missing initializer for field ‘expected_error’ of ‘FileToUriTest’
   63 |   { "/etc/file with #%", NULL, "file:///etc/file%20with%20%23%25"},
      |   ^
glib/tests/uri.c:35:17: note: ‘expected_error’ declared here
   35 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:68:3: error: missing initializer for field ‘expected_error’ of ‘FileToUriTest’
   68 |   { "/0123456789", NULL, "file:///0123456789"},
      |   ^
glib/tests/uri.c:35:17: note: ‘expected_error’ declared here
   35 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:69:3: error: missing initializer for field ‘expected_error’ of ‘FileToUriTest’
   69 |   { "/ABCDEFGHIJKLMNOPQRSTUVWXYZ", NULL, "file:///ABCDEFGHIJKLMNOPQRSTUVWXYZ"},
      |   ^
glib/tests/uri.c:35:17: note: ‘expected_error’ declared here
   35 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:70:3: error: missing initializer for field ‘expected_error’ of ‘FileToUriTest’
   70 |   { "/abcdefghijklmnopqrstuvwxyz", NULL, "file:///abcdefghijklmnopqrstuvwxyz"},
      |   ^
glib/tests/uri.c:35:17: note: ‘expected_error’ declared here
   35 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:71:3: error: missing initializer for field ‘expected_error’ of ‘FileToUriTest’
   71 |   { "/-_.!~*'()", NULL, "file:///-_.!~*'()"},
      |   ^
glib/tests/uri.c:35:17: note: ‘expected_error’ declared here
   35 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:77:3: error: missing initializer for field ‘expected_error’ of ‘FileToUriTest’
   77 |   { "/\"#%<>[\\]^`{|}\x7F", NULL, "file:///%22%23%25%3C%3E%5B%5C%5D%5E%60%7B%7C%7D%7F"},
      |   ^
glib/tests/uri.c:35:17: note: ‘expected_error’ declared here
   35 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:79:3: error: missing initializer for field ‘expected_error’ of ‘FileToUriTest’
   79 |   { "/;@+$,", NULL, "file:///%3B@+$,"},
      |   ^
glib/tests/uri.c:35:17: note: ‘expected_error’ declared here
   35 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:83:3: error: missing initializer for field ‘expected_error’ of ‘FileToUriTest’
   83 |   { "/:", NULL, "file:///:"},
      |   ^
glib/tests/uri.c:35:17: note: ‘expected_error’ declared here
   35 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:84:3: error: missing initializer for field ‘expected_error’ of ‘FileToUriTest’
   84 |   { "/?&=", NULL, "file:///%3F&="},
      |   ^
glib/tests/uri.c:35:17: note: ‘expected_error’ declared here
   35 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:86:3: error: missing initializer for field ‘expected_error’ of ‘FileToUriTest’
   86 |   { "/", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "file://ABCDEFGHIJKLMNOPQRSTUVWXYZ/"},
      |   ^
glib/tests/uri.c:35:17: note: ‘expected_error’ declared here
   35 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:87:3: error: missing initializer for field ‘expected_error’ of ‘FileToUriTest’
   87 |   { "/", "abcdefghijklmnopqrstuvwxyz", "file://abcdefghijklmnopqrstuvwxyz/"},
      |   ^
glib/tests/uri.c:35:17: note: ‘expected_error’ declared here
   35 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:108:3: error: missing initializer for field ‘expected_hostname’ of ‘FileFromUriTest’
  108 |   { "file:///etc", "/etc"},
      |   ^
glib/tests/uri.c:102:9: note: ‘expected_hostname’ declared here
  102 |   char *expected_hostname;
      |         ^~~~~~~~~~~~~~~~~
glib/tests/uri.c:109:3: error: missing initializer for field ‘expected_hostname’ of ‘FileFromUriTest’
  109 |   { "file:/etc", "/etc"},
      |   ^
glib/tests/uri.c:102:9: note: ‘expected_hostname’ declared here
  102 |   char *expected_hostname;
      |         ^~~~~~~~~~~~~~~~~
glib/tests/uri.c:119:3: error: missing initializer for field ‘expected_error’ of ‘FileFromUriTest’
  119 |   { "file://localhost/etc", "/etc", "localhost"},
      |   ^
glib/tests/uri.c:103:17: note: ‘expected_error’ declared here
  103 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:120:3: error: missing initializer for field ‘expected_error’ of ‘FileFromUriTest’
  120 |   { "file://localhost/etc/%23%25%20file", "/etc/#% file", "localhost"},
      |   ^
glib/tests/uri.c:103:17: note: ‘expected_error’ declared here
  103 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:121:3: error: missing initializer for field ‘expected_error’ of ‘FileFromUriTest’
  121 |   { "file://localhost/\xE5\xE4\xF6", "/\xe5\xe4\xf6", "localhost"},
      |   ^
glib/tests/uri.c:103:17: note: ‘expected_error’ declared here
  103 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:122:3: error: missing initializer for field ‘expected_error’ of ‘FileFromUriTest’
  122 |   { "file://localhost/%E5%E4%F6", "/\xe5\xe4\xf6", "localhost"},
      |   ^
glib/tests/uri.c:103:17: note: ‘expected_error’ declared here
  103 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:124:3: error: missing initializer for field ‘expected_error’ of ‘FileFromUriTest’
  124 |   { "file://otherhost/etc", "/etc", "otherhost"},
      |   ^
glib/tests/uri.c:103:17: note: ‘expected_error’ declared here
  103 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:125:3: error: missing initializer for field ‘expected_error’ of ‘FileFromUriTest’
  125 |   { "file://otherhost/etc/%23%25%20file", "/etc/#% file", "otherhost"},
      |   ^
glib/tests/uri.c:103:17: note: ‘expected_error’ declared here
  103 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:127:3: error: missing initializer for field ‘expected_error’ of ‘FileFromUriTest’
  127 |   { "file:////etc/%C3%B6%C3%C3%C3%A5", "//etc/\xc3\xb6\xc3\xc3\xc3\xa5", NULL},
      |   ^
glib/tests/uri.c:103:17: note: ‘expected_error’ declared here
  103 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:135:3: error: missing initializer for field ‘expected_hostname’ of ‘FileFromUriTest’
  135 |   { "file:////etc", "//etc"},
      |   ^
glib/tests/uri.c:102:9: note: ‘expected_hostname’ declared here
  102 |   char *expected_hostname;
      |         ^~~~~~~~~~~~~~~~~
glib/tests/uri.c:136:3: error: missing initializer for field ‘expected_hostname’ of ‘FileFromUriTest’
  136 |   { "file://///etc", "///etc"},
      |   ^
glib/tests/uri.c:102:9: note: ‘expected_hostname’ declared here
  102 |   char *expected_hostname;
      |         ^~~~~~~~~~~~~~~~~
glib/tests/uri.c:147:3: error: missing initializer for field ‘expected_hostname’ of ‘FileFromUriTest’
  147 |   { "file:///c:\\foo", "/c:\\foo"},
      |   ^
glib/tests/uri.c:102:9: note: ‘expected_hostname’ declared here
  102 |   char *expected_hostname;
      |         ^~~~~~~~~~~~~~~~~
glib/tests/uri.c:148:3: error: missing initializer for field ‘expected_hostname’ of ‘FileFromUriTest’
  148 |   { "file:///c:/foo", "/c:/foo"},
      |   ^
glib/tests/uri.c:102:9: note: ‘expected_hostname’ declared here
  102 |   char *expected_hostname;
      |         ^~~~~~~~~~~~~~~~~
glib/tests/uri.c:149:3: error: missing initializer for field ‘expected_hostname’ of ‘FileFromUriTest’
  149 |   { "file:////c:/foo", "//c:/foo"},
      |   ^
glib/tests/uri.c:102:9: note: ‘expected_hostname’ declared here
  102 |   char *expected_hostname;
      |         ^~~~~~~~~~~~~~~~~
glib/tests/uri.c:152:3: error: missing initializer for field ‘expected_error’ of ‘FileFromUriTest’
  152 |   { "file://ABCDEFGHIJKLMNOPQRSTUVWXYZ/", "/", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"},
      |   ^
glib/tests/uri.c:103:17: note: ‘expected_error’ declared here
  103 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
glib/tests/uri.c:153:3: error: missing initializer for field ‘expected_error’ of ‘FileFromUriTest’
  153 |   { "file://abcdefghijklmnopqrstuvwxyz/", "/", "abcdefghijklmnopqrstuvwxyz"},
      |   ^
glib/tests/uri.c:103:17: note: ‘expected_error’ declared here
  103 |   GConvertError expected_error; /* If failed */
      |                 ^~~~~~~~~~~~~~
2020-11-17 18:47:17 +01:00
Emmanuel Fleury
766e6325ac Fix several signedness warnings in glib/tests/timer.c
glib/tests/timer.c: In function ‘test_timeval_from_iso8601’:
glib/tests/timer.c:220:17: error: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘long unsigned int’
  220 |   for (i = 0; i < G_N_ELEMENTS (tests); i++)
      |                 ^
glib/tests/timer.c: In function ‘test_timeval_to_iso8601’:
glib/tests/timer.c:260:17: error: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘long unsigned int’
  260 |   for (i = 0; i < G_N_ELEMENTS (tests); i++)
      |                 ^
2020-11-17 17:25:13 +01:00
Emmanuel Fleury
4c1b068657 Extend the documentation of g_sequence_get_length()
The return value of g_sequence_get_length() is always a
positive number.
2020-11-17 17:25:13 +01:00
Emmanuel Fleury
89729bcd28 Fix several signedness warnings in glib/tests/sequence.c
glib/tests/sequence.c: In function ‘check_integrity’:
glib/tests/sequence.c:139:27: error: comparison of integer expressions of different signedness: ‘int’ and ‘guint’ {aka ‘unsigned int’}
  139 |   g_assert (info->n_items == g_queue_get_length (info->queue));
      |                           ^~
glib/gmacros.h:941:25: note: in definition of macro ‘G_LIKELY’
  941 | #define G_LIKELY(expr) (expr)
      |                         ^~~~
glib/tests/sequence.c:139:3: note: in expansion of macro ‘g_assert’
  139 |   g_assert (info->n_items == g_queue_get_length (info->queue));
      |   ^~~~~~~~
glib/tests/sequence.c:157:27: error: comparison of integer expressions of different signedness: ‘int’ and ‘guint’ {aka ‘unsigned int’}
  157 |   g_assert (info->n_items == g_queue_get_length (info->queue));
      |                           ^~
glib/gmacros.h:941:25: note: in definition of macro ‘G_LIKELY’
  941 | #define G_LIKELY(expr) (expr)
      |                         ^~~~
glib/tests/sequence.c:157:3: note: in expansion of macro ‘g_assert’
  157 |   g_assert (info->n_items == g_queue_get_length (info->queue));
      |   ^~~~~~~~
glib/tests/sequence.c: In function ‘run_random_tests’:
glib/tests/sequence.c:554:55: error: comparison of integer expressions of different signedness: ‘guint’ {aka ‘unsigned int’} and ‘gint’ {aka ‘int’}
  554 |             g_assert (g_queue_get_length (seq->queue) == g_sequence_get_length (seq->sequence));
      |                                                       ^~
glib/gmacros.h:941:25: note: in definition of macro ‘G_LIKELY’
  941 | #define G_LIKELY(expr) (expr)
      |                         ^~~~
glib/tests/sequence.c:554:13: note: in expansion of macro ‘g_assert’
  554 |             g_assert (g_queue_get_length (seq->queue) == g_sequence_get_length (seq->sequence));
      |             ^~~~~~~~
glib/tests/sequence.c: In function ‘main’:
glib/tests/sequence.c:1404:17: error: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘long unsigned int’
 1404 |   for (i = 0; i < G_N_ELEMENTS (seeds); ++i)
      |                 ^
2020-11-17 17:25:03 +01:00
Philip Withnall
d270b6c3db py: Various flake8 cleanups
None of these are particularly significant, but they do get the CI
output clean.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-11-17 15:50:07 +00:00
Philip Withnall
905b22a17e py: Reformat all Python files consistently
This commit is the unmodified results of running
```
black $(git ls-files '*.py')
```
with black version 19.10b0. See #2046.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-11-17 15:50:07 +00:00
Emmanuel Fleury
82be350f59 Fix signedness warnings in glib/tests/shell.c
glib/tests/shell.c: In function ‘main’:
glib/tests/shell.c:194:17: error: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘long unsigned int’
  194 |   for (i = 0; i < G_N_ELEMENTS (cmdline_tests); i++)
      |                 ^
glib/tests/shell.c:201:17: error: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘long unsigned int’
  201 |   for (i = 0; i < G_N_ELEMENTS (quote_tests); i++)
      |                 ^
glib/tests/shell.c:208:17: error: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘long unsigned int’
  208 |   for (i = 0; i < G_N_ELEMENTS (unquote_tests); i++)
      |                 ^
2020-11-17 14:12:53 +01:00
Emmanuel Fleury
f4bfc50db3 Fix signedness warnings in glib/tests/slice.c
glib/tests/slice.c: In function ‘test_allocate’:
glib/tests/slice.c:146:17: error: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘long unsigned int’
  146 |   for (i = 0; i < G_N_ELEMENTS(threads); i++)
      |                 ^
glib/tests/slice.c:149:17: error: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘long unsigned int’
  149 |   for (i = 0; i < G_N_ELEMENTS(threads); i++)
      |                 ^
2020-11-17 14:12:53 +01:00