xref: /aosp_15_r20/external/flashrom/util/flashrom_partial_write_test.sh (revision 0d6140be3aa665ecc836e8907834fcd3e3b018fc)
1*0d6140beSAndroid Build Coastguard Worker#!/bin/sh
2*0d6140beSAndroid Build Coastguard Worker#
3*0d6140beSAndroid Build Coastguard Worker# Copyright (C) 2010 Google Inc.
4*0d6140beSAndroid Build Coastguard Worker# Written by David Hendricks for Google Inc.
5*0d6140beSAndroid Build Coastguard Worker#
6*0d6140beSAndroid Build Coastguard Worker# This program is free software; you can redistribute it and/or modify
7*0d6140beSAndroid Build Coastguard Worker# it under the terms of the GNU General Public License as published by
8*0d6140beSAndroid Build Coastguard Worker# the Free Software Foundation; either version 2 of the License, or
9*0d6140beSAndroid Build Coastguard Worker# (at your option) any later version.
10*0d6140beSAndroid Build Coastguard Worker#
11*0d6140beSAndroid Build Coastguard Worker# This program is distributed in the hope that it will be useful,
12*0d6140beSAndroid Build Coastguard Worker# but WITHOUT ANY WARRANTY; without even the implied warranty of
13*0d6140beSAndroid Build Coastguard Worker# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14*0d6140beSAndroid Build Coastguard Worker# GNU General Public License for more details.
15*0d6140beSAndroid Build Coastguard Worker#
16*0d6140beSAndroid Build Coastguard Worker# This script attempts to test Flashrom partial write capability by writing
17*0d6140beSAndroid Build Coastguard Worker# patterns of 0xff and 0x00 bytes to the lowest 128kB of flash. 128kB is chosen
18*0d6140beSAndroid Build Coastguard Worker# since 64kB is usually the largest possible block size, so we will try to
19*0d6140beSAndroid Build Coastguard Worker# cover at least two blocks with this test.
20*0d6140beSAndroid Build Coastguard Worker
21*0d6140beSAndroid Build Coastguard WorkerEXIT_SUCCESS=0
22*0d6140beSAndroid Build Coastguard WorkerEXIT_FAILURE=1
23*0d6140beSAndroid Build Coastguard Worker
24*0d6140beSAndroid Build Coastguard Worker# The copy of flashrom to test. If unset, we'll assume the user wants to test
25*0d6140beSAndroid Build Coastguard Worker# a newly built flashrom binary in the parent directory (this script should
26*0d6140beSAndroid Build Coastguard Worker# reside in flashrom/util).
27*0d6140beSAndroid Build Coastguard Workerif [ -z "$FLASHROM" ] ; then
28*0d6140beSAndroid Build Coastguard Worker	FLASHROM="../flashrom"
29*0d6140beSAndroid Build Coastguard Workerfi
30*0d6140beSAndroid Build Coastguard Workerecho "testing flashrom binary: ${FLASHROM}"
31*0d6140beSAndroid Build Coastguard Worker
32*0d6140beSAndroid Build Coastguard WorkerOLDDIR=$(pwd)
33*0d6140beSAndroid Build Coastguard Worker
34*0d6140beSAndroid Build Coastguard Worker# test data location
35*0d6140beSAndroid Build Coastguard WorkerTMPDIR=$(mktemp -d -t flashrom_test.XXXXXXXXXX)
36*0d6140beSAndroid Build Coastguard Workerif [ "$?" != "0" ] ; then
37*0d6140beSAndroid Build Coastguard Worker	echo "Could not create temporary directory"
38*0d6140beSAndroid Build Coastguard Worker	exit $EXIT_FAILURE
39*0d6140beSAndroid Build Coastguard Workerfi
40*0d6140beSAndroid Build Coastguard Worker
41*0d6140beSAndroid Build Coastguard WorkerZERO_4K="00_4k.bin"
42*0d6140beSAndroid Build Coastguard WorkerFF_4K="ff_4k.bin"
43*0d6140beSAndroid Build Coastguard WorkerFF_4K_TEXT="ff_4k.txt"
44*0d6140beSAndroid Build Coastguard Worker
45*0d6140beSAndroid Build Coastguard WorkerTESTFILE="test.bin"
46*0d6140beSAndroid Build Coastguard Worker
47*0d6140beSAndroid Build Coastguard Workerwhich uuencode > /dev/null
48*0d6140beSAndroid Build Coastguard Workerif [ "$?" != "0" ] ; then
49*0d6140beSAndroid Build Coastguard Worker	echo "uuencode is required to use this script"
50*0d6140beSAndroid Build Coastguard Worker	exit $EXIT_FAILURE
51*0d6140beSAndroid Build Coastguard Workerfi
52*0d6140beSAndroid Build Coastguard Worker
53*0d6140beSAndroid Build Coastguard Workerwhich flashrom > /dev/null
54*0d6140beSAndroid Build Coastguard Workerif [ "$?" != "0" ] ; then
55*0d6140beSAndroid Build Coastguard Worker	echo "Please install a stable version of flashrom in your path."
56*0d6140beSAndroid Build Coastguard Worker	echo "This will be used to compare the test flashrom binary and "
57*0d6140beSAndroid Build Coastguard Worker	echo "restore your firmware image at the end of the test."
58*0d6140beSAndroid Build Coastguard Worker	exit $EXIT_FAILURE
59*0d6140beSAndroid Build Coastguard Workerfi
60*0d6140beSAndroid Build Coastguard Worker
61*0d6140beSAndroid Build Coastguard Worker# Keep a copy of flashrom with the test data
62*0d6140beSAndroid Build Coastguard Workercp "$FLASHROM" "${TMPDIR}/"
63*0d6140beSAndroid Build Coastguard Workercd "$TMPDIR"
64*0d6140beSAndroid Build Coastguard Workerecho "Running test in ${TMPDIR}"
65*0d6140beSAndroid Build Coastguard Worker
66*0d6140beSAndroid Build Coastguard Worker# Make 4k worth of 0xff bytes
67*0d6140beSAndroid Build Coastguard Workerecho "begin 640 $FF_4K" > "$FF_4K_TEXT"
68*0d6140beSAndroid Build Coastguard Workeri=0
69*0d6140beSAndroid Build Coastguard Workerwhile [ $i -le 90 ] ; do
70*0d6140beSAndroid Build Coastguard Worker	echo "M____________________________________________________________" >> "$FF_4K_TEXT"
71*0d6140beSAndroid Build Coastguard Worker	i=$((${i} + 1))
72*0d6140beSAndroid Build Coastguard Workerdone
73*0d6140beSAndroid Build Coastguard Workerecho "!_P``" >> "$FF_4K_TEXT"
74*0d6140beSAndroid Build Coastguard Workerecho "\`" >> "$FF_4K_TEXT"
75*0d6140beSAndroid Build Coastguard Workerecho "end" >> "$FF_4K_TEXT"
76*0d6140beSAndroid Build Coastguard Workeruudecode -o "$FF_4K" "$FF_4K_TEXT"
77*0d6140beSAndroid Build Coastguard Workerrm -f "$FF_4K_TEXT"
78*0d6140beSAndroid Build Coastguard Worker
79*0d6140beSAndroid Build Coastguard Worker# Make 4k worth of 0x00 bytes
80*0d6140beSAndroid Build Coastguard Workerdd if=/dev/zero of="$ZERO_4K" bs=1 count=4096 2> /dev/null
81*0d6140beSAndroid Build Coastguard Workerecho "ffh pattern written in ${FF_4K}"
82*0d6140beSAndroid Build Coastguard Workerecho "00h pattern written in ${ZERO_4K}"
83*0d6140beSAndroid Build Coastguard Worker
84*0d6140beSAndroid Build Coastguard Workerecho "Reading BIOS image"
85*0d6140beSAndroid Build Coastguard WorkerBIOS="bios.bin"
86*0d6140beSAndroid Build Coastguard Workerflashrom ${FLASHROM_PARAM} -r "$BIOS" > /dev/null
87*0d6140beSAndroid Build Coastguard Workerecho "Original image saved as ${BIOS}"
88*0d6140beSAndroid Build Coastguard Worker
89*0d6140beSAndroid Build Coastguard Worker# $1: exit code
90*0d6140beSAndroid Build Coastguard Workerdo_exit() {
91*0d6140beSAndroid Build Coastguard Worker	if [ ${1} -eq ${EXIT_FAILURE} ] ; then
92*0d6140beSAndroid Build Coastguard Worker		echo "Result: FAILED"
93*0d6140beSAndroid Build Coastguard Worker	else
94*0d6140beSAndroid Build Coastguard Worker		echo "Result: PASSED"
95*0d6140beSAndroid Build Coastguard Worker	fi
96*0d6140beSAndroid Build Coastguard Worker
97*0d6140beSAndroid Build Coastguard Worker	echo "restoring original bios image using system's flashrom"
98*0d6140beSAndroid Build Coastguard Worker	flashrom ${FLASHROM_PARAM} -w "$BIOS"
99*0d6140beSAndroid Build Coastguard Worker	echo "test files remain in ${TMPDIR}"
100*0d6140beSAndroid Build Coastguard Worker	cd "$OLDDIR"
101*0d6140beSAndroid Build Coastguard Worker	exit "$1"
102*0d6140beSAndroid Build Coastguard Worker}
103*0d6140beSAndroid Build Coastguard Worker
104*0d6140beSAndroid Build Coastguard Worker#
105*0d6140beSAndroid Build Coastguard Worker# Actual tests are performed below.
106*0d6140beSAndroid Build Coastguard Worker#
107*0d6140beSAndroid Build Coastguard WorkerNUM_REGIONS=16
108*0d6140beSAndroid Build Coastguard Worker
109*0d6140beSAndroid Build Coastguard Worker# Make a layout - 4K regions on 4K boundaries. This will test basic
110*0d6140beSAndroid Build Coastguard Worker# functionality of erasing and writing specific blocks.
111*0d6140beSAndroid Build Coastguard Workerecho "
112*0d6140beSAndroid Build Coastguard Worker0x000000:0x000fff 00_0
113*0d6140beSAndroid Build Coastguard Worker0x001000:0x001fff ff_0
114*0d6140beSAndroid Build Coastguard Worker
115*0d6140beSAndroid Build Coastguard Worker0x002000:0x002fff 00_1
116*0d6140beSAndroid Build Coastguard Worker0x003000:0x003fff ff_1
117*0d6140beSAndroid Build Coastguard Worker
118*0d6140beSAndroid Build Coastguard Worker0x004000:0x004fff 00_2
119*0d6140beSAndroid Build Coastguard Worker0x005000:0x005fff ff_2
120*0d6140beSAndroid Build Coastguard Worker
121*0d6140beSAndroid Build Coastguard Worker0x006000:0x006fff 00_3
122*0d6140beSAndroid Build Coastguard Worker0x007000:0x007fff ff_3
123*0d6140beSAndroid Build Coastguard Worker
124*0d6140beSAndroid Build Coastguard Worker0x008000:0x008fff 00_4
125*0d6140beSAndroid Build Coastguard Worker0x009000:0x009fff ff_4
126*0d6140beSAndroid Build Coastguard Worker
127*0d6140beSAndroid Build Coastguard Worker0x00a000:0x00afff 00_5
128*0d6140beSAndroid Build Coastguard Worker0x00b000:0x00bfff ff_5
129*0d6140beSAndroid Build Coastguard Worker
130*0d6140beSAndroid Build Coastguard Worker0x00c000:0x00cfff 00_6
131*0d6140beSAndroid Build Coastguard Worker0x00d000:0x00dfff ff_6
132*0d6140beSAndroid Build Coastguard Worker
133*0d6140beSAndroid Build Coastguard Worker0x00e000:0x00efff 00_7
134*0d6140beSAndroid Build Coastguard Worker0x00f000:0x00ffff ff_7
135*0d6140beSAndroid Build Coastguard Worker
136*0d6140beSAndroid Build Coastguard Worker0x010000:0x010fff 00_8
137*0d6140beSAndroid Build Coastguard Worker0x011000:0x011fff ff_8
138*0d6140beSAndroid Build Coastguard Worker
139*0d6140beSAndroid Build Coastguard Worker0x012000:0x012fff 00_9
140*0d6140beSAndroid Build Coastguard Worker0x013000:0x013fff ff_9
141*0d6140beSAndroid Build Coastguard Worker
142*0d6140beSAndroid Build Coastguard Worker0x014000:0x014fff 00_10
143*0d6140beSAndroid Build Coastguard Worker0x015000:0x015fff ff_10
144*0d6140beSAndroid Build Coastguard Worker
145*0d6140beSAndroid Build Coastguard Worker0x016000:0x016fff 00_11
146*0d6140beSAndroid Build Coastguard Worker0x017000:0x017fff ff_11
147*0d6140beSAndroid Build Coastguard Worker
148*0d6140beSAndroid Build Coastguard Worker0x018000:0x018fff 00_12
149*0d6140beSAndroid Build Coastguard Worker0x019000:0x019fff ff_12
150*0d6140beSAndroid Build Coastguard Worker
151*0d6140beSAndroid Build Coastguard Worker0x01a000:0x01afff 00_13
152*0d6140beSAndroid Build Coastguard Worker0x01b000:0x01bfff ff_13
153*0d6140beSAndroid Build Coastguard Worker
154*0d6140beSAndroid Build Coastguard Worker0x01c000:0x01cfff 00_14
155*0d6140beSAndroid Build Coastguard Worker0x01d000:0x01dfff ff_14
156*0d6140beSAndroid Build Coastguard Worker
157*0d6140beSAndroid Build Coastguard Worker0x01e000:0x01efff 00_15
158*0d6140beSAndroid Build Coastguard Worker0x01f000:0x01ffff ff_15
159*0d6140beSAndroid Build Coastguard Worker" > layout_4k_aligned.txt
160*0d6140beSAndroid Build Coastguard Worker
161*0d6140beSAndroid Build Coastguard Workercp "$BIOS" "$TESTFILE"
162*0d6140beSAndroid Build Coastguard Workeri=0
163*0d6140beSAndroid Build Coastguard Workerwhile [ $i -lt $NUM_REGIONS ] ; do
164*0d6140beSAndroid Build Coastguard Worker	echo -n "aligned region ${i} test: "
165*0d6140beSAndroid Build Coastguard Worker	offset=$((${i} * 8192))
166*0d6140beSAndroid Build Coastguard Worker	dd if=${ZERO_4K} of=${TESTFILE} bs=1 conv=notrunc seek=${offset} 2> /dev/null
167*0d6140beSAndroid Build Coastguard Worker	dd if=${FF_4K} of=${TESTFILE} bs=1 conv=notrunc seek=$((${offset} + 4096)) 2> /dev/null
168*0d6140beSAndroid Build Coastguard Worker
169*0d6140beSAndroid Build Coastguard Worker	./flashrom ${FLASHROM_PARAM} -l layout_4k_aligned.txt -i 00_${i} -i ff_${i} -w "$TESTFILE" > /dev/null
170*0d6140beSAndroid Build Coastguard Worker	if [ "$?" != "0" ] ; then
171*0d6140beSAndroid Build Coastguard Worker		echo "failed to flash region"
172*0d6140beSAndroid Build Coastguard Worker		do_exit "$EXIT_FAILURE"
173*0d6140beSAndroid Build Coastguard Worker	fi
174*0d6140beSAndroid Build Coastguard Worker
175*0d6140beSAndroid Build Coastguard Worker	# download the entire ROM image and use diff to compare to ensure
176*0d6140beSAndroid Build Coastguard Worker	# flashrom logic does not violate user-specified regions
177*0d6140beSAndroid Build Coastguard Worker	flashrom ${FLASHROM_PARAM} -r difftest.bin > /dev/null
178*0d6140beSAndroid Build Coastguard Worker	diff -q difftest.bin "$TESTFILE"
179*0d6140beSAndroid Build Coastguard Worker	if [ "$?" != "0" ] ; then
180*0d6140beSAndroid Build Coastguard Worker		echo "failed diff test"
181*0d6140beSAndroid Build Coastguard Worker		do_exit "$EXIT_FAILURE"
182*0d6140beSAndroid Build Coastguard Worker	fi
183*0d6140beSAndroid Build Coastguard Worker	rm -f difftest.bin
184*0d6140beSAndroid Build Coastguard Worker
185*0d6140beSAndroid Build Coastguard Worker	i=$((${i} + 1))
186*0d6140beSAndroid Build Coastguard Worker	echo "passed"
187*0d6140beSAndroid Build Coastguard Workerdone
188*0d6140beSAndroid Build Coastguard Worker
189*0d6140beSAndroid Build Coastguard Worker# Make a layout - 4K regions on 4.5K boundaries. This will help find problems
190*0d6140beSAndroid Build Coastguard Worker# with logic that only operates on part of a block. For example, if a user
191*0d6140beSAndroid Build Coastguard Worker# wishes to re-write a fraction of a block, then:
192*0d6140beSAndroid Build Coastguard Worker# 1. The whole block must be erased.
193*0d6140beSAndroid Build Coastguard Worker# 2. The old content must be restored at unspecified offsets.
194*0d6140beSAndroid Build Coastguard Worker# 3. The new content must be written at specified offsets.
195*0d6140beSAndroid Build Coastguard Worker#
196*0d6140beSAndroid Build Coastguard Worker# Note: The last chunk of 0xff bytes is only 2k as to avoid overrunning a 128kB
197*0d6140beSAndroid Build Coastguard Worker# test image.
198*0d6140beSAndroid Build Coastguard Worker#
199*0d6140beSAndroid Build Coastguard Workerecho "
200*0d6140beSAndroid Build Coastguard Worker0x000800:0x0017ff 00_0
201*0d6140beSAndroid Build Coastguard Worker0x001800:0x0027ff ff_0
202*0d6140beSAndroid Build Coastguard Worker
203*0d6140beSAndroid Build Coastguard Worker0x002800:0x0037ff 00_1
204*0d6140beSAndroid Build Coastguard Worker0x003800:0x0047ff ff_1
205*0d6140beSAndroid Build Coastguard Worker
206*0d6140beSAndroid Build Coastguard Worker0x004800:0x0057ff 00_2
207*0d6140beSAndroid Build Coastguard Worker0x005800:0x0067ff ff_2
208*0d6140beSAndroid Build Coastguard Worker
209*0d6140beSAndroid Build Coastguard Worker0x006800:0x0077ff 00_3
210*0d6140beSAndroid Build Coastguard Worker0x007800:0x0087ff ff_3
211*0d6140beSAndroid Build Coastguard Worker
212*0d6140beSAndroid Build Coastguard Worker0x008800:0x0097ff 00_4
213*0d6140beSAndroid Build Coastguard Worker0x009800:0x00a7ff ff_4
214*0d6140beSAndroid Build Coastguard Worker
215*0d6140beSAndroid Build Coastguard Worker0x00a800:0x00b7ff 00_5
216*0d6140beSAndroid Build Coastguard Worker0x00b800:0x00c7ff ff_5
217*0d6140beSAndroid Build Coastguard Worker
218*0d6140beSAndroid Build Coastguard Worker0x00c800:0x00d7ff 00_6
219*0d6140beSAndroid Build Coastguard Worker0x00d800:0x00e7ff ff_6
220*0d6140beSAndroid Build Coastguard Worker
221*0d6140beSAndroid Build Coastguard Worker0x00e800:0x00f7ff 00_7
222*0d6140beSAndroid Build Coastguard Worker0x00f800:0x0107ff ff_7
223*0d6140beSAndroid Build Coastguard Worker
224*0d6140beSAndroid Build Coastguard Worker0x010800:0x0117ff 00_8
225*0d6140beSAndroid Build Coastguard Worker0x011800:0x0127ff ff_8
226*0d6140beSAndroid Build Coastguard Worker
227*0d6140beSAndroid Build Coastguard Worker0x012800:0x0137ff 00_9
228*0d6140beSAndroid Build Coastguard Worker0x013800:0x0147ff ff_9
229*0d6140beSAndroid Build Coastguard Worker
230*0d6140beSAndroid Build Coastguard Worker0x014800:0x0157ff 00_10
231*0d6140beSAndroid Build Coastguard Worker0x015800:0x0167ff ff_10
232*0d6140beSAndroid Build Coastguard Worker
233*0d6140beSAndroid Build Coastguard Worker0x016800:0x0177ff 00_11
234*0d6140beSAndroid Build Coastguard Worker0x017800:0x0187ff ff_11
235*0d6140beSAndroid Build Coastguard Worker
236*0d6140beSAndroid Build Coastguard Worker0x018800:0x0197ff 00_12
237*0d6140beSAndroid Build Coastguard Worker0x019800:0x01a7ff ff_12
238*0d6140beSAndroid Build Coastguard Worker
239*0d6140beSAndroid Build Coastguard Worker0x01a800:0x01b7ff 00_13
240*0d6140beSAndroid Build Coastguard Worker0x01b800:0x01c7ff ff_13
241*0d6140beSAndroid Build Coastguard Worker
242*0d6140beSAndroid Build Coastguard Worker0x01c800:0x01d7ff 00_14
243*0d6140beSAndroid Build Coastguard Worker0x01d800:0x01e7ff ff_14
244*0d6140beSAndroid Build Coastguard Worker
245*0d6140beSAndroid Build Coastguard Worker0x01e800:0x01f7ff 00_15
246*0d6140beSAndroid Build Coastguard Worker0x01f800:0x01ffff ff_15
247*0d6140beSAndroid Build Coastguard Worker" > layout_unaligned.txt
248*0d6140beSAndroid Build Coastguard Worker
249*0d6140beSAndroid Build Coastguard Worker# reset the test file and ROM to the original state
250*0d6140beSAndroid Build Coastguard Workerflashrom ${FLASHROM_PARAM} -w "$BIOS" > /dev/null
251*0d6140beSAndroid Build Coastguard Workercp "$BIOS" "$TESTFILE"
252*0d6140beSAndroid Build Coastguard Worker
253*0d6140beSAndroid Build Coastguard Workeri=0
254*0d6140beSAndroid Build Coastguard Workerwhile [ $i -lt $NUM_REGIONS ] ; do
255*0d6140beSAndroid Build Coastguard Worker	echo -n "unaligned region ${i} test: "
256*0d6140beSAndroid Build Coastguard Worker
257*0d6140beSAndroid Build Coastguard Worker	offset=$(($((${i} * 8192)) + 2048))
258*0d6140beSAndroid Build Coastguard Worker	# Protect against too long write
259*0d6140beSAndroid Build Coastguard Worker	writelen=4096
260*0d6140beSAndroid Build Coastguard Worker	if [ $((${offset} + 4096 + 4096)) -ge 131072 ]; then
261*0d6140beSAndroid Build Coastguard Worker		writelen=$((131072 - $((${offset} + 4096))))
262*0d6140beSAndroid Build Coastguard Worker		if [ ${writelen} -lt 0 ]; then
263*0d6140beSAndroid Build Coastguard Worker			writelen=0
264*0d6140beSAndroid Build Coastguard Worker		fi
265*0d6140beSAndroid Build Coastguard Worker	fi
266*0d6140beSAndroid Build Coastguard Worker	dd if=${ZERO_4K} of=${TESTFILE} bs=1 conv=notrunc seek=${offset} 2> /dev/null
267*0d6140beSAndroid Build Coastguard Worker	dd if=${FF_4K} of=${TESTFILE} bs=1 conv=notrunc seek=$((${offset} + 4096)) count=writelen 2> /dev/null
268*0d6140beSAndroid Build Coastguard Worker
269*0d6140beSAndroid Build Coastguard Worker	./flashrom ${FLASHROM_PARAM} -l layout_unaligned.txt -i 00_${i} -i ff_${i} -w "$TESTFILE" > /dev/null
270*0d6140beSAndroid Build Coastguard Worker	if [ "$?" != "0" ] ; then
271*0d6140beSAndroid Build Coastguard Worker		echo "failed to flash region"
272*0d6140beSAndroid Build Coastguard Worker		do_exit "$EXIT_FAILURE"
273*0d6140beSAndroid Build Coastguard Worker	fi
274*0d6140beSAndroid Build Coastguard Worker
275*0d6140beSAndroid Build Coastguard Worker	# download the entire ROM image and use diff to compare to ensure
276*0d6140beSAndroid Build Coastguard Worker	# flashrom logic does not violate user-specified regions
277*0d6140beSAndroid Build Coastguard Worker	flashrom ${FLASHROM_PARAM} -r difftest.bin > /dev/null
278*0d6140beSAndroid Build Coastguard Worker	diff -q difftest.bin "$TESTFILE"
279*0d6140beSAndroid Build Coastguard Worker	if [ "$?" != "0" ] ; then
280*0d6140beSAndroid Build Coastguard Worker		echo "failed diff test"
281*0d6140beSAndroid Build Coastguard Worker		do_exit "$EXIT_FAILURE"
282*0d6140beSAndroid Build Coastguard Worker	fi
283*0d6140beSAndroid Build Coastguard Worker	rm -f difftest.bin
284*0d6140beSAndroid Build Coastguard Worker
285*0d6140beSAndroid Build Coastguard Worker	i=$((${i} + 1))
286*0d6140beSAndroid Build Coastguard Worker	echo "passed"
287*0d6140beSAndroid Build Coastguard Workerdone
288*0d6140beSAndroid Build Coastguard Worker
289*0d6140beSAndroid Build Coastguard Workerdo_exit "$EXIT_SUCCESS"
290