ostree/tests
Matthew Leeds cb3360fca6 lib/repo: Add timestamps to OstreeRepoFinderResult
Currently OstreeRepoFinderResult, a data structure used by pull code
that supports P2P operations, has a hash table mapping refs to checksums
but doesn't include timestamp information. This means that clients have
no way of knowing just from the OstreeRepoFinderResult information if a
commit being offered by a peer remote is an update or downgrade until
they start pulling it. The client could check the summary or the commit
metadata for the timestamps, but this requires adding the temporary
remotes to the repo config, and ostree is already checking timestamps
before returning the results, so I think it makes more sense for them to
be returned rather than leaving it to the client. This limitation is
especially important for offline computers, because for online computers
the latest commit available from any remote is the latest commit,
period.

This commit adds a "ref_to_timestamp" hash table to
OstreeRepoFinderResult that is symmetric to "ref_to_checksum" in that it
shares the same keys. This is an API break, but it's part of the
experimental API, and none of the current users of that (flatpak,
eos-updater, and gnome-software) are affected. See the documentation for
more details on "ref_to_timestamp". One thing to note is the data
structure currently gets initialized in find_remotes_cb(), so only users
of ostree_repo_find_remotes_async() will get them, not users of, say,
ostree_repo_finder_resolve_all_async(). This is because the individual
OstreeRepoFinder implementations don't currently access the timestamps
(but I think this could be changed in the future if there's a need).

This commit will allow P2P support to be added to
flatpak_installation_list_installed_refs_for_update, which will allow
GNOME Software to update apps from USB drives while offline (it's
already possible online).

Closes: #1518
Approved by: cgwalters
2018-04-03 15:50:40 +00:00
..
coccinelle Add Coccinelle usage: one for blacklisting, one for patch collection 2017-03-30 19:19:54 +00:00
fedora-str tests: Small tweaks for local iteration 2018-03-22 19:01:52 +00:00
gpg-verify-data gpg: Regenerate test data for test-gpg-verify-result 2015-03-19 12:43:04 -04:00
gpghome tests: Port to glib-tap.mk, make `make check` run all of the tests 2016-03-03 08:50:19 -05:00
installed tests/installed: Fix TESTS= being empty 2018-03-26 19:02:54 +00:00
.gitignore create-usb: Add a create-usb command to complement OstreeRepoFinderMount 2017-09-27 14:44:00 +00:00
admin-test.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
archive-test.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
basic-test.sh tests: Fix unit test for ref-binding metadata 2018-03-28 23:41:55 +00:00
bootloader-entries-crosscheck.py Use Python 3 for tests 2018-02-23 22:49:06 +00:00
coccinelle.sh Add Coccinelle usage: one for blacklisting, one for patch collection 2017-03-30 19:19:54 +00:00
corrupt-repo-ref.js Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
fah-deltadata-new.tar.xz tests: Add a "pull-test2" that uses slightly more realistic content 2017-11-01 17:38:26 +00:00
fah-deltadata-old.tar.xz tests: Add a "pull-test2" that uses slightly more realistic content 2017-11-01 17:38:26 +00:00
get-byte-order.c tests: Assert that byte-order is swapped on LE but not BE CPUs 2018-01-04 12:32:47 +00:00
glib.supp glib.supp: Suppress g_task -> thread leaks 2016-07-28 10:10:17 +00:00
grub2-entries-crosscheck.py tests: Add a test script to cross-check loader config vs GRUB2 2015-05-28 14:21:30 -04:00
libostreetest.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
libostreetest.h Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
libtest-core.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
libtest.sh lib/fetcher: Allow clients to append to User-Agent 2018-03-16 19:21:31 +00:00
ostree-grub-generator Introducing ostree-grub-generator 2016-04-04 14:19:35 +00:00
ostree-path-traverse.tar.gz tests: Add a test case for path traversal in a dirtree 2018-01-12 19:38:34 +00:00
ostree.supp tests: Modernize valgrind infrastructure 2016-06-09 21:10:35 +00:00
pre-endian-deltas-repo-big.tar.xz deltas: Heuristically detect endianness for older deltas 2016-02-26 08:19:01 -05:00
pre-endian-deltas-repo-little.tar.xz deltas: Heuristically detect endianness for older deltas 2016-02-26 08:19:01 -05:00
pull-test.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
pull-test2.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
readdir-rand.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
repo-finder-mount.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-deploy-2.sh sysroot: Add concept of deployment "pinning" 📌 2018-02-26 19:06:59 +00:00
test-admin-deploy-bootid-gc.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-deploy-clean.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-deploy-etcmerge-cornercases.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-deploy-grub2.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-deploy-karg.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-deploy-switch.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-deploy-syslinux.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-deploy-uboot.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-instutil-set-kargs.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-locking.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-pull-deploy-commit.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-pull-deploy-split.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-upgrade-endoflife.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-upgrade-not-backwards.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-admin-upgrade-unconfigured.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-archivez.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-auto-summary.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-basic-c.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-basic-root.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-basic-user-only.sh Use Python 3 for tests 2018-02-23 22:49:06 +00:00
test-basic-user.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-basic.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-bloom.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-bsdiff.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-checksum.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-commit-sign.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-concurrency.py Use Python 3 for tests 2018-02-23 22:49:06 +00:00
test-core.js Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-corruption.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-create-usb.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-delta.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-demo-buildsystem.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-export.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-find-remotes.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-fsck-collections.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-gpg-signed-commit.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-gpg-verify-result.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-help.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-init-collections.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-keyfile-utils.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-libarchive-import.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-libarchive.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-local-pull-depth.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-local-pull.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-lzma.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-mock-gio.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-mock-gio.h Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-mutable-tree.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-no-initramfs.sh Add support for devicetree files alongside the kernel and initramfs 2018-01-16 22:54:53 +00:00
test-oldstyle-partial.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-ot-opt-utils.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-ot-tool-util.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-ot-unix-utils.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-parent.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-prune-collections.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-prune.sh prune: Error if --static-deltas-only without --delete-commit 2018-03-05 17:39:35 +00:00
test-pull-bare.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-bareuser.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-bareuseronly.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-c.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-collections.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-commit-only.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-contenturl.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-corruption.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-depth.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-large-metadata.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-localcache.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-metalink.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-mirror-summary.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-mirrorlist.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-override-url.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-repeated.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-resume.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-subpath.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-summary-sigs.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull-untrusted.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-pull2-bareuseronly.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-refs-collections.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-refs.sh lib/core: Support <remote>: syntax when listing refs 2018-03-16 19:18:08 +00:00
test-remote-add-collections.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-remote-add.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-remote-cookies.sh lib/fetcher: Allow clients to append to User-Agent 2018-03-16 19:21:31 +00:00
test-remote-gpg-import.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-remote-headers.sh lib/fetcher: Allow clients to append to User-Agent 2018-03-16 19:21:31 +00:00
test-remotes-config-dir.js Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-repo-finder-avahi.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-repo-finder-config.c lib/repo: Add timestamps to OstreeRepoFinderResult 2018-04-03 15:50:40 +00:00
test-repo-finder-mount-integration.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-repo-finder-mount.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-repo.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-reset-nonlinear.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-rofiles-fuse.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-rollsum-cli.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-rollsum.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-sizes.js Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-summary-collections.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-summary-update.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-summary-view.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-switchroot.sh test-switchroot.sh: skip if no busybox 2017-06-27 21:45:34 +00:00
test-symbols.sh Release 2018.3 2018-03-21 16:01:41 +00:00
test-sysroot-c.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-sysroot.js Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-varint.c Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00
test-xattrs.sh Add SPDX-License-Identifier to source files 2018-01-30 20:03:42 +00:00