3 # Written by Guilherme Maciel Ferreira <guilherme.maciel.ferreira@gmail.com>
5 # Sanity check for mkimage and dumpimage tools
7 # SPDX-License-Identifier: GPL-2.0+
11 # make O=sandbox sandbox_config
13 # ./test/image/test-imagetools.sh
17 IMAGE_NAME="v1.0-test"
22 DATAFILES="${DATAFILE0} ${DATAFILE1} ${DATAFILE2}"
24 MKIMAGE=${BASEDIR}/tools/mkimage
25 DUMPIMAGE=${BASEDIR}/tools/dumpimage
26 MKIMAGE_LIST=mkimage.list
27 DUMPIMAGE_LIST=dumpimage.list
29 # Remove all the files we created
34 for file in ${DATAFILES}; do
35 rm -f ${file} ${SRCDIR}/${file}
37 rm -f ${IMAGE} ${DUMPIMAGE_LIST} ${MKIMAGE_LIST} ${TEST_OUT}
41 # Check that two files are the same
51 # Create some test files
57 for file in ${DATAFILES}; do
58 head -c $RANDOM /dev/urandom >${SRCDIR}/${file}
62 # Run a command, echoing it first
71 # Run a command, redirecting output
85 # Write files into an image
88 local files="${SRCDIR}/${DATAFILE0}:${SRCDIR}/${DATAFILE1}"
89 files+=":${SRCDIR}/${DATAFILE2}"
91 echo -e "\nBuilding image..."
92 do_cmd ${MKIMAGE} -A x86 -O linux -T multi -n \"${IMAGE_NAME}\" \
97 # Extract files from an image
100 echo -e "\nExtracting image contents..."
101 do_cmd ${DUMPIMAGE} -i ${IMAGE} -p 0 ${DATAFILE0}
102 do_cmd ${DUMPIMAGE} -i ${IMAGE} -p 1 ${DATAFILE1}
103 do_cmd ${DUMPIMAGE} -i ${IMAGE} -p 2 ${DATAFILE2}
104 do_cmd ${DUMPIMAGE} -i ${IMAGE} -p 2 ${DATAFILE2} -o ${TEST_OUT}
108 # List the contents of a file
111 echo -e "\nListing image contents..."
112 do_cmd_redir ${MKIMAGE_LIST} ${MKIMAGE} -l ${IMAGE}
113 do_cmd_redir ${DUMPIMAGE_LIST} ${DUMPIMAGE} -l ${IMAGE}
123 # Compress and extract multifile images, compare the result
126 for file in ${DATAFILES}; do
127 assert_equal ${file} ${SRCDIR}/${file}
129 assert_equal ${TEST_OUT} ${DATAFILE2}
131 # List contents and compares output fro tools
133 assert_equal ${DUMPIMAGE_LIST} ${MKIMAGE_LIST}
135 # Remove files created