2013-09-01 18:05:16 +04:00
#!/bin/bash
#
2014-01-15 18:48:04 +04:00
# Copyright (C) 2011,2014 Colin Walters <walters@verbum.org>
2013-09-01 18:05:16 +04:00
# Copyright (C) 2013 Javier Martinez <javier.martinez@collabora.co.uk>
#
2018-01-30 22:26:26 +03:00
# SPDX-License-Identifier: LGPL-2.0+
#
2013-09-01 18:05:16 +04: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
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
2016-01-27 19:44:10 +03:00
set -euo pipefail
2013-09-01 18:05:16 +04:00
. $( dirname $0 ) /libtest.sh
2015-07-14 20:30:05 +03:00
# Exports OSTREE_SYSROOT so --sysroot not needed.
2020-02-04 15:39:27 +03:00
kver = "3.6.0"
modulesdir = " usr/lib/modules/ ${ kver } "
setup_os_repository "archive" "uboot" ${ modulesdir }
2013-09-01 18:05:16 +04:00
2020-02-04 15:39:27 +03:00
extra_admin_tests = 2
2017-08-23 19:15:46 +03:00
2014-01-15 18:48:04 +04:00
. $( dirname $0 ) /admin-test.sh
2016-08-23 15:32:35 +03:00
cd ${ test_tmpdir }
2017-10-19 21:28:02 +03:00
# Note this test actually requires a checksum change to /boot,
# because adding the uEnv.txt isn't currently covered by the
# "bootcsum".
os_repository_new_commit "uboot test" "test upgrade multiple kernel args"
2017-08-15 18:22:21 +03:00
mkdir -p osdata/usr/lib/ostree-boot
2017-08-04 22:58:41 +03:00
cat << 'EOF' > osdata/usr/lib/ostree-boot/uE nv.txt
2016-08-23 15:32:35 +03:00
loaduimage = load mmc ${ bootpart } ${ loadaddr } ${ kernel_image }
loadfdt = load mmc ${ bootpart } ${ fdtaddr } ${ bootdir } ${ fdtfile }
loadramdisk = load mmc ${ bootpart } ${ rdaddr } ${ ramdisk_image }
mmcargs = setenv bootargs $bootargs console = ${ console } ${ optargs } root = ${ mmcroot } rootfstype = ${ mmcrootfstype }
mmcboot = run loadramdisk; echo Booting from mmc ....; run mmcargs; bootz ${ loadaddr } ${ rdaddr } ${ fdtaddr }
EOF
${ CMD_PREFIX } ostree --repo= testos-repo commit --tree= dir = osdata/ -b testos/buildmaster/x86_64-runtime
${ CMD_PREFIX } ostree admin upgrade --os= testos
assert_file_has_content sysroot/boot/uEnv.txt "loadfdt="
assert_file_has_content sysroot/boot/uEnv.txt "kernel_image="
2017-09-05 15:59:35 +03:00
assert_file_has_content sysroot/boot/uEnv.txt "kernel_image2="
assert_file_has_content sysroot/boot/uEnv.txt "kernel_image3="
2016-08-23 15:32:35 +03:00
echo "ok merging uEnv.txt files"
2020-02-04 15:39:27 +03:00
cd ${ test_tmpdir }
os_repository_new_commit "uboot 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 }
bootcsum = $(
( echo "new: a kernel uboot test" && echo "new: an initramfs uboot test" &&
cat ${ devicetree_path } ${ devicetree_overlay_path } ) |
sha256sum | cut -f 1 -d ' ' )
${ CMD_PREFIX } ostree --repo= testos-repo commit --tree= dir = osdata/ -b testos/buildmaster/x86_64-runtime
${ CMD_PREFIX } ostree admin upgrade --os= testos
assert_file_has_content sysroot/boot/uEnv.txt "fdtdir="
assert_file_has_content sysroot/boot/ostree/testos-${ bootcsum } /dtb/asoc-board.dtb 'a device tree'
assert_file_has_content sysroot/boot/ostree/testos-${ bootcsum } /dtb/overlays/overlay.dtbo 'a device tree overlay'
echo "ok deploying fdtdir"