[Why]
We use compass-ci/container/qcow2rootfs to generate rootfs from
qcow2, but compass-ci updated the code, qcow2rootfs create a vmlinuz
soft link at {rootfs_dir}/boot.
As a result, when getting var(kernel_path), the vmlinuz soft link is
also included, and our var(kernel_path) gets two identical vmlinuz.
Error msg:
+ sed -i 's|KERNEL|"{rootfs_dir}/boot/vmlinuz-4.19.90-2010.2.0.0046.oe1.aarch64
{rootfs_dir}/boot/vmlinuz-4.19.90-2010.2.0.0046.oe1.aarch64"|g' {i2r_src}/env/iso2rootfs/kvm.sh
sed: -e expression #1, char 133: unterminated `s' command
[How]
1. When filtering vmlinuz:
Before:
realpath {rootfs_dir}/boot/vmlinuz* | grep -v rescue
After:
realpath {rootfs_dir}/boot/vmlinuz-* | grep -v rescue
2. Add a judgement, if the kernel num of result rootfs is not equal to
1, exit.
Signed-off-by: Yu Chuan <13186087857(a)163.com>
---
tests/iso2rootfs | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/tests/iso2rootfs b/tests/iso2rootfs
index 87a51acaca5f..754638c95b39 100755
--- a/tests/iso2rootfs
+++ b/tests/iso2rootfs
@@ -375,8 +375,12 @@ test_rootfs()
log_info "starting test rootfs ..."
local test_script="${CGZ_PATH}/kvm.sh"
- local kernel_path=$(realpath "${ROOTFS_DES_DIR}"/boot/vmlinuz*|grep -v rescue)
+ local kernel_path=$(realpath "${ROOTFS_DES_DIR}"/boot/vmlinuz-*|grep -v rescue)
local initrd_lkp_path=$(realpath "${ROOTFS_DES_DIR}"/boot/initramfs.lkp*)
+
+ local kernel_num=$(echo "$kernel_path" | wc -l)
+ [ "$kernel_num" == "1" ] || die "result rootfs have multiple vmlinuz, num: $kernel_num"
+
local root_path
case ${rootfs_protocol} in
"nfs")
--
2.23.0