glib Validation
Port build from safelibs/port-glib at commit d48616253a8c (release build-d48616253a8c)
Tests
GIO file round trip Original / glib / gio-file-roundtrip Passed
GLib hash table lookup Original / glib / hash-table-lookup Passed
GLib key file round trip Original / glib / key-file-roundtrip Passed
GLib main loop timeout Original / glib / main-loop-timeout Passed
GLib variant tuple round trip Original / glib / variant-tuple-roundtrip Passed
gio cat preserves UTF-8 multi-byte content Original / glib / usage-gio-batch12-cat-utf8-roundtrip Passed
Writes a UTF-8 file with non-ASCII characters and verifies gio cat reads back the exact same bytes.
gio info reports correct standard::size for 1MB file Original / glib / usage-gio-batch12-info-standard-size-large Passed
gio list on empty directory yields zero lines Original / glib / usage-gio-batch12-list-empty-directory Passed
gio cat reproduces binary bytes Original / glib / usage-gio-cat-binary-bytes Passed
Streams a small binary file containing NUL and high bytes through gio cat and verifies the byte-for-byte output equals the source via sha256.
gio cat file URI Original / glib / usage-gio-cat-file-uri Passed
gio prints file content Original / glib / usage-gio-cat-file Passed
gio cat concatenates three files in order Original / glib / usage-gio-cat-multiple-files-three Passed
Concatenates three text files with gio cat and verifies all three payloads appear in the merged output in argument order.
gio cat concatenates files Original / glib / usage-gio-cat-multiple-files Passed
Concatenates two text files with gio cat and verifies both file contents appear in the merged output.
gio reports content type Original / glib / usage-gio-content-type Passed
gio copy backup flag Original / glib / usage-gio-copy-backup-flag Passed
Copies a file with gio copy --backup over an existing destination and verifies the original target is preserved with a tilde-suffixed backup name.
gio copies file into directory Original / glib / usage-gio-copy-directory-tree Passed
Copies a local file into an existing directory with gio copy and verifies the copied filename and content.
gio copy preserves empty file Original / glib / usage-gio-copy-empty-file Passed
Copies a zero-byte source file with gio copy and verifies the destination exists and remains zero bytes.
gio copies local file Original / glib / usage-gio-copy-file Passed
gio local file copy Original / glib / usage-gio-copy-local-file-batch11 Passed
gio copy overwrite file Original / glib / usage-gio-copy-overwrite-file Passed
gio copy -p preserves modification time Original / glib / usage-gio-copy-preserve-mtime Passed
Copies a file with gio copy -p and verifies the destination's modification timestamp matches the source rather than the current time.
gio help launch usage banner Original / glib / usage-gio-help-launch Passed
Invokes gio help launch and verifies the documented usage line for launching desktop files is reported.
gio help describes mime subcommand Original / glib / usage-gio-help-mime Passed
gio help open usage banner Original / glib / usage-gio-help-open Passed
gio info access::can-execute reflects mode Original / glib / usage-gio-info-access-can-execute Passed
Compares the access::can-execute attribute reported by gio info before and after toggling the executable bit on a temp file.
gio info access can-read attribute Original / glib / usage-gio-info-access-can-read Passed
Reads the access::can-read attribute on a freshly created local file via gio info and verifies the attribute is reported as TRUE.
gio info etag attribute namespace Original / glib / usage-gio-info-attribute-namespace-etag Passed
Queries the etag::value attribute via gio info -a and verifies the attribute label appears next to a populated value.
gio info attributes list Original / glib / usage-gio-info-attributes-list Passed
Reads multiple file attributes through gio info --attributes and verifies each requested namespace appears.
gio info reports time access attribute Original / glib / usage-gio-info-attributes-time-access Passed
Queries the time::access attribute through gio info and verifies the namespace appears in the output.
gio info content type Original / glib / usage-gio-info-content-type Passed
gio info directory type Original / glib / usage-gio-info-directory-type Passed
Runs gio info on a directory path and verifies the type field is reported as directory in the human-readable summary.
gio reports display name Original / glib / usage-gio-info-display-name Passed
gio info reports etag::value attribute Original / glib / usage-gio-info-etag-value Passed
Queries the etag::value file attribute through gio info -a and verifies the attribute label appears with a non-empty value.
gio reports file info Original / glib / usage-gio-info-file Passed
gio info filesystem attributes Original / glib / usage-gio-info-filesystem-attributes Passed
Reads filesystem-level attributes for a path through gio info --filesystem and verifies the standard filesystem type attribute is reported.
gio info filesystem readonly attribute Original / glib / usage-gio-info-filesystem-readonly Passed
Queries the filesystem::readonly attribute via gio info --filesystem on a writable temp directory and verifies the attribute is reported as FALSE.
gio info filesystem attributes for root Original / glib / usage-gio-info-filesystem-root Passed
Reads filesystem-level attributes for the root path through gio info --filesystem and verifies the standard filesystem type and size attributes are reported.
gio reports hidden file flag Original / glib / usage-gio-info-hidden-flag Passed
gio info owner user attribute Original / glib / usage-gio-info-owner-user-attribute Passed
Requests the owner::user attribute via gio info -a and verifies the printed user matches the current process owner reported by id -un.
gio info -w lists writable namespaces Original / glib / usage-gio-info-query-writable-namespaces Passed
Runs gio info --query-writable on a regular file and verifies the output enumerates settable attributes such as time::modified and the xattr namespace.
gio info --query-writable lists writable namespaces Original / glib / usage-gio-info-query-writable Passed
Runs gio info --query-writable on a local file and verifies common writable namespaces are reported.
gio info recent namespace Original / glib / usage-gio-info-recent-namespace Passed
Queries the recent::* attribute namespace through gio info on a local fixture and verifies the command succeeds with the expected URI banner.
gio info standard size Original / glib / usage-gio-info-size-batch11 Passed
gio reports file size Original / glib / usage-gio-info-size Passed
gio info standard name Original / glib / usage-gio-info-standard-name Passed
gio info standard type regular Original / glib / usage-gio-info-standard-type-regular Passed
Verifies gio info -a standard::type reports the integer file type code for a regular file under the standard namespace.
gio reports symlink target Original / glib / usage-gio-info-symlink-target Passed
gio info thumbnail namespace Original / glib / usage-gio-info-thumbnail-namespace Passed
Queries the thumbnail::path attribute via gio info on a non-thumbnailable local file and verifies the command succeeds with the expected info banner even when no thumbnail attribute is materialized.
gio info reports unix::inode attribute Original / glib / usage-gio-info-unix-inode Passed
Queries the unix::inode file attribute through gio info -a and verifies the reported inode matches the value reported by stat(1).
gio info reports unix mode Original / glib / usage-gio-info-unix-mode-attribute Passed
Queries the unix::mode file attribute through gio info and verifies the attribute label appears in the output.
gio launch reports missing desktop file Original / glib / usage-gio-launch-missing-desktop-error Passed
Invokes gio launch without arguments and confirms it reports the no-desktop-file error and prints the launch usage banner on stderr.
gio list -a projects requested attribute Original / glib / usage-gio-list-attribute-projection Passed
Asks gio list for the unix::inode attribute and verifies the projected listing reports a non-zero inode for the seeded file.
gio lists directory Original / glib / usage-gio-list-directory-names Passed
gio lists directory children Original / glib / usage-gio-list-directory Passed
gio list long format Original / glib / usage-gio-list-long-format Passed
Lists a temporary directory with the long format flag and verifies that file size and type information appear alongside each child entry.
gio list shows hidden entries with -h Original / glib / usage-gio-list-show-hidden Passed
Verifies gio list -h includes dotfile entries that are omitted by default in the same directory listing.
gio list URI surfaces hidden children with --hidden Original / glib / usage-gio-list-uri-hidden-flag Passed
Lists a directory through a file:// URI with gio list --hidden and verifies that visible and dot-prefixed entries are both reported.
gio makes directory Original / glib / usage-gio-make-directory Passed
gio mime --help banner mentions MIMETYPE Original / glib / usage-gio-mime-help-banner Passed
Invokes gio mime --help and verifies the per-subcommand synopsis advertises the MIMETYPE handler argument and a Usage line.
gio creates directory Original / glib / usage-gio-mkdir-directory Passed
gio mkdir then info round-trip Original / glib / usage-gio-mkdir-info-roundtrip Passed
Creates a directory through gio mkdir, then queries it back with gio info and verifies the standard::type reports as directory.
gio mkdir and list Original / glib / usage-gio-mkdir-list-batch11 Passed
gio mkdir parents nested Original / glib / usage-gio-mkdir-parents-nested Passed
Creates a nested directory chain through gio mkdir --parent and verifies every intermediate directory exists.
gio mount help advertises monitor capability Original / glib / usage-gio-mount-monitor-capability Passed
Inspects gio help mount and the gio mount synopsis to verify the monitor and list capabilities (used to observe volume monitor events) are advertised in the option banner.
gio move relocates file between directories Original / glib / usage-gio-move-between-dirs Passed
Moves a file with gio move from one directory to another and verifies the source no longer exists while the destination directory holds the payload.
gio moves file Original / glib / usage-gio-move-file-rename Passed
gio moves a local file Original / glib / usage-gio-move-file Passed
gio move renamed file Original / glib / usage-gio-move-renamed-file Passed
gio open reports error for unhandled type Original / glib / usage-gio-open-no-handler-error Passed
Invokes gio open against a file with a fabricated extension and verifies the command reports an error (non-zero exit and a diagnostic on stderr) rather than silently succeeding.
gio cat on empty file produces zero bytes Original / glib / usage-gio-r10-cat-empty-file Passed
Creates a zero-length file and verifies gio cat produces an empty output (zero bytes) and exits cleanly.
gio info reports access::can-write TRUE for writable file Original / glib / usage-gio-r10-info-access-can-write Passed
gio info flags tilde-suffixed files via standard::is-backup TRUE Original / glib / usage-gio-r10-info-standard-is-backup Passed
Creates a file ending with "~" (the Emacs/glib backup convention that GFileInfo's standard::is-backup detector recognises) and verifies "gio info -a standard::is-backup" reports TRUE while a normal file reports FALSE. (.bak suffix is not surfaced as is-backup; the documented marker is the trailing tilde.)
gio info reports unix::nlink incremented after hardlink Original / glib / usage-gio-r10-info-unix-nlink-hardlink Passed
Creates a regular file, hardlinks it, and verifies "gio info -a unix::nlink" reports 2 for both names.
gio cat resolves a percent-encoded space in a file:// URI Original / glib / usage-gio-r11-cat-uri-percent-encoded-space Passed
Writes a payload to a path containing a literal space, accesses it via a file:// URI with the space percent-encoded as %20, and verifies that gio cat reads the same byte-for-byte payload back.
gio info standard::edit-name returns the file basename for plain files Original / glib / usage-gio-r11-info-edit-name-equals-basename Passed
Creates a regular file with a deterministic basename and verifies that "gio info -a standard::edit-name" reports the basename verbatim under the attributes block.
gio info classifies a named pipe as standard::type 4 (special) Original / glib / usage-gio-r11-info-fifo-standard-type-special Passed
Creates a FIFO with mkfifo and verifies that "gio info -a standard::type" reports the GIO file-type code 4 (special) under the attributes block, and the human "type:" line reads "special".
gio info exposes id::file attribute as a non-empty string Original / glib / usage-gio-r11-info-id-file-attribute-non-empty Passed
Creates a regular file and verifies "gio info -a id::file" prints the id::file attribute as a non-empty string token (kernel-formatted device:inode pair) under the attributes block.
gio info unix::uid attribute equals stat -c %u Original / glib / usage-gio-r11-info-unix-uid-matches-stat Passed
Creates a regular file and verifies that "gio info -a unix::uid" reports the same numeric uid that "stat -c %u" reports for the same path.
gio cat preserves trailing newline byte count Original / glib / usage-gio-r12-cat-newline-byte-count Passed
Writes a 4-line UTF-8 text file (12 bytes including trailing newlines), runs gio cat, and asserts the captured output has exactly the same byte count as the source.
gio copy overwrites destination content when target exists Original / glib / usage-gio-r12-copy-overwrite-replaces-content Passed
Creates source and destination files with different payloads, runs gio copy with no special flags, and verifies the destination now matches the source byte-for-byte.
gio info reports standard::edit-name matching the file basename Original / glib / usage-gio-r12-info-edit-name-equals-basename Passed
Creates a regular file and asserts gio info -a standard::edit-name surfaces an edit-name attribute equal to the basename component.
gio info exposes unix::uid attribute as an unsigned integer Original / glib / usage-gio-r12-info-unix-uid-attribute Passed
Creates a file and asserts gio info -a unix::uid prints a unix::uid attribute whose value parses as a non-negative integer matching the file owner uid.
gio mkdir creates directory visible to gio list Original / glib / usage-gio-r12-mkdir-and-list-shows-entry Passed
Creates a subdirectory with gio mkdir under a fresh parent, then runs gio list on the parent and asserts the new entry appears in the listing.
gio info -a queries a filesystem::readonly attribute via the filesystem namespace Original / glib / usage-gio-r13-info-filesystem-readonly-attribute Passed
Calls gio info with --attributes=filesystem::readonly on a probe directory and asserts the attribute key appears in the output with a boolean TRUE/FALSE value.
gio remove deletes a regular file from disk Original / glib / usage-gio-r13-remove-deletes-file Passed
Creates a small file, runs gio remove against it, and asserts the path no longer exists on disk while the parent directory is preserved.
gio rename moves a file and preserves its byte contents Original / glib / usage-gio-r13-rename-content-preserved Passed
Writes a known payload to a source file, runs gio rename to a sibling name, and asserts the new file exists with identical bytes while the old name is gone.
gio info --attributes='*' includes both standard and unix namespaces Original / glib / usage-gio-r14-info-attributes-glob-listing Passed
Creates a probe file and calls gio info --attributes='*' on it, asserting the output exposes attributes from multiple namespaces including standard::name, standard::type, and unix::mode.
gio info -w on a directory enumerates standard settable attributes Original / glib / usage-gio-r14-info-query-writable-includes-time-modified Passed
Calls gio info --query-writable on a freshly-created directory and asserts the settable attributes section includes time::modified and unix::mode while the writable namespaces section includes the xattr namespace.
gio mime text/plain reports the registered handler section Original / glib / usage-gio-r14-mime-text-plain-handler-listing Passed
Invokes gio mime text/plain and asserts the output contains the standard 'Default application' header that the gio mime subcommand renders for any registered MIME type, regardless of the specific handler installed.
gio copy then gio remove leaves only the destination file Original / glib / usage-gio-r15-copy-then-remove-cycle Passed
Writes a payload to source.txt, runs gio copy to dest.txt, then gio remove against source.txt, and asserts the destination retains the bytes while the source no longer exists.
gio info reports standard::size 0 for an empty regular file Original / glib / usage-gio-r15-info-standard-size-empty Passed
Creates a freshly truncated empty file and asserts gio info exposes the standard::size attribute as exactly 0 bytes for it.
gio list enumerates a freshly created file in its parent directory Original / glib / usage-gio-r15-list-shows-created-entry Passed
Creates a file named r15-listed.txt under a fresh directory and runs gio list against the directory, asserting the listing contains the created filename verbatim.
gio info --attributes=standard::display-name surfaces the basename verbatim Original / glib / usage-gio-r16-info-display-name-attribute Passed
Creates a file with a distinctive basename "r16-display.bin" under a tmpdir and asserts gio info --attributes=standard::display-name reports the basename string verbatim, exercising the display-name attribute on a regular file (where it falls back to basename).
gio info --attributes=standard::content-type returns text/plain for a .txt file Original / glib / usage-gio-r16-mime-text-plain-on-txt Passed
Writes an ASCII payload to a .txt file and asserts gio info --attributes=standard::content-type reports text/plain for the path, exercising the GIO content-type query against shared-mime-info.
gio mkdir creates a directory that subsequently shows up under gio list Original / glib / usage-gio-r16-mkdir-then-list-shows-entry Passed
Runs gio mkdir against a fresh path inside a tmpdir, asserts the directory exists on disk, then runs gio list against the parent and confirms the newly-created basename appears verbatim in the listing output.
gio move retires the source path and yields a queryable destination Original / glib / usage-gio-r16-move-then-info-on-destination Passed
Writes a payload to source.txt, runs gio move source.txt dest.txt, then asserts the source path is gone and gio info --attributes=standard::size on the destination reports the expected byte count, exercising the move-then-query path.
gio tree against a fresh directory enumerates a nested file path Original / glib / usage-gio-r16-tree-shows-nested-file Passed
Creates a fresh directory containing dir/sub/r16-leaf.txt, runs gio tree on the top directory, and asserts the output contains the nested basename "r16-leaf.txt", exercising the recursive enumeration walker.
gio cat reads a tmpdir fixture and prints the payload verbatim Original / glib / usage-gio-r17-cat-reads-fixture-payload-verbatim Passed
Writes a known ASCII payload "r17-gio-cat-marker" into a tmpdir file and asserts gio cat prints the exact payload string on stdout, exercising the basic local-file read path through the gio CLI distinct from gio cat tests that pipe URIs or empty files.
gio info --attributes=standard::content-type reports text/plain on a .txt file Original / glib / usage-gio-r17-info-content-type-text-plain-on-txt Passed
Creates a .txt file containing a short ASCII payload and asserts gio info --attributes=standard::content-type reports text/plain for it, exercising the standard::content-type attribute on a local file with a plain-text MIME signature.
gio info --attributes=unix::nlink reports a numeric link count on a regular file Original / glib / usage-gio-r17-info-unix-nlink-numeric-on-regular-file Passed
Creates a regular file under a tmpdir, runs gio info --attributes=unix::nlink, and asserts the rendered attribute value is a positive integer (at least 1), exercising the unix::nlink attribute on a freshly created file without pinning the exact value.
gio remove deletes a regular file and gio list omits the entry afterwards Original / glib / usage-gio-r17-remove-then-list-omits-entry Passed
Creates a tmpdir file r17-victim.bin, removes it via gio remove, and asserts gio list of the parent directory does not contain the basename, exercising the unlink-then-list sequence to confirm post-removal directory state.
gio rename renames a file and gio info reports the new basename verbatim Original / glib / usage-gio-r17-rename-then-info-on-new-name Passed
Creates a tmpdir file r17-old.bin, renames it to r17-new.bin via gio rename, and asserts gio info --attributes=standard::display-name on the new path reports the new basename verbatim, exercising the rename-then-info sequence on local URIs.
gio cat reads a three-line tmpdir fixture and emits the same line count Original / glib / usage-gio-r18-cat-multi-line-payload-line-count Passed
Writes a three-line ASCII fixture into a tmpdir and asserts gio cat emits exactly three newline-terminated lines on stdout, exercising the gio CLI local read path on a small multi-line payload distinct from single-line marker tests.
gio copy followed by gio info reports the same size at the destination Original / glib / usage-gio-r18-copy-then-info-shows-destination-size Passed
Writes a fixed-payload source file in a tmpdir, runs gio copy to a destination path, and asserts gio info -a standard::size at the destination reports the exact source byte count, exercising the gio copy plus info pipeline as a size-preservation check.
gio info standard::size reports 512 for a known 512-byte file Original / glib / usage-gio-r18-info-standard-size-512-bytes Passed
Creates a tmpdir file containing exactly 512 bytes of zero padding via dd and asserts gio info -a standard::size emits the exact "standard::size: 512" attribute line, exercising the size attribute query at a non-trivial byte count distinct from prior small-file tests.
gio list on a tmpdir with two files shows both filenames in its output Original / glib / usage-gio-r18-list-two-files-shows-both-names Passed
Creates two distinctly named files alpha.txt and beta.txt inside a tmpdir and asserts that gio list on the directory emits both filename strings on its stdout, exercising the directory enumeration projection on a deterministic two-entry directory.
gio rename keeps the payload bytes identical between original and renamed file Original / glib / usage-gio-r18-rename-target-content-equals-source-content Passed
Writes a 16-byte deterministic payload to a tmpdir source file, runs gio rename to give it a new basename in the same directory, and asserts gio cat on the renamed file produces the exact original byte sequence, exercising the rename operation as a content-preservation check distinct from listing-based rename tests.
gio info standard::content-type for a .txt fixture starts with text/ Original / glib / usage-gio-r19-info-standard-content-type-text-plain-utf8 Passed
Creates a tmpdir text file with a UTF-8 ASCII payload, runs gio info -a standard::content-type, and asserts the rendered attribute line starts with "standard::content-type: text/" reflecting the textual mime category, exercising the content-type sniffer distinct from prior mime-handler tests.
gio info reports unix::mode 33152 for a chmod 0600 regular file Original / glib / usage-gio-r19-info-unix-mode-0600-attribute Passed
Creates a tmpdir file, chmods it to 0600, and asserts gio info -a unix::mode reports the attribute line "unix::mode: 33152" matching the regular-file type bits plus 0600 permission bits, exercising the unix::mode attribute query distinct from prior list-format tests.
gio mkdir followed by gio info reports standard::type 2 (directory) Original / glib / usage-gio-r19-mkdir-then-info-standard-type-directory Passed
Runs gio mkdir to create a tmpdir subdirectory and asserts gio info -a standard::type reports the attribute line "standard::type: 2" matching the GFileType.DIRECTORY enum value, exercising the type attribute on a directory created via gio mkdir distinct from regular-file type tests.
gio save reads stdin and writes the exact payload to the destination file Original / glib / usage-gio-r19-save-stdin-writes-file-payload Passed
Pipes a deterministic ASCII payload into gio save and asserts the destination file in tmpdir contains exactly those bytes when read back with cat, exercising the gio save stdin-to-file projection distinct from copy and rename-based content checks.
gio tree on a two-level directory shows the leaf file at the third indent Original / glib / usage-gio-r19-tree-nested-directory-shows-leaf Passed
Builds a tmpdir/a/b/leaf.txt nested structure and asserts gio tree on the top-level directory emits a line containing the literal "leaf.txt", exercising the recursive-tree enumeration on a deterministic nested fixture distinct from flat list-based tests.
gio cat on a 256-byte binary file emits exactly 256 bytes on stdout Original / glib / usage-gio-r20-cat-binary-256-bytes-byte-count Passed
Writes 256 sequential bytes (0..255) to a binary file in tmpdir, runs gio cat against it, and asserts the captured stdout is exactly 256 bytes via wc -c, exercising the binary-safe byte-count fidelity of gio cat distinct from prior payload-equality or newline-count tests.
gio copy on a 1024-byte file preserves payload exactly via cmp Original / glib / usage-gio-r20-copy-preserves-payload-1024-bytes Passed
Creates a 1024-byte file with pseudo-random deterministic content from /dev/urandom (captured once), copies it via gio copy to a sibling path, and asserts the destination is byte-for-byte equal to the source with cmp, exercising the bulk-copy fidelity of gio copy for a non-trivial payload size distinct from prior empty/small/single-byte cases.
gio info standard::content-type reports application/octet-stream on a .bin file Original / glib / usage-gio-r20-info-standard-content-type-application-octet-stream Passed
Creates a tmpdir/data.bin file with binary header bytes 00 01 02 03 and runs gio info -a standard::content-type on it, asserting the output contains the line "standard::content-type: application/octet-stream", exercising the MIME-type sniffer mapping for binary data distinct from prior text/plain-on-txt cases.
gio info reports unix::mode 33261 for a chmod 0755 regular file Original / glib / usage-gio-r20-info-unix-mode-0755-attribute Passed
Creates a tmpdir file, chmods it to 0755, and asserts gio info -a unix::mode emits the line "unix::mode: 33261" matching the regular-file type bits (S_IFREG=0o100000=32768) plus 0755 permission bits (493), exercising the unix::mode attribute distinct from the existing 0600 case in r19.
gio mkdir followed by gio list shows three created directories Original / glib / usage-gio-r20-mkdir-then-list-shows-three-dirs Passed
Creates three sibling directories alpha, beta, gamma via gio mkdir in a tmpdir, runs gio list on the parent, and asserts the listing contains every directory name on its own row, exercising the multi-mkdir-then-list flow for a deterministic set of named entries distinct from prior single-mkdir or move-cycle tests.
gio cat on two files concatenates payloads and stdout byte count equals the sum Original / glib / usage-gio-r21-cat-two-files-total-byte-count Passed
Writes two files of sizes 100 and 250 bytes in tmpdir, runs gio cat with both as arguments, and asserts the captured stdout is exactly 350 bytes total (the sum of the two file sizes), exercising the multi-file concatenation byte-count invariant of gio cat distinct from prior single-file and multiple-filenames-only presence tests.
gio info standard::edit-name and standard::display-name agree for an ASCII filename Original / glib / usage-gio-r21-info-standard-edit-name-equals-display-name Passed
Creates a file named "r21-edit.txt" in tmpdir and asserts gio info -a 'standard::*' emits both "standard::edit-name: r21-edit.txt" and "standard::display-name: r21-edit.txt" on separate lines, exercising the equality of edit-name and display-name for an ASCII basename distinct from prior edit-name-only or display-name-only tests.
gio info -a standard::is-symlink reports FALSE for a regular file Original / glib / usage-gio-r21-info-standard-is-symlink-false Passed
Creates a regular file in tmpdir and asserts gio info -a standard::is-symlink emits the line "standard::is-symlink: FALSE", exercising the standard::is-symlink boolean attribute on a non-symlink target distinct from prior symlink-target attribute tests.
gio info reports unix::mode 33188 for a chmod 0644 regular file Original / glib / usage-gio-r21-info-unix-mode-0644-regular-file Passed
Creates a tmpdir file, chmods it to 0644, and asserts gio info -a unix::mode emits the line "unix::mode: 33188" matching the regular-file type bits (S_IFREG=0o100000=32768) plus 0644 permission bits (420), exercising the unix::mode attribute on the common 0644 mode distinct from the existing 0600 (r19) and 0755 (r20) cases.
gio tree on a three-level nested directory shows the deepest leaf filename Original / glib / usage-gio-r21-tree-three-level-nested-directory-shows-deepest-leaf Passed
Creates a three-level nested directory structure a/b/c/leaf.txt in tmpdir, runs gio tree from the top, and asserts the captured output contains the literal "leaf.txt" basename, exercising gio tree depth traversal to a three-level depth distinct from prior single-level and two-level nested tree tests.
gio removes file Original / glib / usage-gio-remove-file Passed
gio remove deletes multiple files in one invocation Original / glib / usage-gio-remove-multiple-files Passed
gio renames file in place Original / glib / usage-gio-rename-file Passed
gio rename swaps tmp suffix Original / glib / usage-gio-rename-tmp-suffix Passed
Renames a file from old.tmp to new.tmp via gio rename and verifies the new name exists with the original payload while the old path is gone.
gio saves stdin to file Original / glib / usage-gio-save-stdin-file Passed
gio set adjusts unix mode attribute Original / glib / usage-gio-set-attribute Passed
gio set string standard display-name reports unsupported on local fs Original / glib / usage-gio-set-display-name Passed
Attempts to set the standard::display-name attribute on a local file via gio set --type=string and verifies that the local file backend reports the documented "Setting attribute standard::display-name not supported" diagnostic without altering the file on disk.
gio mime registers and reports default handler Original / glib / usage-gio-trash-list-empty Passed
Registers a default mime handler with gio mime against an isolated XDG data home, then queries it back and verifies gio reports the registered desktop entry as the default.
gio tree lists nested directory Original / glib / usage-gio-tree-directory Passed
gio version prints GLib version Original / glib / usage-gio-version-banner Passed
glib resource compilation Original / glib / usage-glib-compile-resources Passed
gsettings boolean schema Original / glib / usage-glib-compile-schemas-boolean Passed
glib compile schemas double default Original / glib / usage-glib-compile-schemas-double Passed
glib compile schemas int array default Original / glib / usage-glib-compile-schemas-int-array Passed
glib compiles integer schema Original / glib / usage-glib-compile-schemas-int Passed
glib-compile-schemas string array Original / glib / usage-glib-compile-schemas-string-array-list Passed
glib compiles string array schema Original / glib / usage-glib-compile-schemas-string-array Passed
Compiles a GSettings schema with a string-array key and verifies gsettings reads the default list.
gsettings string schema Original / glib / usage-glib-compile-schemas-string Passed
glib-compile-schemas uint default Original / glib / usage-glib-compile-schemas-uint-default Passed
Compiles a schema with an unsigned integer key and verifies gsettings reads back the default uint value.
glib-compile-schemas builds schema Original / glib / usage-glib-compile-schemas Passed
gsettings reads custom schema Original / glib / usage-gsettings-read-schema Passed
PyGObject GLib base64 decode Original / glib / usage-python3-gi-base64-decode Passed
PyGObject base64 helpers Original / glib / usage-python3-gi-base64 Passed
PyGObject GLib.base64_encode/decode binary roundtrip Original / glib / usage-python3-gi-batch12-base64-roundtrip-binary Passed
Encodes binary bytes including NULs with GLib.base64_encode and decodes back via GLib.base64_decode, verifying the bytes round-trip exactly.
PyGObject GLib.Bytes equality and hash Original / glib / usage-python3-gi-batch12-bytes-equality Passed
Constructs two GLib.Bytes objects with identical content, verifies equal() returns True and hashing matches, and that different content yields equal() False.
PyGObject GLib.Checksum.reset reuses the digest object Original / glib / usage-python3-gi-batch12-checksum-reset Passed
Computes a SHA1 with GLib.Checksum, calls reset(), recomputes a different digest and verifies the second digest matches a fresh Checksum instance for the same data.
PyGObject GLib.KeyFile custom list separator Original / glib / usage-python3-gi-batch12-keyfile-set-list-separator Passed
Configures a GLib.KeyFile with a custom list separator and verifies get_string_list parses values split by that separator.
PyGObject GLib.Uri resolve_relative Original / glib / usage-python3-gi-batch12-uri-resolve-relative Passed
Uses GLib.Uri.resolve_relative to resolve a relative path against an absolute base URI and verifies the resolved URI string.
PyGObject GLib.utf8_strdown / utf8_strup roundtrip Original / glib / usage-python3-gi-batch12-utf8-strdown-strup Passed
Verifies GLib.utf8_strdown and GLib.utf8_strup correctly lowercase and uppercase ASCII and Latin-1 strings.
PyGObject GLib.Variant 'ay' byte-array roundtrip Original / glib / usage-python3-gi-batch12-variant-byte-array Passed
Constructs a GLib.Variant of type 'ay' (byte array) and verifies unpack returns the original byte sequence.
PyGObject GLib Bytes get_data round trip Original / glib / usage-python3-gi-bytes-roundtrip Passed
Builds a GLib.Bytes from a non-ASCII Python bytes payload, calls get_data, and verifies the round-tripped buffer matches the input byte-for-byte.
PyGObject GLib bytes size Original / glib / usage-python3-gi-bytes-size-payload Passed
PyGObject bytes size Original / glib / usage-python3-gi-bytes-size Passed
PyGObject bytes object Original / glib / usage-python3-gi-bytes Passed
PyGObject GLib checksum_for_bytes equals checksum_for_data Original / glib / usage-python3-gi-checksum-bytes-vs-data-parity Passed
Hashes the same payload through GLib.compute_checksum_for_bytes (GLib.Bytes input) and GLib.compute_checksum_for_data (raw bytes input) for SHA256 and SHA512 via PyGObject and asserts the two PyGObject entry points produce identical digests.
PyGObject GLib MD5 checksum Original / glib / usage-python3-gi-checksum-md5-string Passed
PyGObject MD5 checksum Original / glib / usage-python3-gi-checksum-md5 Passed
PyGObject GLib SHA1 checksum Original / glib / usage-python3-gi-checksum-sha1 Passed
PyGObject GLib SHA256 checksum Original / glib / usage-python3-gi-checksum-sha256-string Passed
Computes a SHA256 digest of a string through GLib compute_checksum_for_string and verifies the hex digest from PyGObject.
PyGObject GLib compute_checksum_for_string SHA-512 Original / glib / usage-python3-gi-checksum-sha512-string Passed
Computes the SHA-512 digest of the string abc through GLib.compute_checksum_for_string and verifies the canonical 128-character hex digest matches the FIPS 180-4 known-answer vector.
PyGObject GLib Checksum incremental update Original / glib / usage-python3-gi-checksum-update-incremental Passed
Feeds a payload to GLib.Checksum in two update() calls through PyGObject and verifies the digest matches a single-shot hash of the same bytes.
PyGObject GLib checksum Original / glib / usage-python3-gi-checksum Passed
PyGObject GLib.compute_checksum_for_data MD5 SHA256 SHA384 SHA512 KAT Original / glib / usage-python3-gi-compute-checksum-data-kat-all Passed
Computes MD5, SHA256, SHA384, and SHA512 digests of a fixed byte sequence with GLib.compute_checksum_for_data through PyGObject and checks every hex digest against a known answer.
PyGObject GLib.compute_checksum_for_data MD5 KAT Original / glib / usage-python3-gi-compute-checksum-data-md5 Passed
Computes an MD5 digest of a fixed byte sequence with GLib.compute_checksum_for_data through PyGObject and checks the resulting hex string against a known answer.
PyGObject GLib.compute_checksum_for_string SHA1 KAT Original / glib / usage-python3-gi-compute-checksum-string-sha1 Passed
Computes a SHA1 digest of a fixed string with GLib.compute_checksum_for_string through PyGObject and checks the resulting hex string against a known answer.
PyGObject Gio data input stream Original / glib / usage-python3-gi-data-input-stream-line Passed
PyGObject GLib Date dmy fields Original / glib / usage-python3-gi-date-dmy-format Passed
Constructs a GLib.Date with new_dmy from PyGObject and verifies day, month, year, weekday, and Julian day fields.
PyGObject date time Original / glib / usage-python3-gi-date-time Passed
PyGObject GLib DateTime ISO 8601 Original / glib / usage-python3-gi-datetime-iso-string Passed
PyGObject GLib environ setenv unsetenv Original / glib / usage-python3-gi-environ-setenv Passed
Mutates a fresh environ list with GLib.environ_setenv and GLib.environ_unsetenv from PyGObject and verifies entries are added, overridden, and removed.
PyGObject Gio file enumerator Original / glib / usage-python3-gi-file-enumerator-names Passed
Enumerates directory entries through Gio with PyGObject and verifies both filenames are reported.
PyGObject file enumerator Original / glib / usage-python3-gi-file-enumerator Passed
PyGObject file load contents Original / glib / usage-python3-gi-file-load-contents Passed
PyGObject file exists query Original / glib / usage-python3-gi-file-query-exists Passed
Uses Gio.File through PyGObject to query whether a local path exists and verifies the boolean result.
PyGObject Gio replace contents Original / glib / usage-python3-gi-file-replace-contents Passed
Replaces file contents with Gio.File.replace_contents through PyGObject and reads the new payload back.
PyGObject GLib filename_to_uri roundtrip Original / glib / usage-python3-gi-filename-uri-roundtrip Passed
Converts a path containing whitespace to a file:// URI with GLib.filename_to_uri and converts it back with GLib.filename_from_uri, verifying percent-encoding and the recovered path.
PyGObject GLib find_program_in_path locates sh Original / glib / usage-python3-gi-find-program-in-path Passed
Calls GLib.find_program_in_path through PyGObject for /bin/sh and verifies the resolved absolute path is executable.
PyGObject GLib format_size_full unit modes Original / glib / usage-python3-gi-format-size-iec-vs-si Passed
Formats the same byte count with default SI units, IEC_UNITS, and LONG_FORMAT flags through GLib.format_size_full and verifies the kB, KiB, and parenthesised exact byte count renderings.
PyGObject GLib format_size zero edge case Original / glib / usage-python3-gi-format-size-zero Passed
Calls GLib.format_size(0) through PyGObject and verifies the singular bytes formatting of a zero-byte input under the C locale.
PyGObject GLib format size Original / glib / usage-python3-gi-format-size Passed
Formats a byte count with GLib.format_size through PyGObject and verifies a human-readable string.
PyGObject Gio file read Original / glib / usage-python3-gi-gio-file Passed
PyGObject GLib HMAC-SHA256 known-answer test Original / glib / usage-python3-gi-hmac-sha256-kat Passed
Computes HMAC-SHA256 of a fixed message under a fixed key through GLib.compute_hmac_for_bytes via PyGObject and asserts the digest matches a precomputed RFC-style known-answer.
PyGObject GLib hostname classification Original / glib / usage-python3-gi-hostname-classification Passed
Calls GLib.hostname_is_ip_address and hostname_is_non_ascii on representative inputs and verifies IPv4, IPv6, ASCII, and non-ASCII names are classified correctly.
PyGObject GLib idle add Original / glib / usage-python3-gi-idle-add Passed
Runs a GLib idle callback through PyGObject and verifies the callback updates state before the loop exits.
PyGObject idle callback Original / glib / usage-python3-gi-idle-callback Passed
PyGObject GLib IOChannel read_line Original / glib / usage-python3-gi-iochannel-read-line Passed
Opens a local text file with GLib.IOChannel.new_file from PyGObject and reads it line by line, verifying line count and content of the first and last line.
PyGObject GLib KeyFile comment roundtrip Original / glib / usage-python3-gi-keyfile-comment Passed
Sets a top comment on a GLib.KeyFile group through PyGObject and verifies it round-trips through to_data and reload.
PyGObject GLib KeyFile double Original / glib / usage-python3-gi-keyfile-double Passed
Stores and reads a floating-point value through GLib KeyFile from PyGObject and verifies the round-tripped number.
PyGObject GLib KeyFile groups Original / glib / usage-python3-gi-keyfile-groups Passed
PyGObject GLib KeyFile integer list Original / glib / usage-python3-gi-keyfile-integer-list Passed
PyGObject KeyFile keys Original / glib / usage-python3-gi-keyfile-keys Passed
PyGObject GLib KeyFile load_from_file Original / glib / usage-python3-gi-keyfile-load-from-file Passed
Persists a KeyFile to disk and reloads it via GLib.KeyFile.load_from_file through PyGObject, verifying values and group lookup survive the round trip.
PyGObject keyfile round trip Original / glib / usage-python3-gi-keyfile-roundtrip Passed
PyGObject GLib KeyFile Original / glib / usage-python3-gi-keyfile Passed
PyGObject GLib main loop Original / glib / usage-python3-gi-mainloop Passed
PyGObject GLib markup escape Original / glib / usage-python3-gi-markup-escape Passed
PyGObject memory input stream read Original / glib / usage-python3-gi-memory-input-stream-read Passed
PyGObject Gio memory input stream Original / glib / usage-python3-gi-memory-input-stream Passed
PyGObject memory output stream Original / glib / usage-python3-gi-memory-output-stream Passed
Writes bytes into a Gio memory output stream through PyGObject and verifies the captured payload.
PyGObject memory stream Original / glib / usage-python3-gi-memory-stream Passed
PyGObject GLib basename Original / glib / usage-python3-gi-path-basename-batch11 Passed
PyGObject GLib.Bytes.compare yields lexicographic ordering Original / glib / usage-python3-gi-r10-bytes-compare-ordering Passed
Constructs three GLib.Bytes objects and verifies Bytes.compare returns negative, zero, and positive for the lexicographic less-than, equal, and greater-than cases.
PyGObject GLib.compute_hmac_for_data MD5 RFC 2104 KAT Original / glib / usage-python3-gi-r10-compute-hmac-md5 Passed
Computes HMAC-MD5 of "Hi There" with a 16-byte 0x0b key via GLib.compute_hmac_for_data and verifies the digest matches the RFC 2104 published value.
PyGObject GLib.shell_unquote inverts shell_quote Original / glib / usage-python3-gi-r10-shell-unquote Passed
Quotes a string containing whitespace and a single quote with GLib.shell_quote, unquotes it with GLib.shell_unquote, and verifies the round-tripped value matches the original.
PyGObject GLib.utf8_strlen counts characters not bytes Original / glib / usage-python3-gi-r10-utf8-strlen-multibyte Passed
Verifies GLib.utf8_strlen returns the unicode character count (5) for a multi-byte UTF-8 string whose byte length (8) is larger.
PyGObject GLib.Variant 'mi' maybe-int distinguishes None and 42 Original / glib / usage-python3-gi-r10-variant-maybe-int Passed
Constructs Variant 'mi' with a value and with None, verifies type string is 'mi' and unpack returns the original int or None.
PyGObject GLib.Variant 'a{sv}' lookup_value finds nested values Original / glib / usage-python3-gi-r10-variant-vardict-lookup Passed
Builds a Variant 'a{sv}' with mixed-type entries and verifies lookup_value returns the original Variant for present keys and None for missing keys.
PyGObject GLib.get_monotonic_time delta exceeds elapsed sleep Original / glib / usage-python3-gi-r11-monotonic-time-delta-after-sleep Passed
Captures GLib.get_monotonic_time before and after a 100 ms time.sleep, and verifies the microsecond delta is at least 100000 us and less than 5_000_000 us, demonstrating the monotonic clock advances and is independent of wall-clock changes.
PyGObject GLib.quark_from_string deduplicates equal strings to the same id Original / glib / usage-python3-gi-r11-quark-from-string-deduplicates Passed
Calls GLib.quark_from_string twice with the same string, once with a different string, and verifies the two equal-string calls return the same numeric quark id while the different string yields a distinct id; also verifies quark_to_string round-trips back to the original.
PyGObject GLib.unichar_is{alpha,digit,upper} classify ASCII characters Original / glib / usage-python3-gi-r11-unichar-isalpha-isdigit-isupper Passed
Calls GLib.unichar_isalpha, unichar_isdigit, and unichar_isupper on representative ASCII characters and verifies the boolean results match Unicode classification (alpha for letters, digit for 0-9, upper for capitals).
PyGObject GLib.utf8_casefold expands German sharp s to ss Original / glib / usage-python3-gi-r11-utf8-casefold-german-strasse Passed
Calls GLib.utf8_casefold on the German "Straße" and "STRASSE" and verifies both fold to the same lower-case ASCII "strasse" string, demonstrating Unicode case-folding (sharp-s expansion) distinct from a simple ASCII tolower.
PyGObject GLib.utf8_normalize NFD decomposes precomposed e-acute Original / glib / usage-python3-gi-r11-utf8-normalize-nfd-decomposes-eacute Passed
Calls GLib.utf8_normalize with NormalizeMode.NFD on a precomposed U+00E9 (e-acute), and verifies the result decomposes to two codepoints U+0065 U+0301 (Latin small e plus combining acute), distinct from the NFC roundtrip which preserves the single precomposed codepoint.
PyGObject GLib.DateTime new_utc formats a fixed UTC timestamp via format Original / glib / usage-python3-gi-r12-datetime-format-utc-iso Passed
Constructs GLib.DateTime.new_utc(2024,3,14,15,9,26.535) and asserts format("%Y-%m-%dT%H:%M:%S") returns the expected ISO-style string.
PyGObject Gio.File.new_for_path load_contents reads back UTF-8 payload Original / glib / usage-python3-gi-r12-gio-file-load-contents-roundtrip Passed
Writes a UTF-8 file on disk, opens it via Gio.File.new_for_path, calls load_contents, and asserts the returned bytes decode to the original string.
PyGObject GLib.KeyFile set_string_list serializes semicolon-terminated list Original / glib / usage-python3-gi-r12-keyfile-set-string-list Passed
Calls KeyFile.set_string_list with a 3-element list and asserts the serialized to_data emits the canonical semicolon-separated, semicolon-terminated form.
PyGObject GLib.MainLoop quits from a 50 ms timeout callback Original / glib / usage-python3-gi-r12-mainloop-timeout-quits Passed
Schedules a GLib.timeout_add callback that invokes loop.quit and asserts MainLoop.run returns after the timeout fires, with the callback observed exactly once.
PyGObject GLib.Variant.parse round-trips a (sis) tuple via print/parse Original / glib / usage-python3-gi-r12-variant-parse-tuple-roundtrip Passed
Builds a Variant with signature (sis), prints it, parses the printed text back with GLib.Variant.parse, and asserts the recovered tuple components match.
PyGObject Gio.Cancellable starts uncancelled and reports cancelled after cancel Original / glib / usage-python3-gi-r13-cancellable-not-cancelled-by-default Passed
Constructs a fresh Gio.Cancellable, asserts is_cancelled returns False, then invokes cancel() and asserts is_cancelled returns True on the same instance.
PyGObject GLib.Checksum incremental SHA256 matches the FIPS 'abc' KAT Original / glib / usage-python3-gi-r13-checksum-sha256-string-kat Passed
Builds a GLib.Checksum with ChecksumType.SHA256, feeds the bytes of 'abc' through update, and asserts get_string returns the canonical FIPS 180-4 KAT digest ba7816bf...20015ad.
PyGObject GLib.hostname_is_ip_address classifies IPv4, IPv6, and DNS labels distinctly Original / glib / usage-python3-gi-r13-hostname-is-ip-address-classification Passed
Calls GLib.hostname_is_ip_address on three representative inputs (192.168.0.1, ::1, and example.com) and asserts the boolean classification distinguishes the two literal IPs from a DNS hostname.
PyGObject GLib.IOChannel writes a multi-line payload and reads it back line by line Original / glib / usage-python3-gi-r13-iochannel-write-then-read-line Passed
Opens an IOChannel for writing, emits three text lines, flushes, reopens the file for reading, and asserts read_line yields the same three lines in order before reaching EOF.
PyGObject Gio.MemoryInputStream reads bytes back across two read_bytes calls Original / glib / usage-python3-gi-r13-memory-input-stream-multi-chunk-read Passed
Builds a MemoryInputStream from a 12-byte payload, reads two 6-byte chunks via read_bytes, and asserts the concatenated bytes equal the original input.
PyGObject GLib.Uri.parse exposes scheme, host, path, and query components Original / glib / usage-python3-gi-r13-uri-parse-query-component Passed
Parses an https URL with a query string through GLib.Uri.parse and asserts get_scheme, get_host, get_path, and get_query each return the expected component.
PyGObject GLib.utf8_validate accepts ASCII and multibyte UTF-8 input Original / glib / usage-python3-gi-r13-utf8-validate-pure-ascii Passed
Calls GLib.utf8_validate on a pure-ASCII byte string and on the multibyte UTF-8 encoding of 'café', asserting the (valid, end) tuple in each case reports True with an empty end-pointer remainder.
PyGObject GLib.Bytes.new round-trips a payload through get_data and get_size Original / glib / usage-python3-gi-r14-bytes-new-get-data-roundtrip Passed
Constructs a GLib.Bytes from a 5-byte payload via GLib.Bytes.new, asserts get_size returns 5, and asserts bytes(get_data()) equals the original payload byte-for-byte.
PyGObject GLib.compute_checksum_for_string returns canonical SHA-256 hex Original / glib / usage-python3-gi-r14-compute-checksum-for-string-sha256 Passed
Calls GLib.compute_checksum_for_string with ChecksumType.SHA256 on the literal 'abc' (with length=-1) and asserts the returned hex digest equals the published SHA-256 known-answer ba7816bf...f20015ad.
PyGObject Gio.AppInfo.get_all returns a list whose entries expose get_name Original / glib / usage-python3-gi-r14-gio-appinfo-get-all-list Passed
Calls Gio.AppInfo.get_all and asserts the result is a Python list (possibly empty under a minimal install) where every present entry exposes a callable get_name returning a string.
PyGObject Gio.File.parse_name builds a GFile whose path matches the input Original / glib / usage-python3-gi-r14-gio-file-parse-name-roundtrip Passed
Calls Gio.File.parse_name with an absolute filesystem path and asserts the returned GFile reports get_path equal to the input and get_uri starts with the 'file://' scheme prefix.
PyGObject GLib.shell_quote escapes spaces and round-trips via shell_unquote Original / glib / usage-python3-gi-r14-shell-quote-roundtrip Passed
Calls GLib.shell_quote on the string 'r14 with spaces' and asserts the quoted output is longer than the input, then unquotes via GLib.shell_unquote and asserts the round-tripped value equals the original byte-for-byte.
PyGObject GLib.utf8_strup and utf8_strdown invert each other for ASCII Original / glib / usage-python3-gi-r14-utf8-strup-strdown-ascii Passed
Calls GLib.utf8_strup on 'GLib R14' to obtain the upper-case form 'GLIB R14' and GLib.utf8_strdown on the same input to obtain 'glib r14', asserting both transformations match exact expected ASCII output.
PyGObject GLib.Variant.print round-trips through GLib.Variant.parse Original / glib / usage-python3-gi-r14-variant-print-roundtrip Passed
Builds a Variant of type '(si)' carrying ('r14', 7), prints it with print_(False) to obtain the textual format, parses the textual representation back through GLib.Variant.parse, and asserts the round-tripped Variant equals the original.
PyGObject GLib.compute_checksum_for_string returns the canonical MD5 of the empty string Original / glib / usage-python3-gi-r15-checksum-md5-empty-string Passed
Calls GLib.compute_checksum_for_string with the MD5 algorithm against the empty string '' and length 0, asserting the result equals the canonical MD5 hex digest 'd41d8cd98f00b204e9800998ecf8427e'.
PyGObject GLib.format_size_full with IEC_UNITS produces a MiB-suffixed binary representation Original / glib / usage-python3-gi-r15-format-size-iec-binary Passed
Calls GLib.format_size_full(1048576, GLib.FormatSizeFlags.IEC_UNITS) and asserts the formatted string contains 'MiB' (binary IEC prefix), distinguishing it from the SI 'MB' default representation.
PyGObject Gio.File.make_directory creates a fresh directory on disk Original / glib / usage-python3-gi-r15-gio-file-make-directory Passed
Builds a Gio.File for a non-existent path under tmpdir, calls make_directory(None), and asserts os.path.isdir reports the new path as an existing directory after the call.
PyGObject GLib.KeyFile set_boolean and get_boolean round-trip both true and false Original / glib / usage-python3-gi-r15-keyfile-set-get-boolean Passed
Constructs a GLib.KeyFile, sets boolean keys 'enabled'=True and 'disabled'=False under group 'r15', and asserts get_boolean returns True and False respectively for each key.
PyGObject GLib.Uri.escape_string percent-encodes spaces as %20 Original / glib / usage-python3-gi-r15-uri-escape-string-spaces Passed
Calls GLib.Uri.escape_string('hello world r15', None, False) and asserts the returned encoded string equals 'hello%20world%20r15', confirming spaces are percent-encoded.
PyGObject GLib.utf8_strup uppercases an ASCII string deterministically Original / glib / usage-python3-gi-r15-utf8-strup-locale-german Passed
Calls GLib.utf8_strup against the lowercase ASCII string 'hello-r15' and asserts the result is 'HELLO-R15', confirming uppercase folding for the ASCII subset is locale-independent.
PyGObject GLib.Variant 'x' carries int64 values at signed 64-bit boundaries Original / glib / usage-python3-gi-r15-variant-int64-bounds Passed
Builds GLib.Variant('x', value) for both INT64_MIN and INT64_MAX, asserts get_int64 returns the requested value at each boundary, and verifies type_string is 'x'.
PyGObject GLib.Bytes.new + get_data round-trips a Python bytes buffer Original / glib / usage-python3-gi-r16-bytes-new-and-get-data-roundtrip Passed
Constructs a GLib.Bytes object via GLib.Bytes.new on a known 16-byte payload, then asserts get_size returns 16 and get_data() returns the same bytes, exercising the immutable-byte-buffer round-trip path.
PyGObject GLib.compute_checksum_for_string returns the canonical SHA256 of "abc" Original / glib / usage-python3-gi-r16-checksum-sha256-known-string Passed
Calls GLib.compute_checksum_for_string with the SHA256 algorithm against the ASCII string "abc" and length 3 and asserts the result equals the canonical SHA256 hex digest ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.
PyGObject GLib.KeyFile.load_from_data parses a literal INI string and returns the stored value Original / glib / usage-python3-gi-r16-keyfile-load-from-data-string-roundtrip Passed
Builds an INI document with a [section] header and key=value pair, passes it to GLib.KeyFile.load_from_data with GLib.KeyFileFlags.NONE, and asserts get_string('section', 'key') returns the original literal value, exercising the in-memory load path distinct from set/get round-trips.
PyGObject GLib.Uri.parse extracts scheme/host/port from a typical URI Original / glib / usage-python3-gi-r16-uri-parse-scheme-host-port Passed
Calls GLib.Uri.parse against "https://example.com:8443/path?q=r16" with GLib.UriFlags.NONE and asserts the returned object exposes scheme='https', host='example.com', and port=8443, exercising the GLib URI parser through Python bindings.
PyGObject GLib.Variant 'as' round-trips a Python list of strings via unpack() Original / glib / usage-python3-gi-r16-variant-string-array-as-list Passed
Constructs GLib.Variant('as', ['alpha', 'beta', 'gamma']), asserts the type_string is 'as', that get_n_children returns 3, and that unpack() returns the original Python list, exercising the array-of-strings serialisation path.
PyGObject GLib.Bytes.compare returns zero for equal and non-zero for different buffers Original / glib / usage-python3-gi-r17-bytes-compare-equal-and-different Passed
Builds two GLib.Bytes objects with identical 8-byte payloads plus one with a different payload, calls GLib.Bytes.compare across the pairs, and asserts the same-payload comparison returns 0 while the different-payload comparison returns a non-zero integer, exercising the GLib.Bytes byte-wise comparator.
PyGObject GLib.Checksum SHA1 of "abc" equals the published RFC 3174 digest Original / glib / usage-python3-gi-r17-checksum-sha1-known-string-abc Passed
Constructs a GLib.Checksum with type SHA1, feeds the three-byte literal "abc", and asserts get_string returns the lowercase hex digest a9993e364706816aba3e25717850c26c9cd0d89d as documented by RFC 3174, exercising the SHA1 surface distinct from existing SHA256 tests.
PyGObject GLib.Date.new_dmy preserves year on get_year readback Original / glib / usage-python3-gi-r17-date-new-dmy-get-year-roundtrip Passed
Constructs a GLib.Date via new_dmy(15, GLib.DateMonth.MAY, 2026) and asserts get_day, get_month, and get_year report the same values back, exercising the date constructor and accessor path with a distinct calendar date.
PyGObject GLib.Variant.new_tuple round-trips through print/parse with type (si) Original / glib / usage-python3-gi-r17-variant-tuple-si-parse-print-roundtrip Passed
Constructs a GLib.Variant of type (si) holding ("r17", 42), prints it via print_(False), parses it back via GLib.Variant.parse and asserts the recovered tuple matches the original via get_string and get_int32, exercising the textual print/parse pair on a heterogeneous tuple.
PyGObject GLib.compute_checksum_for_string with SHA384 returns the FIPS abc digest Original / glib / usage-python3-gi-r18-checksum-sha384-known-string-abc Passed
Calls GLib.compute_checksum_for_string with GLib.ChecksumType.SHA384 over the three-byte ASCII string "abc" and asserts the resulting hex string equals the standard FIPS 180-2 digest, exercising the SHA384 algorithm path through the convenience wrapper distinct from prior SHA256 known-vector tests.
PyGObject GLib.DateTime add_days returns a timestamp seven days later Original / glib / usage-python3-gi-r18-datetime-add-days-roundtrip Passed
Builds a GLib.DateTime at a fixed UTC instant via new_utc, calls add_days(7), and asserts the to_unix difference between the result and the source equals exactly 7 times 86400 seconds, exercising the date arithmetic helper on a deterministic UTC anchor.
PyGObject GLib.KeyFile set_integer and get_integer round-trip a positive value Original / glib / usage-python3-gi-r18-keyfile-set-integer-roundtrip Passed
Builds an empty GLib.KeyFile, calls set_integer for a key in a group with the value 42, then calls get_integer on the same group and key and asserts the returned Python int equals 42, exercising the integer scalar setter and getter pair.
PyGObject GLib.Uri.build with explicit query and fragment renders a stable string Original / glib / usage-python3-gi-r18-uri-build-with-query-and-fragment Passed
Calls GLib.Uri.build with scheme https, host example.test, path /a/b, query "k=v", and fragment "frag" and asserts the rendered string via to_string starts with "https://example.test/a/b" and ends with the "?k=v#frag" suffix, exercising the structured URI assembler distinct from parse-and-extract tests.
PyGObject GLib.Variant a{si} round-trips three int32 values through lookup_value Original / glib / usage-python3-gi-r18-variant-dict-of-int32-build-and-lookup Passed
Builds a GLib.Variant with type signature a{si} containing three string-keyed int32 entries, then calls lookup_value on each key and asserts the unpacked int32 value matches the original Python int, exercising the dict-of-int variant construction and per-key lookup distinct from string-array variant tests.
PyGObject GLib.canonicalize_filename resolves dot and dotdot components Original / glib / usage-python3-gi-r19-canonicalize-filename-dotdot-resolves Passed
Calls GLib.canonicalize_filename on the path "/a/b/../c/./d" with a None relative-to argument and asserts the returned string equals "/a/c/d" with both the parent-dir and current-dir components removed, exercising the path canonicalisation helper.
PyGObject GLib.Checksum SHA512 incremental update of "abc" equals the FIPS 180-4 digest Original / glib / usage-python3-gi-r19-checksum-new-sha512-abc-known-digest Passed
Constructs a GLib.Checksum with type SHA512, calls update on the three-byte literal "abc", and asserts get_string returns the lowercase 128-character hex digest ddaf35...ca49f from FIPS 180-4, exercising the incremental-update Checksum surface for SHA512 distinct from prior compute_checksum_for_string tests.
PyGObject GLib.compute_hmac_for_string SHA1 with key="key" on the quick-brown-fox vector Original / glib / usage-python3-gi-r19-compute-hmac-sha1-key-quick-brown-fox Passed
Calls GLib.compute_hmac_for_string with ChecksumType.SHA1, key bytes b"key", and the well-known string "The quick brown fox jumps over the lazy dog" and asserts the returned hex digest equals de7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9 from RFC HMAC-SHA1 reference, exercising the HMAC-SHA1 surface distinct from prior HMAC-SHA256 and HMAC-MD5 tests.
PyGObject GLib.Variant("ay") exposes per-index byte values via get_child_value().get_byte Original / glib / usage-python3-gi-r19-variant-ay-indexed-byte-access Passed
Builds a GLib.Variant with type signature ay containing the four bytes [1, 2, 3, 255], iterates each index, and asserts get_child_value(i).get_byte() returns the original byte sequence, exercising the byte-array variant indexed-access path distinct from int32 array and string-array tests.
PyGObject GLib.Variant.is_container distinguishes tuple (true) from scalar int (false) Original / glib / usage-python3-gi-r19-variant-is-container-tuple-vs-int Passed
Builds a tuple variant GLib.Variant("(si)") and a scalar int variant GLib.Variant("i") and asserts is_container returns True for the tuple and False for the int, exercising the variant container-classification predicate on a deterministic pair of types.
PyGObject GLib.compute_checksum_for_string SHA256 of empty string equals canonical digest Original / glib / usage-python3-gi-r20-checksum-sha256-empty-string-known-digest Passed
Calls GLib.compute_checksum_for_string with SHA256 over the empty string and asserts the returned 64-character hex digest equals the canonical FIPS-180-4 value e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855, exercising the SHA256 known-answer test for the zero-length input distinct from the existing MD5 empty-string test.
PyGObject GLib.format_size on 1024 emits a human string starting with "1.0" Original / glib / usage-python3-gi-r20-format-size-1024-bytes-prefix Passed
Calls GLib.format_size with value 1024 and asserts the returned human-readable string starts with the literal prefix "1.0" (e.g. "1.0 kB" in SI mode by default), exercising the SI-prefix formatter at exactly one binary kilobyte distinct from prior zero-input and IEC-vs-SI parity tests.
PyGObject GLib.KeyFile.set_double then get_double roundtrips 3.14159 Original / glib / usage-python3-gi-r20-keyfile-set-double-roundtrip Passed
Constructs a GLib.KeyFile and calls set_double on group="math" key="pi" with value 3.14159, then immediately calls get_double on the same group/key and asserts the returned float is within 1e-9 of 3.14159, exercising the typed double setter/getter pairing distinct from prior string/integer/boolean key tests.
PyGObject GLib.uri_escape_string leaves unreserved ~ and percent-encodes ! Original / glib / usage-python3-gi-r20-uri-escape-reserved-bang-tilde Passed
Calls GLib.uri_escape_string on the literal "hello!~" with no reserved characters and allow_utf8=False, asserting the result equals "hello%21~" since RFC 3986 marks "~" as unreserved (kept verbatim) while "!" is in the reserved set and gets percent-encoded as %21, exercising the URI escape character classification distinct from prior space-only tests.
PyGObject GLib.Variant byte-array "ay" roundtrips a non-trivial byte sequence Original / glib / usage-python3-gi-r20-variant-byte-array-roundtrip Passed
Builds a GLib.Variant of type "ay" from a Python bytes payload b"\x00\x01\x02hello\xff", round-trips it via GVariant.unpack and asserts the recovered Python list equals [0, 1, 2, 104, 101, 108, 108, 111, 255], exercising the byte-array Variant construction and unpacking distinct from prior indexed-byte-access tests.
PyGObject GLib.Bytes.new(b'') reports size 0 and equality with another empty Bytes Original / glib / usage-python3-gi-r21-bytes-new-zero-length-get-size Passed
Constructs a GLib.Bytes from a zero-length Python bytes object and asserts get_size() returns 0, get_data() returns an empty bytes object, and equal() returns True against a second zero-length GLib.Bytes, exercising the empty-Bytes boundary case distinct from prior nonempty-payload Bytes roundtrip tests.
PyGObject GLib.markup_escape_text escapes all four canonical XML special characters Original / glib / usage-python3-gi-r21-markup-escape-amp-lt-gt-quote Passed
Calls GLib.markup_escape_text on the string '&<>"\'' and asserts the returned text equals "&<>"'" (the canonical XML entity escapes for ampersand, less-than, greater-than, double-quote, and apostrophe), exercising the full XML-markup escape set distinct from prior single-char or partial-set escape tests.
PyGObject GLib.spawn_command_line_sync('/bin/true') returns success and exit status zero Original / glib / usage-python3-gi-r21-spawn-command-line-sync-true-exit-zero Passed
Calls GLib.spawn_command_line_sync('/bin/true') and asserts the tuple returns success True with empty stdout/stderr bytes and exit status equal to 0, exercising the spawn-sync wrapper return-value shape on a known-success command distinct from the existing spawn-command-line-sync test that only verified stdout payload.
PyGObject GLib.Uri.parse extracts userinfo from https://user:pass@host/path Original / glib / usage-python3-gi-r21-uri-parse-userinfo-component Passed
Calls GLib.Uri.parse on the URI "https://alice:secret@example.com:443/api" with NONE flags and asserts the resulting GUri.get_userinfo() returns "alice:secret", get_host() returns "example.com", get_port() returns 443 and get_scheme() returns "https", exercising the userinfo extraction distinct from the existing scheme/host/port and query-component parse tests.
PyGObject GLib.Variant '(ii)' tuple of two int32 unpacks to the same Python tuple Original / glib / usage-python3-gi-r21-variant-int-tuple-ii-roundtrip Passed
Builds a GLib.Variant of type '(ii)' from a Python tuple (12345, -6789) and asserts unpack returns the same two-element tuple with both elements as Python ints, exercising the int32 pair tuple Variant roundtrip distinct from the existing tuple-int-only and tuple-string-vardict tests.
PyGObject GLib regex match Original / glib / usage-python3-gi-regex-match Passed
Matches a string with GLib.regex_match_simple through PyGObject and verifies the boolean result.
PyGObject GLib shell parse argv Original / glib / usage-python3-gi-shell-parse-argv-batch11 Passed
PyGObject GLib.shell_parse_argv produces argv list for rich command lines Original / glib / usage-python3-gi-shell-parse-argv-rich Passed
Parses a command line containing flag-value pairs, double-quoted arguments with spaces, escaped quotes, and a literal dollar token through PyGObject and verifies every argv element.
PyGObject GLib shell quote Original / glib / usage-python3-gi-shell-quote-batch11 Passed
PyGObject GLib spawn_command_line_sync echo Original / glib / usage-python3-gi-spawn-command-line-sync Passed
Runs /bin/echo through GLib.spawn_command_line_sync from PyGObject and verifies the captured stdout, exit status, and empty stderr.
PyGObject GLib uri escape Original / glib / usage-python3-gi-string-replace Passed
Escapes a URI component through GLib uri_escape_string from PyGObject and verifies the percent-encoded output.
PyGObject timeout callback Original / glib / usage-python3-gi-timeout-callback Passed
PyGObject GLib Unix epoch date Original / glib / usage-python3-gi-unix-epoch-year-batch11 Passed
PyGObject GLib Uri build Original / glib / usage-python3-gi-uri-build Passed
Constructs a URI from components with GLib.Uri.build through PyGObject and verifies the serialized string.
PyGObject URI escaping Original / glib / usage-python3-gi-uri-escape Passed
PyGObject GLib uri_list_extract_uris Original / glib / usage-python3-gi-uri-list-extract Passed
Splits a text/uri-list payload through GLib.uri_list_extract_uris and verifies comment lines are dropped while three URIs are preserved in order.
PyGObject GLib URI parse Original / glib / usage-python3-gi-uri-parse-components Passed
PyGObject GLib.Uri.parse exposes full GUri inspection Original / glib / usage-python3-gi-uri-parse-guri-inspection Passed
Parses an authority-rich URI into a GUri through PyGObject and verifies scheme, user, password, host, port, path, query, and fragment accessors all return the expected components.
PyGObject URI parse Original / glib / usage-python3-gi-uri-parse Passed
PyGObject GLib URI unescape Original / glib / usage-python3-gi-uri-unescape-batch11 Passed
PyGObject GLib user data dir Original / glib / usage-python3-gi-user-data-dir Passed
Reads the XDG user data directory through GLib.get_user_data_dir and verifies it honors XDG_DATA_HOME.
PyGObject GLib.utf8_collate orders strings consistently Original / glib / usage-python3-gi-utf8-collate-ordering Passed
Compares strings via GLib.utf8_collate through PyGObject and verifies the sign of the result for less-than, greater-than, and equal cases.
PyGObject GLib utf8_strreverse and strlen Original / glib / usage-python3-gi-utf8-strreverse Passed
Reverses an ASCII string and counts a multibyte UTF-8 string with GLib.utf8_strreverse and GLib.utf8_strlen, confirming the codepoint count for caf and the reversal of hello.
PyGObject GLib random UUID Original / glib / usage-python3-gi-uuid-random-batch11 Passed
PyGObject UUID string Original / glib / usage-python3-gi-uuid-string Passed
PyGObject GLib.Variant ai populated and empty arrays Original / glib / usage-python3-gi-variant-ai-empty-and-populated Passed
Constructs GLib.Variant("ai", ...) for a populated and an empty integer array through PyGObject and verifies n_children, unpack, and the type signature match the construction inputs.
PyGObject GLib string array variant Original / glib / usage-python3-gi-variant-array-strings Passed
Builds a GLib string array variant through PyGObject and verifies child count and an indexed string element.
PyGObject GLib Variant boolean get_boolean Original / glib / usage-python3-gi-variant-bool-get Passed
Constructs a boolean GLib Variant in PyGObject and verifies get_boolean returns True for a true-valued variant and False for a false-valued one.
PyGObject GLib VariantBuilder array Original / glib / usage-python3-gi-variant-builder-array Passed
PyGObject GLib variant dict Original / glib / usage-python3-gi-variant-dict-count Passed
Builds a GLib VariantDict through PyGObject and verifies a typed lookup returns the inserted integer.
PyGObject variant dict Original / glib / usage-python3-gi-variant-dict Passed
PyGObject GLib Variant double get_double roundtrip Original / glib / usage-python3-gi-variant-double-get Passed
Builds a double-typed GLib Variant in PyGObject and verifies get_double roundtrips the floating-point value within a small epsilon.
PyGObject GLib Variant get_strv Original / glib / usage-python3-gi-variant-get-strv Passed
Builds a string-array GLib.Variant and reads it back as a native string list with Variant.get_strv() through PyGObject.
PyGObject GLib int array variant Original / glib / usage-python3-gi-variant-int-array-batch11 Passed
PyGObject GLib variant lookup Original / glib / usage-python3-gi-variant-lookup Passed
PyGObject GLib Variant text parse Original / glib / usage-python3-gi-variant-parse Passed
Parses a GVariant text-format literal with GLib.Variant.parse through PyGObject and verifies the unpacked tuple.
PyGObject GLib Variant compact print form Original / glib / usage-python3-gi-variant-print-compact Passed
Prints a GLib Variant in compact form via Variant.print_(False) from PyGObject and verifies the type-annotation-free representation.
PyGObject GLib Variant tuple of ints Original / glib / usage-python3-gi-variant-tuple-int Passed
Builds a GLib.Variant with the (ii) signature from PyGObject and verifies unpack returns the original integer pair.
PyGObject GLib Variant composite tuple with vardict Original / glib / usage-python3-gi-variant-tuple-string-vardict Passed
Builds a GLib.Variant with the (sa{sv}) signature combining a string and a string-keyed variant dict and verifies the unpacked Python representation.
PyGObject GLib Variant Original / glib / usage-python3-gi-variant Passed
CVE-2018-16428 glib regression Original / glib / cve-2018-16428 Passed
Asserts that g_markup_parse_context_end_parse on a context that has not seen any markup data returns a structured G_MARKUP_ERROR rather than dereferencing a null parser-state pointer.
CVE-2019-13012 glib regression Original / glib / cve-2019-13012 Passed
Asserts that the GSettings keyfile backend creates its store directory mode 0700 and settings.ini mode 0600 regardless of umask, instead of inheriting world/group permissions from a 0777/0666 default.
CVE-2021-27218 glib regression Original / glib / cve-2021-27218 Passed
Asserts that g_byte_array_new_take rejects a length larger than G_MAXUINT by returning NULL, instead of silently truncating the gsize argument into the guint length field and creating a confused buffer.
CVE-2021-28153 glib regression Original / glib / cve-2021-28153 Passed
Asserts that g_file_replace with G_FILE_CREATE_REPLACE_DESTINATION on a path that is a dangling symlink does not silently materialize the symlink target on disk; the patched glib must either replace the symlink itself or fail with a structured GIO error.
CVE-2023-29499 glib regression Original / glib / cve-2023-29499 Passed
Asserts that g_variant_new_from_bytes followed by g_variant_get_normal_form on a malformed serialized GVariant terminates and produces a normalized value rather than crashing or running unbounded.
CVE-2023-32611 glib regression Original / glib / cve-2023-32611 Passed
Asserts that GVariant normalisation of a deeply nested array-of-variants payload completes within a bounded time budget rather than slowing down catastrophically as in the pre-patch crafted-input behavior.
CVE-2023-32665 glib regression Original / glib / cve-2023-32665 Passed
Asserts that GVariant normalisation of nested variant containers completes in bounded time rather than falling into the exponential blowup that characterized vulnerable builds.
GIO file round trip Port / glib / gio-file-roundtrip Passed
GLib hash table lookup Port / glib / hash-table-lookup Passed
GLib key file round trip Port / glib / key-file-roundtrip Passed
GLib main loop timeout Port / glib / main-loop-timeout Passed
GLib variant tuple round trip Port / glib / variant-tuple-roundtrip Passed
gio cat preserves UTF-8 multi-byte content Port / glib / usage-gio-batch12-cat-utf8-roundtrip Passed
Writes a UTF-8 file with non-ASCII characters and verifies gio cat reads back the exact same bytes.
gio info reports correct standard::size for 1MB file Port / glib / usage-gio-batch12-info-standard-size-large Passed
gio list on empty directory yields zero lines Port / glib / usage-gio-batch12-list-empty-directory Passed
gio cat reproduces binary bytes Port / glib / usage-gio-cat-binary-bytes Passed
Streams a small binary file containing NUL and high bytes through gio cat and verifies the byte-for-byte output equals the source via sha256.
gio cat file URI Port / glib / usage-gio-cat-file-uri Passed
gio prints file content Port / glib / usage-gio-cat-file Passed
gio cat concatenates three files in order Port / glib / usage-gio-cat-multiple-files-three Passed
Concatenates three text files with gio cat and verifies all three payloads appear in the merged output in argument order.
gio cat concatenates files Port / glib / usage-gio-cat-multiple-files Passed
Concatenates two text files with gio cat and verifies both file contents appear in the merged output.
gio reports content type Port / glib / usage-gio-content-type Passed
gio copy backup flag Port / glib / usage-gio-copy-backup-flag Passed
Copies a file with gio copy --backup over an existing destination and verifies the original target is preserved with a tilde-suffixed backup name.
gio copies file into directory Port / glib / usage-gio-copy-directory-tree Passed
Copies a local file into an existing directory with gio copy and verifies the copied filename and content.
gio copy preserves empty file Port / glib / usage-gio-copy-empty-file Passed
Copies a zero-byte source file with gio copy and verifies the destination exists and remains zero bytes.
gio copies local file Port / glib / usage-gio-copy-file Passed
gio local file copy Port / glib / usage-gio-copy-local-file-batch11 Passed
gio copy overwrite file Port / glib / usage-gio-copy-overwrite-file Passed
gio copy -p preserves modification time Port / glib / usage-gio-copy-preserve-mtime Passed
Copies a file with gio copy -p and verifies the destination's modification timestamp matches the source rather than the current time.
gio help launch usage banner Port / glib / usage-gio-help-launch Passed
Invokes gio help launch and verifies the documented usage line for launching desktop files is reported.
gio help describes mime subcommand Port / glib / usage-gio-help-mime Passed
gio help open usage banner Port / glib / usage-gio-help-open Passed
gio info access::can-execute reflects mode Port / glib / usage-gio-info-access-can-execute Passed
Compares the access::can-execute attribute reported by gio info before and after toggling the executable bit on a temp file.
gio info access can-read attribute Port / glib / usage-gio-info-access-can-read Passed
Reads the access::can-read attribute on a freshly created local file via gio info and verifies the attribute is reported as TRUE.
gio info etag attribute namespace Port / glib / usage-gio-info-attribute-namespace-etag Passed
Queries the etag::value attribute via gio info -a and verifies the attribute label appears next to a populated value.
gio info attributes list Port / glib / usage-gio-info-attributes-list Passed
Reads multiple file attributes through gio info --attributes and verifies each requested namespace appears.
gio info reports time access attribute Port / glib / usage-gio-info-attributes-time-access Passed
Queries the time::access attribute through gio info and verifies the namespace appears in the output.
gio info content type Port / glib / usage-gio-info-content-type Passed
gio info directory type Port / glib / usage-gio-info-directory-type Passed
Runs gio info on a directory path and verifies the type field is reported as directory in the human-readable summary.
gio reports display name Port / glib / usage-gio-info-display-name Passed
gio info reports etag::value attribute Port / glib / usage-gio-info-etag-value Passed
Queries the etag::value file attribute through gio info -a and verifies the attribute label appears with a non-empty value.
gio reports file info Port / glib / usage-gio-info-file Passed
gio info filesystem attributes Port / glib / usage-gio-info-filesystem-attributes Passed
Reads filesystem-level attributes for a path through gio info --filesystem and verifies the standard filesystem type attribute is reported.
gio info filesystem readonly attribute Port / glib / usage-gio-info-filesystem-readonly Passed
Queries the filesystem::readonly attribute via gio info --filesystem on a writable temp directory and verifies the attribute is reported as FALSE.
gio info filesystem attributes for root Port / glib / usage-gio-info-filesystem-root Passed
Reads filesystem-level attributes for the root path through gio info --filesystem and verifies the standard filesystem type and size attributes are reported.
gio reports hidden file flag Port / glib / usage-gio-info-hidden-flag Passed
gio info owner user attribute Port / glib / usage-gio-info-owner-user-attribute Passed
Requests the owner::user attribute via gio info -a and verifies the printed user matches the current process owner reported by id -un.
gio info -w lists writable namespaces Port / glib / usage-gio-info-query-writable-namespaces Passed
Runs gio info --query-writable on a regular file and verifies the output enumerates settable attributes such as time::modified and the xattr namespace.
gio info --query-writable lists writable namespaces Port / glib / usage-gio-info-query-writable Passed
Runs gio info --query-writable on a local file and verifies common writable namespaces are reported.
gio info recent namespace Port / glib / usage-gio-info-recent-namespace Passed
Queries the recent::* attribute namespace through gio info on a local fixture and verifies the command succeeds with the expected URI banner.
gio info standard size Port / glib / usage-gio-info-size-batch11 Passed
gio reports file size Port / glib / usage-gio-info-size Passed
gio info standard name Port / glib / usage-gio-info-standard-name Passed
gio info standard type regular Port / glib / usage-gio-info-standard-type-regular Passed
Verifies gio info -a standard::type reports the integer file type code for a regular file under the standard namespace.
gio reports symlink target Port / glib / usage-gio-info-symlink-target Passed
gio info thumbnail namespace Port / glib / usage-gio-info-thumbnail-namespace Passed
Queries the thumbnail::path attribute via gio info on a non-thumbnailable local file and verifies the command succeeds with the expected info banner even when no thumbnail attribute is materialized.
gio info reports unix::inode attribute Port / glib / usage-gio-info-unix-inode Passed
Queries the unix::inode file attribute through gio info -a and verifies the reported inode matches the value reported by stat(1).
gio info reports unix mode Port / glib / usage-gio-info-unix-mode-attribute Passed
Queries the unix::mode file attribute through gio info and verifies the attribute label appears in the output.
gio launch reports missing desktop file Port / glib / usage-gio-launch-missing-desktop-error Passed
Invokes gio launch without arguments and confirms it reports the no-desktop-file error and prints the launch usage banner on stderr.
gio list -a projects requested attribute Port / glib / usage-gio-list-attribute-projection Passed
Asks gio list for the unix::inode attribute and verifies the projected listing reports a non-zero inode for the seeded file.
gio lists directory Port / glib / usage-gio-list-directory-names Passed
gio lists directory children Port / glib / usage-gio-list-directory Passed
gio list long format Port / glib / usage-gio-list-long-format Passed
Lists a temporary directory with the long format flag and verifies that file size and type information appear alongside each child entry.
gio list shows hidden entries with -h Port / glib / usage-gio-list-show-hidden Passed
Verifies gio list -h includes dotfile entries that are omitted by default in the same directory listing.
gio list URI surfaces hidden children with --hidden Port / glib / usage-gio-list-uri-hidden-flag Passed
Lists a directory through a file:// URI with gio list --hidden and verifies that visible and dot-prefixed entries are both reported.
gio makes directory Port / glib / usage-gio-make-directory Passed
gio mime --help banner mentions MIMETYPE Port / glib / usage-gio-mime-help-banner Passed
Invokes gio mime --help and verifies the per-subcommand synopsis advertises the MIMETYPE handler argument and a Usage line.
gio creates directory Port / glib / usage-gio-mkdir-directory Passed
gio mkdir then info round-trip Port / glib / usage-gio-mkdir-info-roundtrip Passed
Creates a directory through gio mkdir, then queries it back with gio info and verifies the standard::type reports as directory.
gio mkdir and list Port / glib / usage-gio-mkdir-list-batch11 Passed
gio mkdir parents nested Port / glib / usage-gio-mkdir-parents-nested Passed
Creates a nested directory chain through gio mkdir --parent and verifies every intermediate directory exists.
gio mount help advertises monitor capability Port / glib / usage-gio-mount-monitor-capability Passed
Inspects gio help mount and the gio mount synopsis to verify the monitor and list capabilities (used to observe volume monitor events) are advertised in the option banner.
gio move relocates file between directories Port / glib / usage-gio-move-between-dirs Passed
Moves a file with gio move from one directory to another and verifies the source no longer exists while the destination directory holds the payload.
gio moves file Port / glib / usage-gio-move-file-rename Passed
gio moves a local file Port / glib / usage-gio-move-file Passed
gio move renamed file Port / glib / usage-gio-move-renamed-file Passed
gio open reports error for unhandled type Port / glib / usage-gio-open-no-handler-error Passed
Invokes gio open against a file with a fabricated extension and verifies the command reports an error (non-zero exit and a diagnostic on stderr) rather than silently succeeding.
gio cat on empty file produces zero bytes Port / glib / usage-gio-r10-cat-empty-file Passed
Creates a zero-length file and verifies gio cat produces an empty output (zero bytes) and exits cleanly.
gio info reports access::can-write TRUE for writable file Port / glib / usage-gio-r10-info-access-can-write Passed
gio info flags tilde-suffixed files via standard::is-backup TRUE Port / glib / usage-gio-r10-info-standard-is-backup Passed
Creates a file ending with "~" (the Emacs/glib backup convention that GFileInfo's standard::is-backup detector recognises) and verifies "gio info -a standard::is-backup" reports TRUE while a normal file reports FALSE. (.bak suffix is not surfaced as is-backup; the documented marker is the trailing tilde.)
gio info reports unix::nlink incremented after hardlink Port / glib / usage-gio-r10-info-unix-nlink-hardlink Passed
Creates a regular file, hardlinks it, and verifies "gio info -a unix::nlink" reports 2 for both names.
gio cat resolves a percent-encoded space in a file:// URI Port / glib / usage-gio-r11-cat-uri-percent-encoded-space Passed
Writes a payload to a path containing a literal space, accesses it via a file:// URI with the space percent-encoded as %20, and verifies that gio cat reads the same byte-for-byte payload back.
gio info standard::edit-name returns the file basename for plain files Port / glib / usage-gio-r11-info-edit-name-equals-basename Passed
Creates a regular file with a deterministic basename and verifies that "gio info -a standard::edit-name" reports the basename verbatim under the attributes block.
gio info classifies a named pipe as standard::type 4 (special) Port / glib / usage-gio-r11-info-fifo-standard-type-special Passed
Creates a FIFO with mkfifo and verifies that "gio info -a standard::type" reports the GIO file-type code 4 (special) under the attributes block, and the human "type:" line reads "special".
gio info exposes id::file attribute as a non-empty string Port / glib / usage-gio-r11-info-id-file-attribute-non-empty Passed
Creates a regular file and verifies "gio info -a id::file" prints the id::file attribute as a non-empty string token (kernel-formatted device:inode pair) under the attributes block.
gio info unix::uid attribute equals stat -c %u Port / glib / usage-gio-r11-info-unix-uid-matches-stat Passed
Creates a regular file and verifies that "gio info -a unix::uid" reports the same numeric uid that "stat -c %u" reports for the same path.
gio cat preserves trailing newline byte count Port / glib / usage-gio-r12-cat-newline-byte-count Passed
Writes a 4-line UTF-8 text file (12 bytes including trailing newlines), runs gio cat, and asserts the captured output has exactly the same byte count as the source.
gio copy overwrites destination content when target exists Port / glib / usage-gio-r12-copy-overwrite-replaces-content Passed
Creates source and destination files with different payloads, runs gio copy with no special flags, and verifies the destination now matches the source byte-for-byte.
gio info reports standard::edit-name matching the file basename Port / glib / usage-gio-r12-info-edit-name-equals-basename Passed
Creates a regular file and asserts gio info -a standard::edit-name surfaces an edit-name attribute equal to the basename component.
gio info exposes unix::uid attribute as an unsigned integer Port / glib / usage-gio-r12-info-unix-uid-attribute Passed
Creates a file and asserts gio info -a unix::uid prints a unix::uid attribute whose value parses as a non-negative integer matching the file owner uid.
gio mkdir creates directory visible to gio list Port / glib / usage-gio-r12-mkdir-and-list-shows-entry Passed
Creates a subdirectory with gio mkdir under a fresh parent, then runs gio list on the parent and asserts the new entry appears in the listing.
gio info -a queries a filesystem::readonly attribute via the filesystem namespace Port / glib / usage-gio-r13-info-filesystem-readonly-attribute Passed
Calls gio info with --attributes=filesystem::readonly on a probe directory and asserts the attribute key appears in the output with a boolean TRUE/FALSE value.
gio remove deletes a regular file from disk Port / glib / usage-gio-r13-remove-deletes-file Passed
Creates a small file, runs gio remove against it, and asserts the path no longer exists on disk while the parent directory is preserved.
gio rename moves a file and preserves its byte contents Port / glib / usage-gio-r13-rename-content-preserved Passed
Writes a known payload to a source file, runs gio rename to a sibling name, and asserts the new file exists with identical bytes while the old name is gone.
gio info --attributes='*' includes both standard and unix namespaces Port / glib / usage-gio-r14-info-attributes-glob-listing Passed
Creates a probe file and calls gio info --attributes='*' on it, asserting the output exposes attributes from multiple namespaces including standard::name, standard::type, and unix::mode.
gio info -w on a directory enumerates standard settable attributes Port / glib / usage-gio-r14-info-query-writable-includes-time-modified Passed
Calls gio info --query-writable on a freshly-created directory and asserts the settable attributes section includes time::modified and unix::mode while the writable namespaces section includes the xattr namespace.
gio mime text/plain reports the registered handler section Port / glib / usage-gio-r14-mime-text-plain-handler-listing Passed
Invokes gio mime text/plain and asserts the output contains the standard 'Default application' header that the gio mime subcommand renders for any registered MIME type, regardless of the specific handler installed.
gio copy then gio remove leaves only the destination file Port / glib / usage-gio-r15-copy-then-remove-cycle Passed
Writes a payload to source.txt, runs gio copy to dest.txt, then gio remove against source.txt, and asserts the destination retains the bytes while the source no longer exists.
gio info reports standard::size 0 for an empty regular file Port / glib / usage-gio-r15-info-standard-size-empty Passed
Creates a freshly truncated empty file and asserts gio info exposes the standard::size attribute as exactly 0 bytes for it.
gio list enumerates a freshly created file in its parent directory Port / glib / usage-gio-r15-list-shows-created-entry Passed
Creates a file named r15-listed.txt under a fresh directory and runs gio list against the directory, asserting the listing contains the created filename verbatim.
gio info --attributes=standard::display-name surfaces the basename verbatim Port / glib / usage-gio-r16-info-display-name-attribute Passed
Creates a file with a distinctive basename "r16-display.bin" under a tmpdir and asserts gio info --attributes=standard::display-name reports the basename string verbatim, exercising the display-name attribute on a regular file (where it falls back to basename).
gio info --attributes=standard::content-type returns text/plain for a .txt file Port / glib / usage-gio-r16-mime-text-plain-on-txt Passed
Writes an ASCII payload to a .txt file and asserts gio info --attributes=standard::content-type reports text/plain for the path, exercising the GIO content-type query against shared-mime-info.
gio mkdir creates a directory that subsequently shows up under gio list Port / glib / usage-gio-r16-mkdir-then-list-shows-entry Passed
Runs gio mkdir against a fresh path inside a tmpdir, asserts the directory exists on disk, then runs gio list against the parent and confirms the newly-created basename appears verbatim in the listing output.
gio move retires the source path and yields a queryable destination Port / glib / usage-gio-r16-move-then-info-on-destination Passed
Writes a payload to source.txt, runs gio move source.txt dest.txt, then asserts the source path is gone and gio info --attributes=standard::size on the destination reports the expected byte count, exercising the move-then-query path.
gio tree against a fresh directory enumerates a nested file path Port / glib / usage-gio-r16-tree-shows-nested-file Passed
Creates a fresh directory containing dir/sub/r16-leaf.txt, runs gio tree on the top directory, and asserts the output contains the nested basename "r16-leaf.txt", exercising the recursive enumeration walker.
gio cat reads a tmpdir fixture and prints the payload verbatim Port / glib / usage-gio-r17-cat-reads-fixture-payload-verbatim Passed
Writes a known ASCII payload "r17-gio-cat-marker" into a tmpdir file and asserts gio cat prints the exact payload string on stdout, exercising the basic local-file read path through the gio CLI distinct from gio cat tests that pipe URIs or empty files.
gio info --attributes=standard::content-type reports text/plain on a .txt file Port / glib / usage-gio-r17-info-content-type-text-plain-on-txt Passed
Creates a .txt file containing a short ASCII payload and asserts gio info --attributes=standard::content-type reports text/plain for it, exercising the standard::content-type attribute on a local file with a plain-text MIME signature.
gio info --attributes=unix::nlink reports a numeric link count on a regular file Port / glib / usage-gio-r17-info-unix-nlink-numeric-on-regular-file Passed
Creates a regular file under a tmpdir, runs gio info --attributes=unix::nlink, and asserts the rendered attribute value is a positive integer (at least 1), exercising the unix::nlink attribute on a freshly created file without pinning the exact value.
gio remove deletes a regular file and gio list omits the entry afterwards Port / glib / usage-gio-r17-remove-then-list-omits-entry Passed
Creates a tmpdir file r17-victim.bin, removes it via gio remove, and asserts gio list of the parent directory does not contain the basename, exercising the unlink-then-list sequence to confirm post-removal directory state.
gio rename renames a file and gio info reports the new basename verbatim Port / glib / usage-gio-r17-rename-then-info-on-new-name Passed
Creates a tmpdir file r17-old.bin, renames it to r17-new.bin via gio rename, and asserts gio info --attributes=standard::display-name on the new path reports the new basename verbatim, exercising the rename-then-info sequence on local URIs.
gio cat reads a three-line tmpdir fixture and emits the same line count Port / glib / usage-gio-r18-cat-multi-line-payload-line-count Passed
Writes a three-line ASCII fixture into a tmpdir and asserts gio cat emits exactly three newline-terminated lines on stdout, exercising the gio CLI local read path on a small multi-line payload distinct from single-line marker tests.
gio copy followed by gio info reports the same size at the destination Port / glib / usage-gio-r18-copy-then-info-shows-destination-size Passed
Writes a fixed-payload source file in a tmpdir, runs gio copy to a destination path, and asserts gio info -a standard::size at the destination reports the exact source byte count, exercising the gio copy plus info pipeline as a size-preservation check.
gio info standard::size reports 512 for a known 512-byte file Port / glib / usage-gio-r18-info-standard-size-512-bytes Passed
Creates a tmpdir file containing exactly 512 bytes of zero padding via dd and asserts gio info -a standard::size emits the exact "standard::size: 512" attribute line, exercising the size attribute query at a non-trivial byte count distinct from prior small-file tests.
gio list on a tmpdir with two files shows both filenames in its output Port / glib / usage-gio-r18-list-two-files-shows-both-names Passed
Creates two distinctly named files alpha.txt and beta.txt inside a tmpdir and asserts that gio list on the directory emits both filename strings on its stdout, exercising the directory enumeration projection on a deterministic two-entry directory.
gio rename keeps the payload bytes identical between original and renamed file Port / glib / usage-gio-r18-rename-target-content-equals-source-content Passed
Writes a 16-byte deterministic payload to a tmpdir source file, runs gio rename to give it a new basename in the same directory, and asserts gio cat on the renamed file produces the exact original byte sequence, exercising the rename operation as a content-preservation check distinct from listing-based rename tests.
gio info standard::content-type for a .txt fixture starts with text/ Port / glib / usage-gio-r19-info-standard-content-type-text-plain-utf8 Passed
Creates a tmpdir text file with a UTF-8 ASCII payload, runs gio info -a standard::content-type, and asserts the rendered attribute line starts with "standard::content-type: text/" reflecting the textual mime category, exercising the content-type sniffer distinct from prior mime-handler tests.
gio info reports unix::mode 33152 for a chmod 0600 regular file Port / glib / usage-gio-r19-info-unix-mode-0600-attribute Passed
Creates a tmpdir file, chmods it to 0600, and asserts gio info -a unix::mode reports the attribute line "unix::mode: 33152" matching the regular-file type bits plus 0600 permission bits, exercising the unix::mode attribute query distinct from prior list-format tests.
gio mkdir followed by gio info reports standard::type 2 (directory) Port / glib / usage-gio-r19-mkdir-then-info-standard-type-directory Passed
Runs gio mkdir to create a tmpdir subdirectory and asserts gio info -a standard::type reports the attribute line "standard::type: 2" matching the GFileType.DIRECTORY enum value, exercising the type attribute on a directory created via gio mkdir distinct from regular-file type tests.
gio save reads stdin and writes the exact payload to the destination file Port / glib / usage-gio-r19-save-stdin-writes-file-payload Passed
Pipes a deterministic ASCII payload into gio save and asserts the destination file in tmpdir contains exactly those bytes when read back with cat, exercising the gio save stdin-to-file projection distinct from copy and rename-based content checks.
gio tree on a two-level directory shows the leaf file at the third indent Port / glib / usage-gio-r19-tree-nested-directory-shows-leaf Passed
Builds a tmpdir/a/b/leaf.txt nested structure and asserts gio tree on the top-level directory emits a line containing the literal "leaf.txt", exercising the recursive-tree enumeration on a deterministic nested fixture distinct from flat list-based tests.
gio cat on a 256-byte binary file emits exactly 256 bytes on stdout Port / glib / usage-gio-r20-cat-binary-256-bytes-byte-count Passed
Writes 256 sequential bytes (0..255) to a binary file in tmpdir, runs gio cat against it, and asserts the captured stdout is exactly 256 bytes via wc -c, exercising the binary-safe byte-count fidelity of gio cat distinct from prior payload-equality or newline-count tests.
gio copy on a 1024-byte file preserves payload exactly via cmp Port / glib / usage-gio-r20-copy-preserves-payload-1024-bytes Passed
Creates a 1024-byte file with pseudo-random deterministic content from /dev/urandom (captured once), copies it via gio copy to a sibling path, and asserts the destination is byte-for-byte equal to the source with cmp, exercising the bulk-copy fidelity of gio copy for a non-trivial payload size distinct from prior empty/small/single-byte cases.
gio info standard::content-type reports application/octet-stream on a .bin file Port / glib / usage-gio-r20-info-standard-content-type-application-octet-stream Passed
Creates a tmpdir/data.bin file with binary header bytes 00 01 02 03 and runs gio info -a standard::content-type on it, asserting the output contains the line "standard::content-type: application/octet-stream", exercising the MIME-type sniffer mapping for binary data distinct from prior text/plain-on-txt cases.
gio info reports unix::mode 33261 for a chmod 0755 regular file Port / glib / usage-gio-r20-info-unix-mode-0755-attribute Passed
Creates a tmpdir file, chmods it to 0755, and asserts gio info -a unix::mode emits the line "unix::mode: 33261" matching the regular-file type bits (S_IFREG=0o100000=32768) plus 0755 permission bits (493), exercising the unix::mode attribute distinct from the existing 0600 case in r19.
gio mkdir followed by gio list shows three created directories Port / glib / usage-gio-r20-mkdir-then-list-shows-three-dirs Passed
Creates three sibling directories alpha, beta, gamma via gio mkdir in a tmpdir, runs gio list on the parent, and asserts the listing contains every directory name on its own row, exercising the multi-mkdir-then-list flow for a deterministic set of named entries distinct from prior single-mkdir or move-cycle tests.
gio cat on two files concatenates payloads and stdout byte count equals the sum Port / glib / usage-gio-r21-cat-two-files-total-byte-count Passed
Writes two files of sizes 100 and 250 bytes in tmpdir, runs gio cat with both as arguments, and asserts the captured stdout is exactly 350 bytes total (the sum of the two file sizes), exercising the multi-file concatenation byte-count invariant of gio cat distinct from prior single-file and multiple-filenames-only presence tests.
gio info standard::edit-name and standard::display-name agree for an ASCII filename Port / glib / usage-gio-r21-info-standard-edit-name-equals-display-name Passed
Creates a file named "r21-edit.txt" in tmpdir and asserts gio info -a 'standard::*' emits both "standard::edit-name: r21-edit.txt" and "standard::display-name: r21-edit.txt" on separate lines, exercising the equality of edit-name and display-name for an ASCII basename distinct from prior edit-name-only or display-name-only tests.
gio info -a standard::is-symlink reports FALSE for a regular file Port / glib / usage-gio-r21-info-standard-is-symlink-false Failed
Creates a regular file in tmpdir and asserts gio info -a standard::is-symlink emits the line "standard::is-symlink: FALSE", exercising the standard::is-symlink boolean attribute on a non-symlink target distinct from prior symlink-target attribute tests.
gio info reports unix::mode 33188 for a chmod 0644 regular file Port / glib / usage-gio-r21-info-unix-mode-0644-regular-file Passed
Creates a tmpdir file, chmods it to 0644, and asserts gio info -a unix::mode emits the line "unix::mode: 33188" matching the regular-file type bits (S_IFREG=0o100000=32768) plus 0644 permission bits (420), exercising the unix::mode attribute on the common 0644 mode distinct from the existing 0600 (r19) and 0755 (r20) cases.
gio tree on a three-level nested directory shows the deepest leaf filename Port / glib / usage-gio-r21-tree-three-level-nested-directory-shows-deepest-leaf Passed
Creates a three-level nested directory structure a/b/c/leaf.txt in tmpdir, runs gio tree from the top, and asserts the captured output contains the literal "leaf.txt" basename, exercising gio tree depth traversal to a three-level depth distinct from prior single-level and two-level nested tree tests.
gio removes file Port / glib / usage-gio-remove-file Passed
gio remove deletes multiple files in one invocation Port / glib / usage-gio-remove-multiple-files Passed
gio renames file in place Port / glib / usage-gio-rename-file Passed
gio rename swaps tmp suffix Port / glib / usage-gio-rename-tmp-suffix Passed
Renames a file from old.tmp to new.tmp via gio rename and verifies the new name exists with the original payload while the old path is gone.
gio saves stdin to file Port / glib / usage-gio-save-stdin-file Passed
gio set adjusts unix mode attribute Port / glib / usage-gio-set-attribute Passed
gio set string standard display-name reports unsupported on local fs Port / glib / usage-gio-set-display-name Passed
Attempts to set the standard::display-name attribute on a local file via gio set --type=string and verifies that the local file backend reports the documented "Setting attribute standard::display-name not supported" diagnostic without altering the file on disk.
gio mime registers and reports default handler Port / glib / usage-gio-trash-list-empty Passed
Registers a default mime handler with gio mime against an isolated XDG data home, then queries it back and verifies gio reports the registered desktop entry as the default.
gio tree lists nested directory Port / glib / usage-gio-tree-directory Passed
gio version prints GLib version Port / glib / usage-gio-version-banner Passed
glib resource compilation Port / glib / usage-glib-compile-resources Passed
gsettings boolean schema Port / glib / usage-glib-compile-schemas-boolean Passed
glib compile schemas double default Port / glib / usage-glib-compile-schemas-double Passed
glib compile schemas int array default Port / glib / usage-glib-compile-schemas-int-array Passed
glib compiles integer schema Port / glib / usage-glib-compile-schemas-int Passed
glib-compile-schemas string array Port / glib / usage-glib-compile-schemas-string-array-list Passed
glib compiles string array schema Port / glib / usage-glib-compile-schemas-string-array Passed
Compiles a GSettings schema with a string-array key and verifies gsettings reads the default list.
gsettings string schema Port / glib / usage-glib-compile-schemas-string Passed
glib-compile-schemas uint default Port / glib / usage-glib-compile-schemas-uint-default Passed
Compiles a schema with an unsigned integer key and verifies gsettings reads back the default uint value.
glib-compile-schemas builds schema Port / glib / usage-glib-compile-schemas Passed
gsettings reads custom schema Port / glib / usage-gsettings-read-schema Passed
PyGObject GLib base64 decode Port / glib / usage-python3-gi-base64-decode Passed
PyGObject base64 helpers Port / glib / usage-python3-gi-base64 Passed
PyGObject GLib.base64_encode/decode binary roundtrip Port / glib / usage-python3-gi-batch12-base64-roundtrip-binary Passed
Encodes binary bytes including NULs with GLib.base64_encode and decodes back via GLib.base64_decode, verifying the bytes round-trip exactly.
PyGObject GLib.Bytes equality and hash Port / glib / usage-python3-gi-batch12-bytes-equality Passed
Constructs two GLib.Bytes objects with identical content, verifies equal() returns True and hashing matches, and that different content yields equal() False.
PyGObject GLib.Checksum.reset reuses the digest object Port / glib / usage-python3-gi-batch12-checksum-reset Passed
Computes a SHA1 with GLib.Checksum, calls reset(), recomputes a different digest and verifies the second digest matches a fresh Checksum instance for the same data.
PyGObject GLib.KeyFile custom list separator Port / glib / usage-python3-gi-batch12-keyfile-set-list-separator Passed
Configures a GLib.KeyFile with a custom list separator and verifies get_string_list parses values split by that separator.
PyGObject GLib.Uri resolve_relative Port / glib / usage-python3-gi-batch12-uri-resolve-relative Passed
Uses GLib.Uri.resolve_relative to resolve a relative path against an absolute base URI and verifies the resolved URI string.
PyGObject GLib.utf8_strdown / utf8_strup roundtrip Port / glib / usage-python3-gi-batch12-utf8-strdown-strup Passed
Verifies GLib.utf8_strdown and GLib.utf8_strup correctly lowercase and uppercase ASCII and Latin-1 strings.
PyGObject GLib.Variant 'ay' byte-array roundtrip Port / glib / usage-python3-gi-batch12-variant-byte-array Passed
Constructs a GLib.Variant of type 'ay' (byte array) and verifies unpack returns the original byte sequence.
PyGObject GLib Bytes get_data round trip Port / glib / usage-python3-gi-bytes-roundtrip Passed
Builds a GLib.Bytes from a non-ASCII Python bytes payload, calls get_data, and verifies the round-tripped buffer matches the input byte-for-byte.
PyGObject GLib bytes size Port / glib / usage-python3-gi-bytes-size-payload Passed
PyGObject bytes size Port / glib / usage-python3-gi-bytes-size Passed
PyGObject bytes object Port / glib / usage-python3-gi-bytes Passed
PyGObject GLib checksum_for_bytes equals checksum_for_data Port / glib / usage-python3-gi-checksum-bytes-vs-data-parity Passed
Hashes the same payload through GLib.compute_checksum_for_bytes (GLib.Bytes input) and GLib.compute_checksum_for_data (raw bytes input) for SHA256 and SHA512 via PyGObject and asserts the two PyGObject entry points produce identical digests.
PyGObject GLib MD5 checksum Port / glib / usage-python3-gi-checksum-md5-string Passed
PyGObject MD5 checksum Port / glib / usage-python3-gi-checksum-md5 Passed
PyGObject GLib SHA1 checksum Port / glib / usage-python3-gi-checksum-sha1 Passed
PyGObject GLib SHA256 checksum Port / glib / usage-python3-gi-checksum-sha256-string Passed
Computes a SHA256 digest of a string through GLib compute_checksum_for_string and verifies the hex digest from PyGObject.
PyGObject GLib compute_checksum_for_string SHA-512 Port / glib / usage-python3-gi-checksum-sha512-string Passed
Computes the SHA-512 digest of the string abc through GLib.compute_checksum_for_string and verifies the canonical 128-character hex digest matches the FIPS 180-4 known-answer vector.
PyGObject GLib Checksum incremental update Port / glib / usage-python3-gi-checksum-update-incremental Passed
Feeds a payload to GLib.Checksum in two update() calls through PyGObject and verifies the digest matches a single-shot hash of the same bytes.
PyGObject GLib checksum Port / glib / usage-python3-gi-checksum Passed
PyGObject GLib.compute_checksum_for_data MD5 SHA256 SHA384 SHA512 KAT Port / glib / usage-python3-gi-compute-checksum-data-kat-all Passed
Computes MD5, SHA256, SHA384, and SHA512 digests of a fixed byte sequence with GLib.compute_checksum_for_data through PyGObject and checks every hex digest against a known answer.
PyGObject GLib.compute_checksum_for_data MD5 KAT Port / glib / usage-python3-gi-compute-checksum-data-md5 Passed
Computes an MD5 digest of a fixed byte sequence with GLib.compute_checksum_for_data through PyGObject and checks the resulting hex string against a known answer.
PyGObject GLib.compute_checksum_for_string SHA1 KAT Port / glib / usage-python3-gi-compute-checksum-string-sha1 Passed
Computes a SHA1 digest of a fixed string with GLib.compute_checksum_for_string through PyGObject and checks the resulting hex string against a known answer.
PyGObject Gio data input stream Port / glib / usage-python3-gi-data-input-stream-line Passed
PyGObject GLib Date dmy fields Port / glib / usage-python3-gi-date-dmy-format Passed
Constructs a GLib.Date with new_dmy from PyGObject and verifies day, month, year, weekday, and Julian day fields.
PyGObject date time Port / glib / usage-python3-gi-date-time Passed
PyGObject GLib DateTime ISO 8601 Port / glib / usage-python3-gi-datetime-iso-string Passed
PyGObject GLib environ setenv unsetenv Port / glib / usage-python3-gi-environ-setenv Passed
Mutates a fresh environ list with GLib.environ_setenv and GLib.environ_unsetenv from PyGObject and verifies entries are added, overridden, and removed.
PyGObject Gio file enumerator Port / glib / usage-python3-gi-file-enumerator-names Passed
Enumerates directory entries through Gio with PyGObject and verifies both filenames are reported.
PyGObject file enumerator Port / glib / usage-python3-gi-file-enumerator Passed
PyGObject file load contents Port / glib / usage-python3-gi-file-load-contents Passed
PyGObject file exists query Port / glib / usage-python3-gi-file-query-exists Passed
Uses Gio.File through PyGObject to query whether a local path exists and verifies the boolean result.
PyGObject Gio replace contents Port / glib / usage-python3-gi-file-replace-contents Passed
Replaces file contents with Gio.File.replace_contents through PyGObject and reads the new payload back.
PyGObject GLib filename_to_uri roundtrip Port / glib / usage-python3-gi-filename-uri-roundtrip Passed
Converts a path containing whitespace to a file:// URI with GLib.filename_to_uri and converts it back with GLib.filename_from_uri, verifying percent-encoding and the recovered path.
PyGObject GLib find_program_in_path locates sh Port / glib / usage-python3-gi-find-program-in-path Passed
Calls GLib.find_program_in_path through PyGObject for /bin/sh and verifies the resolved absolute path is executable.
PyGObject GLib format_size_full unit modes Port / glib / usage-python3-gi-format-size-iec-vs-si Passed
Formats the same byte count with default SI units, IEC_UNITS, and LONG_FORMAT flags through GLib.format_size_full and verifies the kB, KiB, and parenthesised exact byte count renderings.
PyGObject GLib format_size zero edge case Port / glib / usage-python3-gi-format-size-zero Passed
Calls GLib.format_size(0) through PyGObject and verifies the singular bytes formatting of a zero-byte input under the C locale.
PyGObject GLib format size Port / glib / usage-python3-gi-format-size Passed
Formats a byte count with GLib.format_size through PyGObject and verifies a human-readable string.
PyGObject Gio file read Port / glib / usage-python3-gi-gio-file Passed
PyGObject GLib HMAC-SHA256 known-answer test Port / glib / usage-python3-gi-hmac-sha256-kat Passed
Computes HMAC-SHA256 of a fixed message under a fixed key through GLib.compute_hmac_for_bytes via PyGObject and asserts the digest matches a precomputed RFC-style known-answer.
PyGObject GLib hostname classification Port / glib / usage-python3-gi-hostname-classification Passed
Calls GLib.hostname_is_ip_address and hostname_is_non_ascii on representative inputs and verifies IPv4, IPv6, ASCII, and non-ASCII names are classified correctly.
PyGObject GLib idle add Port / glib / usage-python3-gi-idle-add Passed
Runs a GLib idle callback through PyGObject and verifies the callback updates state before the loop exits.
PyGObject idle callback Port / glib / usage-python3-gi-idle-callback Passed
PyGObject GLib IOChannel read_line Port / glib / usage-python3-gi-iochannel-read-line Passed
Opens a local text file with GLib.IOChannel.new_file from PyGObject and reads it line by line, verifying line count and content of the first and last line.
PyGObject GLib KeyFile comment roundtrip Port / glib / usage-python3-gi-keyfile-comment Passed
Sets a top comment on a GLib.KeyFile group through PyGObject and verifies it round-trips through to_data and reload.
PyGObject GLib KeyFile double Port / glib / usage-python3-gi-keyfile-double Passed
Stores and reads a floating-point value through GLib KeyFile from PyGObject and verifies the round-tripped number.
PyGObject GLib KeyFile groups Port / glib / usage-python3-gi-keyfile-groups Passed
PyGObject GLib KeyFile integer list Port / glib / usage-python3-gi-keyfile-integer-list Passed
PyGObject KeyFile keys Port / glib / usage-python3-gi-keyfile-keys Passed
PyGObject GLib KeyFile load_from_file Port / glib / usage-python3-gi-keyfile-load-from-file Passed
Persists a KeyFile to disk and reloads it via GLib.KeyFile.load_from_file through PyGObject, verifying values and group lookup survive the round trip.
PyGObject keyfile round trip Port / glib / usage-python3-gi-keyfile-roundtrip Passed
PyGObject GLib KeyFile Port / glib / usage-python3-gi-keyfile Passed
PyGObject GLib main loop Port / glib / usage-python3-gi-mainloop Passed
PyGObject GLib markup escape Port / glib / usage-python3-gi-markup-escape Passed
PyGObject memory input stream read Port / glib / usage-python3-gi-memory-input-stream-read Passed
PyGObject Gio memory input stream Port / glib / usage-python3-gi-memory-input-stream Passed
PyGObject memory output stream Port / glib / usage-python3-gi-memory-output-stream Passed
Writes bytes into a Gio memory output stream through PyGObject and verifies the captured payload.
PyGObject memory stream Port / glib / usage-python3-gi-memory-stream Passed
PyGObject GLib basename Port / glib / usage-python3-gi-path-basename-batch11 Passed
PyGObject GLib.Bytes.compare yields lexicographic ordering Port / glib / usage-python3-gi-r10-bytes-compare-ordering Passed
Constructs three GLib.Bytes objects and verifies Bytes.compare returns negative, zero, and positive for the lexicographic less-than, equal, and greater-than cases.
PyGObject GLib.compute_hmac_for_data MD5 RFC 2104 KAT Port / glib / usage-python3-gi-r10-compute-hmac-md5 Passed
Computes HMAC-MD5 of "Hi There" with a 16-byte 0x0b key via GLib.compute_hmac_for_data and verifies the digest matches the RFC 2104 published value.
PyGObject GLib.shell_unquote inverts shell_quote Port / glib / usage-python3-gi-r10-shell-unquote Passed
Quotes a string containing whitespace and a single quote with GLib.shell_quote, unquotes it with GLib.shell_unquote, and verifies the round-tripped value matches the original.
PyGObject GLib.utf8_strlen counts characters not bytes Port / glib / usage-python3-gi-r10-utf8-strlen-multibyte Passed
Verifies GLib.utf8_strlen returns the unicode character count (5) for a multi-byte UTF-8 string whose byte length (8) is larger.
PyGObject GLib.Variant 'mi' maybe-int distinguishes None and 42 Port / glib / usage-python3-gi-r10-variant-maybe-int Passed
Constructs Variant 'mi' with a value and with None, verifies type string is 'mi' and unpack returns the original int or None.
PyGObject GLib.Variant 'a{sv}' lookup_value finds nested values Port / glib / usage-python3-gi-r10-variant-vardict-lookup Passed
Builds a Variant 'a{sv}' with mixed-type entries and verifies lookup_value returns the original Variant for present keys and None for missing keys.
PyGObject GLib.get_monotonic_time delta exceeds elapsed sleep Port / glib / usage-python3-gi-r11-monotonic-time-delta-after-sleep Passed
Captures GLib.get_monotonic_time before and after a 100 ms time.sleep, and verifies the microsecond delta is at least 100000 us and less than 5_000_000 us, demonstrating the monotonic clock advances and is independent of wall-clock changes.
PyGObject GLib.quark_from_string deduplicates equal strings to the same id Port / glib / usage-python3-gi-r11-quark-from-string-deduplicates Passed
Calls GLib.quark_from_string twice with the same string, once with a different string, and verifies the two equal-string calls return the same numeric quark id while the different string yields a distinct id; also verifies quark_to_string round-trips back to the original.
PyGObject GLib.unichar_is{alpha,digit,upper} classify ASCII characters Port / glib / usage-python3-gi-r11-unichar-isalpha-isdigit-isupper Passed
Calls GLib.unichar_isalpha, unichar_isdigit, and unichar_isupper on representative ASCII characters and verifies the boolean results match Unicode classification (alpha for letters, digit for 0-9, upper for capitals).
PyGObject GLib.utf8_casefold expands German sharp s to ss Port / glib / usage-python3-gi-r11-utf8-casefold-german-strasse Passed
Calls GLib.utf8_casefold on the German "Straße" and "STRASSE" and verifies both fold to the same lower-case ASCII "strasse" string, demonstrating Unicode case-folding (sharp-s expansion) distinct from a simple ASCII tolower.
PyGObject GLib.utf8_normalize NFD decomposes precomposed e-acute Port / glib / usage-python3-gi-r11-utf8-normalize-nfd-decomposes-eacute Passed
Calls GLib.utf8_normalize with NormalizeMode.NFD on a precomposed U+00E9 (e-acute), and verifies the result decomposes to two codepoints U+0065 U+0301 (Latin small e plus combining acute), distinct from the NFC roundtrip which preserves the single precomposed codepoint.
PyGObject GLib.DateTime new_utc formats a fixed UTC timestamp via format Port / glib / usage-python3-gi-r12-datetime-format-utc-iso Passed
Constructs GLib.DateTime.new_utc(2024,3,14,15,9,26.535) and asserts format("%Y-%m-%dT%H:%M:%S") returns the expected ISO-style string.
PyGObject Gio.File.new_for_path load_contents reads back UTF-8 payload Port / glib / usage-python3-gi-r12-gio-file-load-contents-roundtrip Passed
Writes a UTF-8 file on disk, opens it via Gio.File.new_for_path, calls load_contents, and asserts the returned bytes decode to the original string.
PyGObject GLib.KeyFile set_string_list serializes semicolon-terminated list Port / glib / usage-python3-gi-r12-keyfile-set-string-list Passed
Calls KeyFile.set_string_list with a 3-element list and asserts the serialized to_data emits the canonical semicolon-separated, semicolon-terminated form.
PyGObject GLib.MainLoop quits from a 50 ms timeout callback Port / glib / usage-python3-gi-r12-mainloop-timeout-quits Passed
Schedules a GLib.timeout_add callback that invokes loop.quit and asserts MainLoop.run returns after the timeout fires, with the callback observed exactly once.
PyGObject GLib.Variant.parse round-trips a (sis) tuple via print/parse Port / glib / usage-python3-gi-r12-variant-parse-tuple-roundtrip Passed
Builds a Variant with signature (sis), prints it, parses the printed text back with GLib.Variant.parse, and asserts the recovered tuple components match.
PyGObject Gio.Cancellable starts uncancelled and reports cancelled after cancel Port / glib / usage-python3-gi-r13-cancellable-not-cancelled-by-default Passed
Constructs a fresh Gio.Cancellable, asserts is_cancelled returns False, then invokes cancel() and asserts is_cancelled returns True on the same instance.
PyGObject GLib.Checksum incremental SHA256 matches the FIPS 'abc' KAT Port / glib / usage-python3-gi-r13-checksum-sha256-string-kat Passed
Builds a GLib.Checksum with ChecksumType.SHA256, feeds the bytes of 'abc' through update, and asserts get_string returns the canonical FIPS 180-4 KAT digest ba7816bf...20015ad.
PyGObject GLib.hostname_is_ip_address classifies IPv4, IPv6, and DNS labels distinctly Port / glib / usage-python3-gi-r13-hostname-is-ip-address-classification Passed
Calls GLib.hostname_is_ip_address on three representative inputs (192.168.0.1, ::1, and example.com) and asserts the boolean classification distinguishes the two literal IPs from a DNS hostname.
PyGObject GLib.IOChannel writes a multi-line payload and reads it back line by line Port / glib / usage-python3-gi-r13-iochannel-write-then-read-line Passed
Opens an IOChannel for writing, emits three text lines, flushes, reopens the file for reading, and asserts read_line yields the same three lines in order before reaching EOF.
PyGObject Gio.MemoryInputStream reads bytes back across two read_bytes calls Port / glib / usage-python3-gi-r13-memory-input-stream-multi-chunk-read Passed
Builds a MemoryInputStream from a 12-byte payload, reads two 6-byte chunks via read_bytes, and asserts the concatenated bytes equal the original input.
PyGObject GLib.Uri.parse exposes scheme, host, path, and query components Port / glib / usage-python3-gi-r13-uri-parse-query-component Passed
Parses an https URL with a query string through GLib.Uri.parse and asserts get_scheme, get_host, get_path, and get_query each return the expected component.
PyGObject GLib.utf8_validate accepts ASCII and multibyte UTF-8 input Port / glib / usage-python3-gi-r13-utf8-validate-pure-ascii Passed
Calls GLib.utf8_validate on a pure-ASCII byte string and on the multibyte UTF-8 encoding of 'café', asserting the (valid, end) tuple in each case reports True with an empty end-pointer remainder.
PyGObject GLib.Bytes.new round-trips a payload through get_data and get_size Port / glib / usage-python3-gi-r14-bytes-new-get-data-roundtrip Passed
Constructs a GLib.Bytes from a 5-byte payload via GLib.Bytes.new, asserts get_size returns 5, and asserts bytes(get_data()) equals the original payload byte-for-byte.
PyGObject GLib.compute_checksum_for_string returns canonical SHA-256 hex Port / glib / usage-python3-gi-r14-compute-checksum-for-string-sha256 Passed
Calls GLib.compute_checksum_for_string with ChecksumType.SHA256 on the literal 'abc' (with length=-1) and asserts the returned hex digest equals the published SHA-256 known-answer ba7816bf...f20015ad.
PyGObject Gio.AppInfo.get_all returns a list whose entries expose get_name Port / glib / usage-python3-gi-r14-gio-appinfo-get-all-list Passed
Calls Gio.AppInfo.get_all and asserts the result is a Python list (possibly empty under a minimal install) where every present entry exposes a callable get_name returning a string.
PyGObject Gio.File.parse_name builds a GFile whose path matches the input Port / glib / usage-python3-gi-r14-gio-file-parse-name-roundtrip Passed
Calls Gio.File.parse_name with an absolute filesystem path and asserts the returned GFile reports get_path equal to the input and get_uri starts with the 'file://' scheme prefix.
PyGObject GLib.shell_quote escapes spaces and round-trips via shell_unquote Port / glib / usage-python3-gi-r14-shell-quote-roundtrip Passed
Calls GLib.shell_quote on the string 'r14 with spaces' and asserts the quoted output is longer than the input, then unquotes via GLib.shell_unquote and asserts the round-tripped value equals the original byte-for-byte.
PyGObject GLib.utf8_strup and utf8_strdown invert each other for ASCII Port / glib / usage-python3-gi-r14-utf8-strup-strdown-ascii Passed
Calls GLib.utf8_strup on 'GLib R14' to obtain the upper-case form 'GLIB R14' and GLib.utf8_strdown on the same input to obtain 'glib r14', asserting both transformations match exact expected ASCII output.
PyGObject GLib.Variant.print round-trips through GLib.Variant.parse Port / glib / usage-python3-gi-r14-variant-print-roundtrip Passed
Builds a Variant of type '(si)' carrying ('r14', 7), prints it with print_(False) to obtain the textual format, parses the textual representation back through GLib.Variant.parse, and asserts the round-tripped Variant equals the original.
PyGObject GLib.compute_checksum_for_string returns the canonical MD5 of the empty string Port / glib / usage-python3-gi-r15-checksum-md5-empty-string Passed
Calls GLib.compute_checksum_for_string with the MD5 algorithm against the empty string '' and length 0, asserting the result equals the canonical MD5 hex digest 'd41d8cd98f00b204e9800998ecf8427e'.
PyGObject GLib.format_size_full with IEC_UNITS produces a MiB-suffixed binary representation Port / glib / usage-python3-gi-r15-format-size-iec-binary Passed
Calls GLib.format_size_full(1048576, GLib.FormatSizeFlags.IEC_UNITS) and asserts the formatted string contains 'MiB' (binary IEC prefix), distinguishing it from the SI 'MB' default representation.
PyGObject Gio.File.make_directory creates a fresh directory on disk Port / glib / usage-python3-gi-r15-gio-file-make-directory Passed
Builds a Gio.File for a non-existent path under tmpdir, calls make_directory(None), and asserts os.path.isdir reports the new path as an existing directory after the call.
PyGObject GLib.KeyFile set_boolean and get_boolean round-trip both true and false Port / glib / usage-python3-gi-r15-keyfile-set-get-boolean Passed
Constructs a GLib.KeyFile, sets boolean keys 'enabled'=True and 'disabled'=False under group 'r15', and asserts get_boolean returns True and False respectively for each key.
PyGObject GLib.Uri.escape_string percent-encodes spaces as %20 Port / glib / usage-python3-gi-r15-uri-escape-string-spaces Passed
Calls GLib.Uri.escape_string('hello world r15', None, False) and asserts the returned encoded string equals 'hello%20world%20r15', confirming spaces are percent-encoded.
PyGObject GLib.utf8_strup uppercases an ASCII string deterministically Port / glib / usage-python3-gi-r15-utf8-strup-locale-german Passed
Calls GLib.utf8_strup against the lowercase ASCII string 'hello-r15' and asserts the result is 'HELLO-R15', confirming uppercase folding for the ASCII subset is locale-independent.
PyGObject GLib.Variant 'x' carries int64 values at signed 64-bit boundaries Port / glib / usage-python3-gi-r15-variant-int64-bounds Passed
Builds GLib.Variant('x', value) for both INT64_MIN and INT64_MAX, asserts get_int64 returns the requested value at each boundary, and verifies type_string is 'x'.
PyGObject GLib.Bytes.new + get_data round-trips a Python bytes buffer Port / glib / usage-python3-gi-r16-bytes-new-and-get-data-roundtrip Passed
Constructs a GLib.Bytes object via GLib.Bytes.new on a known 16-byte payload, then asserts get_size returns 16 and get_data() returns the same bytes, exercising the immutable-byte-buffer round-trip path.
PyGObject GLib.compute_checksum_for_string returns the canonical SHA256 of "abc" Port / glib / usage-python3-gi-r16-checksum-sha256-known-string Passed
Calls GLib.compute_checksum_for_string with the SHA256 algorithm against the ASCII string "abc" and length 3 and asserts the result equals the canonical SHA256 hex digest ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.
PyGObject GLib.KeyFile.load_from_data parses a literal INI string and returns the stored value Port / glib / usage-python3-gi-r16-keyfile-load-from-data-string-roundtrip Passed
Builds an INI document with a [section] header and key=value pair, passes it to GLib.KeyFile.load_from_data with GLib.KeyFileFlags.NONE, and asserts get_string('section', 'key') returns the original literal value, exercising the in-memory load path distinct from set/get round-trips.
PyGObject GLib.Uri.parse extracts scheme/host/port from a typical URI Port / glib / usage-python3-gi-r16-uri-parse-scheme-host-port Passed
Calls GLib.Uri.parse against "https://example.com:8443/path?q=r16" with GLib.UriFlags.NONE and asserts the returned object exposes scheme='https', host='example.com', and port=8443, exercising the GLib URI parser through Python bindings.
PyGObject GLib.Variant 'as' round-trips a Python list of strings via unpack() Port / glib / usage-python3-gi-r16-variant-string-array-as-list Passed
Constructs GLib.Variant('as', ['alpha', 'beta', 'gamma']), asserts the type_string is 'as', that get_n_children returns 3, and that unpack() returns the original Python list, exercising the array-of-strings serialisation path.
PyGObject GLib.Bytes.compare returns zero for equal and non-zero for different buffers Port / glib / usage-python3-gi-r17-bytes-compare-equal-and-different Passed
Builds two GLib.Bytes objects with identical 8-byte payloads plus one with a different payload, calls GLib.Bytes.compare across the pairs, and asserts the same-payload comparison returns 0 while the different-payload comparison returns a non-zero integer, exercising the GLib.Bytes byte-wise comparator.
PyGObject GLib.Checksum SHA1 of "abc" equals the published RFC 3174 digest Port / glib / usage-python3-gi-r17-checksum-sha1-known-string-abc Passed
Constructs a GLib.Checksum with type SHA1, feeds the three-byte literal "abc", and asserts get_string returns the lowercase hex digest a9993e364706816aba3e25717850c26c9cd0d89d as documented by RFC 3174, exercising the SHA1 surface distinct from existing SHA256 tests.
PyGObject GLib.Date.new_dmy preserves year on get_year readback Port / glib / usage-python3-gi-r17-date-new-dmy-get-year-roundtrip Passed
Constructs a GLib.Date via new_dmy(15, GLib.DateMonth.MAY, 2026) and asserts get_day, get_month, and get_year report the same values back, exercising the date constructor and accessor path with a distinct calendar date.
PyGObject GLib.Variant.new_tuple round-trips through print/parse with type (si) Port / glib / usage-python3-gi-r17-variant-tuple-si-parse-print-roundtrip Passed
Constructs a GLib.Variant of type (si) holding ("r17", 42), prints it via print_(False), parses it back via GLib.Variant.parse and asserts the recovered tuple matches the original via get_string and get_int32, exercising the textual print/parse pair on a heterogeneous tuple.
PyGObject GLib.compute_checksum_for_string with SHA384 returns the FIPS abc digest Port / glib / usage-python3-gi-r18-checksum-sha384-known-string-abc Passed
Calls GLib.compute_checksum_for_string with GLib.ChecksumType.SHA384 over the three-byte ASCII string "abc" and asserts the resulting hex string equals the standard FIPS 180-2 digest, exercising the SHA384 algorithm path through the convenience wrapper distinct from prior SHA256 known-vector tests.
PyGObject GLib.DateTime add_days returns a timestamp seven days later Port / glib / usage-python3-gi-r18-datetime-add-days-roundtrip Passed
Builds a GLib.DateTime at a fixed UTC instant via new_utc, calls add_days(7), and asserts the to_unix difference between the result and the source equals exactly 7 times 86400 seconds, exercising the date arithmetic helper on a deterministic UTC anchor.
PyGObject GLib.KeyFile set_integer and get_integer round-trip a positive value Port / glib / usage-python3-gi-r18-keyfile-set-integer-roundtrip Passed
Builds an empty GLib.KeyFile, calls set_integer for a key in a group with the value 42, then calls get_integer on the same group and key and asserts the returned Python int equals 42, exercising the integer scalar setter and getter pair.
PyGObject GLib.Uri.build with explicit query and fragment renders a stable string Port / glib / usage-python3-gi-r18-uri-build-with-query-and-fragment Passed
Calls GLib.Uri.build with scheme https, host example.test, path /a/b, query "k=v", and fragment "frag" and asserts the rendered string via to_string starts with "https://example.test/a/b" and ends with the "?k=v#frag" suffix, exercising the structured URI assembler distinct from parse-and-extract tests.
PyGObject GLib.Variant a{si} round-trips three int32 values through lookup_value Port / glib / usage-python3-gi-r18-variant-dict-of-int32-build-and-lookup Passed
Builds a GLib.Variant with type signature a{si} containing three string-keyed int32 entries, then calls lookup_value on each key and asserts the unpacked int32 value matches the original Python int, exercising the dict-of-int variant construction and per-key lookup distinct from string-array variant tests.
PyGObject GLib.canonicalize_filename resolves dot and dotdot components Port / glib / usage-python3-gi-r19-canonicalize-filename-dotdot-resolves Passed
Calls GLib.canonicalize_filename on the path "/a/b/../c/./d" with a None relative-to argument and asserts the returned string equals "/a/c/d" with both the parent-dir and current-dir components removed, exercising the path canonicalisation helper.
PyGObject GLib.Checksum SHA512 incremental update of "abc" equals the FIPS 180-4 digest Port / glib / usage-python3-gi-r19-checksum-new-sha512-abc-known-digest Passed
Constructs a GLib.Checksum with type SHA512, calls update on the three-byte literal "abc", and asserts get_string returns the lowercase 128-character hex digest ddaf35...ca49f from FIPS 180-4, exercising the incremental-update Checksum surface for SHA512 distinct from prior compute_checksum_for_string tests.
PyGObject GLib.compute_hmac_for_string SHA1 with key="key" on the quick-brown-fox vector Port / glib / usage-python3-gi-r19-compute-hmac-sha1-key-quick-brown-fox Passed
Calls GLib.compute_hmac_for_string with ChecksumType.SHA1, key bytes b"key", and the well-known string "The quick brown fox jumps over the lazy dog" and asserts the returned hex digest equals de7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9 from RFC HMAC-SHA1 reference, exercising the HMAC-SHA1 surface distinct from prior HMAC-SHA256 and HMAC-MD5 tests.
PyGObject GLib.Variant("ay") exposes per-index byte values via get_child_value().get_byte Port / glib / usage-python3-gi-r19-variant-ay-indexed-byte-access Passed
Builds a GLib.Variant with type signature ay containing the four bytes [1, 2, 3, 255], iterates each index, and asserts get_child_value(i).get_byte() returns the original byte sequence, exercising the byte-array variant indexed-access path distinct from int32 array and string-array tests.
PyGObject GLib.Variant.is_container distinguishes tuple (true) from scalar int (false) Port / glib / usage-python3-gi-r19-variant-is-container-tuple-vs-int Passed
Builds a tuple variant GLib.Variant("(si)") and a scalar int variant GLib.Variant("i") and asserts is_container returns True for the tuple and False for the int, exercising the variant container-classification predicate on a deterministic pair of types.
PyGObject GLib.compute_checksum_for_string SHA256 of empty string equals canonical digest Port / glib / usage-python3-gi-r20-checksum-sha256-empty-string-known-digest Passed
Calls GLib.compute_checksum_for_string with SHA256 over the empty string and asserts the returned 64-character hex digest equals the canonical FIPS-180-4 value e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855, exercising the SHA256 known-answer test for the zero-length input distinct from the existing MD5 empty-string test.
PyGObject GLib.format_size on 1024 emits a human string starting with "1.0" Port / glib / usage-python3-gi-r20-format-size-1024-bytes-prefix Passed
Calls GLib.format_size with value 1024 and asserts the returned human-readable string starts with the literal prefix "1.0" (e.g. "1.0 kB" in SI mode by default), exercising the SI-prefix formatter at exactly one binary kilobyte distinct from prior zero-input and IEC-vs-SI parity tests.
PyGObject GLib.KeyFile.set_double then get_double roundtrips 3.14159 Port / glib / usage-python3-gi-r20-keyfile-set-double-roundtrip Passed
Constructs a GLib.KeyFile and calls set_double on group="math" key="pi" with value 3.14159, then immediately calls get_double on the same group/key and asserts the returned float is within 1e-9 of 3.14159, exercising the typed double setter/getter pairing distinct from prior string/integer/boolean key tests.
PyGObject GLib.uri_escape_string leaves unreserved ~ and percent-encodes ! Port / glib / usage-python3-gi-r20-uri-escape-reserved-bang-tilde Passed
Calls GLib.uri_escape_string on the literal "hello!~" with no reserved characters and allow_utf8=False, asserting the result equals "hello%21~" since RFC 3986 marks "~" as unreserved (kept verbatim) while "!" is in the reserved set and gets percent-encoded as %21, exercising the URI escape character classification distinct from prior space-only tests.
PyGObject GLib.Variant byte-array "ay" roundtrips a non-trivial byte sequence Port / glib / usage-python3-gi-r20-variant-byte-array-roundtrip Passed
Builds a GLib.Variant of type "ay" from a Python bytes payload b"\x00\x01\x02hello\xff", round-trips it via GVariant.unpack and asserts the recovered Python list equals [0, 1, 2, 104, 101, 108, 108, 111, 255], exercising the byte-array Variant construction and unpacking distinct from prior indexed-byte-access tests.
PyGObject GLib.Bytes.new(b'') reports size 0 and equality with another empty Bytes Port / glib / usage-python3-gi-r21-bytes-new-zero-length-get-size Passed
Constructs a GLib.Bytes from a zero-length Python bytes object and asserts get_size() returns 0, get_data() returns an empty bytes object, and equal() returns True against a second zero-length GLib.Bytes, exercising the empty-Bytes boundary case distinct from prior nonempty-payload Bytes roundtrip tests.
PyGObject GLib.markup_escape_text escapes all four canonical XML special characters Port / glib / usage-python3-gi-r21-markup-escape-amp-lt-gt-quote Passed
Calls GLib.markup_escape_text on the string '&<>"\'' and asserts the returned text equals "&<>"'" (the canonical XML entity escapes for ampersand, less-than, greater-than, double-quote, and apostrophe), exercising the full XML-markup escape set distinct from prior single-char or partial-set escape tests.
PyGObject GLib.spawn_command_line_sync('/bin/true') returns success and exit status zero Port / glib / usage-python3-gi-r21-spawn-command-line-sync-true-exit-zero Passed
Calls GLib.spawn_command_line_sync('/bin/true') and asserts the tuple returns success True with empty stdout/stderr bytes and exit status equal to 0, exercising the spawn-sync wrapper return-value shape on a known-success command distinct from the existing spawn-command-line-sync test that only verified stdout payload.
PyGObject GLib.Uri.parse extracts userinfo from https://user:pass@host/path Port / glib / usage-python3-gi-r21-uri-parse-userinfo-component Passed
Calls GLib.Uri.parse on the URI "https://alice:secret@example.com:443/api" with NONE flags and asserts the resulting GUri.get_userinfo() returns "alice:secret", get_host() returns "example.com", get_port() returns 443 and get_scheme() returns "https", exercising the userinfo extraction distinct from the existing scheme/host/port and query-component parse tests.
PyGObject GLib.Variant '(ii)' tuple of two int32 unpacks to the same Python tuple Port / glib / usage-python3-gi-r21-variant-int-tuple-ii-roundtrip Passed
Builds a GLib.Variant of type '(ii)' from a Python tuple (12345, -6789) and asserts unpack returns the same two-element tuple with both elements as Python ints, exercising the int32 pair tuple Variant roundtrip distinct from the existing tuple-int-only and tuple-string-vardict tests.
PyGObject GLib regex match Port / glib / usage-python3-gi-regex-match Passed
Matches a string with GLib.regex_match_simple through PyGObject and verifies the boolean result.
PyGObject GLib shell parse argv Port / glib / usage-python3-gi-shell-parse-argv-batch11 Passed
PyGObject GLib.shell_parse_argv produces argv list for rich command lines Port / glib / usage-python3-gi-shell-parse-argv-rich Passed
Parses a command line containing flag-value pairs, double-quoted arguments with spaces, escaped quotes, and a literal dollar token through PyGObject and verifies every argv element.
PyGObject GLib shell quote Port / glib / usage-python3-gi-shell-quote-batch11 Passed
PyGObject GLib spawn_command_line_sync echo Port / glib / usage-python3-gi-spawn-command-line-sync Passed
Runs /bin/echo through GLib.spawn_command_line_sync from PyGObject and verifies the captured stdout, exit status, and empty stderr.
PyGObject GLib uri escape Port / glib / usage-python3-gi-string-replace Passed
Escapes a URI component through GLib uri_escape_string from PyGObject and verifies the percent-encoded output.
PyGObject timeout callback Port / glib / usage-python3-gi-timeout-callback Passed
PyGObject GLib Unix epoch date Port / glib / usage-python3-gi-unix-epoch-year-batch11 Passed
PyGObject GLib Uri build Port / glib / usage-python3-gi-uri-build Passed
Constructs a URI from components with GLib.Uri.build through PyGObject and verifies the serialized string.
PyGObject URI escaping Port / glib / usage-python3-gi-uri-escape Passed
PyGObject GLib uri_list_extract_uris Port / glib / usage-python3-gi-uri-list-extract Passed
Splits a text/uri-list payload through GLib.uri_list_extract_uris and verifies comment lines are dropped while three URIs are preserved in order.
PyGObject GLib URI parse Port / glib / usage-python3-gi-uri-parse-components Passed
PyGObject GLib.Uri.parse exposes full GUri inspection Port / glib / usage-python3-gi-uri-parse-guri-inspection Passed
Parses an authority-rich URI into a GUri through PyGObject and verifies scheme, user, password, host, port, path, query, and fragment accessors all return the expected components.
PyGObject URI parse Port / glib / usage-python3-gi-uri-parse Passed
PyGObject GLib URI unescape Port / glib / usage-python3-gi-uri-unescape-batch11 Passed
PyGObject GLib user data dir Port / glib / usage-python3-gi-user-data-dir Passed
Reads the XDG user data directory through GLib.get_user_data_dir and verifies it honors XDG_DATA_HOME.
PyGObject GLib.utf8_collate orders strings consistently Port / glib / usage-python3-gi-utf8-collate-ordering Passed
Compares strings via GLib.utf8_collate through PyGObject and verifies the sign of the result for less-than, greater-than, and equal cases.
PyGObject GLib utf8_strreverse and strlen Port / glib / usage-python3-gi-utf8-strreverse Passed
Reverses an ASCII string and counts a multibyte UTF-8 string with GLib.utf8_strreverse and GLib.utf8_strlen, confirming the codepoint count for caf and the reversal of hello.
PyGObject GLib random UUID Port / glib / usage-python3-gi-uuid-random-batch11 Passed
PyGObject UUID string Port / glib / usage-python3-gi-uuid-string Passed
PyGObject GLib.Variant ai populated and empty arrays Port / glib / usage-python3-gi-variant-ai-empty-and-populated Passed
Constructs GLib.Variant("ai", ...) for a populated and an empty integer array through PyGObject and verifies n_children, unpack, and the type signature match the construction inputs.
PyGObject GLib string array variant Port / glib / usage-python3-gi-variant-array-strings Passed
Builds a GLib string array variant through PyGObject and verifies child count and an indexed string element.
PyGObject GLib Variant boolean get_boolean Port / glib / usage-python3-gi-variant-bool-get Passed
Constructs a boolean GLib Variant in PyGObject and verifies get_boolean returns True for a true-valued variant and False for a false-valued one.
PyGObject GLib VariantBuilder array Port / glib / usage-python3-gi-variant-builder-array Passed
PyGObject GLib variant dict Port / glib / usage-python3-gi-variant-dict-count Passed
Builds a GLib VariantDict through PyGObject and verifies a typed lookup returns the inserted integer.
PyGObject variant dict Port / glib / usage-python3-gi-variant-dict Passed
PyGObject GLib Variant double get_double roundtrip Port / glib / usage-python3-gi-variant-double-get Passed
Builds a double-typed GLib Variant in PyGObject and verifies get_double roundtrips the floating-point value within a small epsilon.
PyGObject GLib Variant get_strv Port / glib / usage-python3-gi-variant-get-strv Passed
Builds a string-array GLib.Variant and reads it back as a native string list with Variant.get_strv() through PyGObject.
PyGObject GLib int array variant Port / glib / usage-python3-gi-variant-int-array-batch11 Passed
PyGObject GLib variant lookup Port / glib / usage-python3-gi-variant-lookup Passed
PyGObject GLib Variant text parse Port / glib / usage-python3-gi-variant-parse Passed
Parses a GVariant text-format literal with GLib.Variant.parse through PyGObject and verifies the unpacked tuple.
PyGObject GLib Variant compact print form Port / glib / usage-python3-gi-variant-print-compact Passed
Prints a GLib Variant in compact form via Variant.print_(False) from PyGObject and verifies the type-annotation-free representation.
PyGObject GLib Variant tuple of ints Port / glib / usage-python3-gi-variant-tuple-int Passed
Builds a GLib.Variant with the (ii) signature from PyGObject and verifies unpack returns the original integer pair.
PyGObject GLib Variant composite tuple with vardict Port / glib / usage-python3-gi-variant-tuple-string-vardict Passed
Builds a GLib.Variant with the (sa{sv}) signature combining a string and a string-keyed variant dict and verifies the unpacked Python representation.
PyGObject GLib Variant Port / glib / usage-python3-gi-variant Passed
CVE-2018-16428 glib regression Port / glib / cve-2018-16428 Passed
Asserts that g_markup_parse_context_end_parse on a context that has not seen any markup data returns a structured G_MARKUP_ERROR rather than dereferencing a null parser-state pointer.
CVE-2019-13012 glib regression Port / glib / cve-2019-13012 Passed
Asserts that the GSettings keyfile backend creates its store directory mode 0700 and settings.ini mode 0600 regardless of umask, instead of inheriting world/group permissions from a 0777/0666 default.
CVE-2021-27218 glib regression Port / glib / cve-2021-27218 Passed
Asserts that g_byte_array_new_take rejects a length larger than G_MAXUINT by returning NULL, instead of silently truncating the gsize argument into the guint length field and creating a confused buffer.
CVE-2021-28153 glib regression Port / glib / cve-2021-28153 Passed
Asserts that g_file_replace with G_FILE_CREATE_REPLACE_DESTINATION on a path that is a dangling symlink does not silently materialize the symlink target on disk; the patched glib must either replace the symlink itself or fail with a structured GIO error.
CVE-2023-29499 glib regression Port / glib / cve-2023-29499 Passed
Asserts that g_variant_new_from_bytes followed by g_variant_get_normal_form on a malformed serialized GVariant terminates and produces a normalized value rather than crashing or running unbounded.
CVE-2023-32611 glib regression Port / glib / cve-2023-32611 Passed
Asserts that GVariant normalisation of a deeply nested array-of-variants payload completes within a bounded time budget rather than slowing down catastrophically as in the pre-patch crafted-input behavior.
CVE-2023-32665 glib regression Port / glib / cve-2023-32665 Passed
Asserts that GVariant normalisation of nested variant containers completes in bounded time rather than falling into the exponential blowup that characterized vulnerable builds.