2013-09-01 16:05:16 +02:00
#!/bin/bash
#
2014-01-15 09:48:04 -05:00
# Copyright (C) 2011,2014 Colin Walters <walters@verbum.org>
2013-09-01 16:05:16 +02:00
# Copyright (C) 2013 Javier Martinez <javier.martinez@collabora.co.uk>
#
2018-01-30 20:26:26 +01:00
# SPDX-License-Identifier: LGPL-2.0+
#
2013-09-01 16:05:16 +02: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-06 20:20:55 -05:00
# License along with this library. If not, see <https://www.gnu.org/licenses/>.
2013-09-01 16:05:16 +02:00
2016-01-27 11:44:10 -05:00
set -euo pipefail
2013-09-01 16:05:16 +02:00
. $( dirname $0 ) /libtest.sh
2015-07-14 13:30:05 -04:00
# Exports OSTREE_SYSROOT so --sysroot not needed.
2020-02-04 13:39:27 +01:00
kver = "3.6.0"
modulesdir = " usr/lib/modules/ ${ kver } "
setup_os_repository "archive" "uboot" ${ modulesdir }
2013-09-01 16:05:16 +02:00
2020-02-04 13:39:27 +01:00
extra_admin_tests = 2
2017-08-23 12:15:46 -04:00
2014-01-15 09:48:04 -05:00
. $( dirname $0 ) /admin-test.sh
2016-08-23 14:32:35 +02:00
cd ${ test_tmpdir }
2017-10-19 14:28:02 -04: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 11:22:21 -04:00
mkdir -p osdata/usr/lib/ostree-boot
2017-08-04 15:58:41 -04:00
cat << 'EOF' > osdata/usr/lib/ostree-boot/uE nv.txt
2016-08-23 14:32:35 +02: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
2021-05-07 16:42:37 +02:00
${ CMD_PREFIX } ostree --repo= testos-repo commit --tree= dir = osdata/ -b testos/buildmain/x86_64-runtime
2016-08-23 14:32:35 +02:00
${ 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 14:32:35 +02:00
echo "ok merging uEnv.txt files"
2020-02-04 13:39:27 +01: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 ' ' )
2021-05-07 16:42:37 +02:00
${ CMD_PREFIX } ostree --repo= testos-repo commit --tree= dir = osdata/ -b testos/buildmain/x86_64-runtime
2020-02-04 13:39:27 +01:00
${ 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"