You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
2.5 KiB
103 lines
2.5 KiB
#!/bin/bash |
|
# |
|
# Copyright (C) 2015 The Android Open Source Project |
|
# |
|
# Licensed under the Apache License, Version 2.0 (the "License"); |
|
# you may not use this file except in compliance with the License. |
|
# You may obtain a copy of the License at |
|
# |
|
# http://www.apache.org/licenses/LICENSE-2.0 |
|
# |
|
# Unless required by applicable law or agreed to in writing, software |
|
# distributed under the License is distributed on an "AS IS" BASIS, |
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
# See the License for the specific language governing permissions and |
|
# limitations under the License. |
|
|
|
# Set up prog to be the path of this script, including following symlinks, |
|
# and set up progdir to be the fully-qualified pathname of its directory. |
|
prog="$0" |
|
while [ -h "${prog}" ]; do |
|
newProg=`/bin/ls -ld "${prog}"` |
|
newProg=`expr "${newProg}" : ".* -> \(.*\)$"` |
|
if expr "x${newProg}" : 'x/' >/dev/null; then |
|
prog="${newProg}" |
|
else |
|
progdir=`dirname "${prog}"` |
|
prog="${progdir}/${newProg}" |
|
fi |
|
done |
|
oldwd=`pwd` |
|
progdir=`dirname "${prog}"` |
|
cd "${progdir}" |
|
progdir=`pwd` |
|
prog="${progdir}"/`basename "${prog}"` |
|
|
|
# Set up a temp directory for output. |
|
tmpdir=/tmp/test-$$ |
|
mkdir ${tmpdir} |
|
|
|
# Set up dexdump binary and flags to test. |
|
DEXD="${ANDROID_HOST_OUT}/bin/dexdump2" |
|
DEXDFLAGS1="-adfh" |
|
DEXDFLAGS2="-e -l xml" |
|
|
|
# Set up dexlist binary and flags to test. |
|
DEXL="${ANDROID_HOST_OUT}/bin/dexlist" |
|
DEXLFLAGS="" |
|
|
|
# Run the tests. |
|
passed=0 |
|
failed=0 |
|
for i in *.dex; do |
|
echo $i |
|
basenm=`basename "${i}" .dex` |
|
txtfile=${basenm}.txt |
|
xmlfile=${basenm}.xml |
|
lstfile=${basenm}.lst |
|
gentxtfile=${tmpdir}/${txtfile} |
|
genxmlfile=${tmpdir}/${xmlfile} |
|
genlstfile=${tmpdir}/${lstfile} |
|
${DEXD} ${DEXDFLAGS1} ${i} > ${gentxtfile} |
|
cmp ${txtfile} ${gentxtfile} |
|
if [ "$?" = "0" ]; then |
|
((passed += 1)) |
|
else |
|
((failed += 1)) |
|
echo failed: ${i} |
|
fi |
|
${DEXD} ${DEXDFLAGS2} ${i} > ${genxmlfile} |
|
cmp ${xmlfile} ${genxmlfile} |
|
if [ "$?" = "0" ]; then |
|
((passed += 1)) |
|
else |
|
((failed += 1)) |
|
echo failed: ${i} |
|
fi |
|
${DEXL} ${DEXLFLAGS} ${i} > ${genlstfile} |
|
cmp ${lstfile} ${genlstfile} |
|
if [ "$?" = "0" ]; then |
|
((passed += 1)) |
|
else |
|
((failed += 1)) |
|
echo failed: ${i} |
|
fi |
|
done |
|
|
|
# Report results. |
|
echo |
|
echo "passed: ${passed} test(s)" |
|
echo "failed: ${failed} test(s)" |
|
echo |
|
|
|
# Clean up, cd back to original dir. |
|
rm -rf ${tmpdir} |
|
cd ${oldwd} |
|
|
|
# Return status. |
|
if [ "${failed}" != "0" ]; then |
|
echo failed |
|
exit 1 |
|
fi |
|
exit 0 |
|
|
|
|