2020-09-24 22:28:31 +03:00
#!/bin/bash
#
# Copyright (C) 2020 Red Hat, Inc.
#
# SPDX-License-Identifier: LGPL-2.0+
#
# 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/>.
2020-09-24 22:28:31 +03:00
set -euo pipefail
. $( dirname $0 ) /libtest.sh
echo "1..1"
# Exports OSTREE_SYSROOT so --sysroot not needed.
kver = "3.6.0"
modulesdir = " usr/lib/modules/ ${ kver } "
setup_os_repository "archive" "syslinux" ${ modulesdir }
cd ${ test_tmpdir }
os_repository_new_commit "test" "test with device tree directory"
devicetree_path = osdata/${ modulesdir } /dtb/asoc-board.dtb
devicetree_overlay_path = osdata/${ modulesdir } /dtb/overlays/overlay.dtbo
mkdir -p osdata/${ modulesdir } /dtb
echo "a device tree" > ${ devicetree_path }
mkdir -p osdata/${ modulesdir } /dtb/overlays
echo "a device tree overlay" > ${ devicetree_overlay_path }
2021-05-07 17:42:37 +03:00
${ CMD_PREFIX } ostree --repo= testos-repo commit --tree= dir = osdata/ -b testos/buildmain/x86_64-runtime
${ CMD_PREFIX } ostree --repo= sysroot/ostree/repo pull-local --remote= testos testos-repo testos/buildmain/x86_64-runtime
${ CMD_PREFIX } ostree --repo= sysroot/ostree/repo remote add --set= gpg-verify= false testos file://$( pwd ) /testos-repo testos/buildmain/x86_64-runtime
${ CMD_PREFIX } env OSTREE_SYSROOT_DEBUG = ${ OSTREE_SYSROOT_DEBUG } ,no-dtb ostree admin deploy --os= testos testos:testos/buildmain/x86_64-runtime
2020-09-24 22:28:31 +03:00
assert_has_file sysroot/boot/ostree/testos-${ bootcsum } /vmlinuz-3.6.0
assert_not_has_file sysroot/boot/ostree/testos-${ bootcsum } /dtb/asoc-board.dtb 'a device tree'
assert_streq $( ls sysroot/boot/ostree | wc -l) 1
assert_streq $( find sysroot/boot/ostree -name '*.dtb' | wc -l) 0
2021-05-07 17:42:37 +03:00
${ CMD_PREFIX } ostree --repo= testos-repo commit --tree= dir = osdata/ -b testos/buildmain/x86_64-runtime
2020-09-24 22:28:31 +03:00
env OSTREE_SYSROOT_DEBUG = ${ OSTREE_SYSROOT_DEBUG } ,no-dtb ${ CMD_PREFIX } ostree admin upgrade --os= testos
2021-05-07 17:42:37 +03:00
${ CMD_PREFIX } ostree --repo= testos-repo commit --tree= dir = osdata/ -b testos/buildmain/x86_64-runtime
2020-09-24 22:28:31 +03:00
${ CMD_PREFIX } ostree admin upgrade --os= testos
assert_streq $( ls sysroot/boot/ostree | wc -l) 2
# Note that the bootcsum computed by the test suite doesn't include devicetree
# And currently we end up installing the dtb for the *previous* deployment
# too which is a bug - in the future this should be fixed to assert 1.
assert_streq $( find sysroot/boot/ostree -name '*.dtb' | wc -l) 2
echo "ok update with no dtb to dtb"