2017-10-30 21:17:10 +03:00
# This file is to be sourced, not executed
# Copyright (C) 2011 Colin Walters <walters@verbum.org>
#
2018-01-30 22:26:26 +03:00
# SPDX-License-Identifier: LGPL-2.0+
#
2017-10-30 21:17:10 +03:00
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
2021-12-07 04:20:55 +03:00
# License along with this library. If not, see <https://www.gnu.org/licenses/>.
2017-10-30 21:17:10 +03:00
set -euo pipefail
function repo_init( ) {
cd ${ test_tmpdir }
rm repo -rf
mkdir repo
ostree_repo_init repo --mode= ${ repo_mode }
${ CMD_PREFIX } ostree --repo= repo remote add origin $( cat httpd-address) /ostree/gnomerepo " $@ "
}
2019-11-17 21:01:13 +03:00
repo_init --no-sign-verify
2017-10-30 21:17:10 +03:00
# See also the copy of this in basic-test.sh
COMMIT_ARGS = ""
CHECKOUT_U_ARG = ""
CHECKOUT_H_ARGS = "-H"
if is_bare_user_only_repo repo; then
COMMIT_ARGS = "--canonical-permissions"
# Also, since we can't check out uid=0 files we need to check out in user mode
CHECKOUT_U_ARG = "-U"
CHECKOUT_H_ARGS = "-U -H"
else
if grep -E -q '^mode=bare-user' repo/config; then
CHECKOUT_H_ARGS = "-U -H"
fi
fi
echo "1..1"
cd ${ test_tmpdir }
2019-11-17 21:01:13 +03:00
repo_init --no-sign-verify
2017-10-30 21:17:10 +03:00
prev_rev = $( ostree --repo= ostree-srv/repo rev-parse ${ remote_ref } ^)
rev = $( ostree --repo= ostree-srv/repo rev-parse ${ remote_ref } )
${ CMD_PREFIX } ostree --repo= ostree-srv/repo static-delta generate ${ remote_ref }
${ CMD_PREFIX } ostree --repo= ostree-srv/repo summary -u
${ CMD_PREFIX } ostree --repo= repo pull origin ${ remote_ref } @${ prev_rev }
${ CMD_PREFIX } ostree --repo= repo pull --dry-run --require-static-deltas origin ${ remote_ref } >dry-run-pull.txt
2019-04-02 05:01:49 +03:00
assert_file_has_content dry-run-pull.txt 'Delta update: 0/1 parts, 0 bytes/[45][0-9]\.[0-9][ ]kB, 1\.[678][ ]MB total uncompressed'
2017-10-30 21:17:10 +03:00
${ CMD_PREFIX } ostree --repo= repo pull --require-static-deltas origin ${ remote_ref }
final_rev = $( ${ CMD_PREFIX } ostree --repo= repo rev-parse origin:${ remote_ref } )
assert_streq " ${ rev } " " ${ final_rev } "
${ CMD_PREFIX } ostree --repo= repo fsck
echo "ok delta"