Home | History | Annotate | Download | only in dexdump
      1 #!/bin/bash
      2 #
      3 # Copyright (C) 2015 The Android Open Source Project
      4 #
      5 # Licensed under the Apache License, Version 2.0 (the "License");
      6 # you may not use this file except in compliance with the License.
      7 # You may obtain a copy of the License at
      8 #
      9 #     http://www.apache.org/licenses/LICENSE-2.0
     10 #
     11 # Unless required by applicable law or agreed to in writing, software
     12 # distributed under the License is distributed on an "AS IS" BASIS,
     13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14 # See the License for the specific language governing permissions and
     15 # limitations under the License.
     16 
     17 # Set up prog to be the path of this script, including following symlinks,
     18 # and set up progdir to be the fully-qualified pathname of its directory.
     19 prog="$0"
     20 while [ -h "${prog}" ]; do
     21     newProg=`/bin/ls -ld "${prog}"`
     22     newProg=`expr "${newProg}" : ".* -> \(.*\)$"`
     23     if expr "x${newProg}" : 'x/' >/dev/null; then
     24         prog="${newProg}"
     25     else
     26         progdir=`dirname "${prog}"`
     27         prog="${progdir}/${newProg}"
     28     fi
     29 done
     30 oldwd=`pwd`
     31 progdir=`dirname "${prog}"`
     32 cd "${progdir}"
     33 progdir=`pwd`
     34 prog="${progdir}"/`basename "${prog}"`
     35 
     36 # Set up a temp directory for output.
     37 tmpdir=/tmp/test-$$
     38 mkdir ${tmpdir}
     39 
     40 # Set up dexdump binary and flags to test.
     41 DEXD="${ANDROID_HOST_OUT}/bin/dexdump2"
     42 DEXDFLAGS1="-dfh"
     43 DEXDFLAGS2="-e -l xml"
     44 
     45 # Set up dexlist binary and flags to test.
     46 DEXL="${ANDROID_HOST_OUT}/bin/dexlist"
     47 DEXLFLAGS=""
     48 
     49 # Run the tests.
     50 passed=0
     51 failed=0
     52 for i in *.dex; do
     53     echo $i
     54     basenm=`basename "${i}" .dex`
     55     txtfile=${basenm}.txt
     56     xmlfile=${basenm}.xml
     57     lstfile=${basenm}.lst
     58     gentxtfile=${tmpdir}/${txtfile}
     59     genxmlfile=${tmpdir}/${xmlfile}
     60     genlstfile=${tmpdir}/${lstfile}
     61     ${DEXD} ${DEXDFLAGS1} ${i} > ${gentxtfile}
     62     cmp ${txtfile} ${gentxtfile}
     63     if [ "$?" = "0" ]; then
     64         ((passed += 1))
     65     else
     66         ((failed += 1))
     67         echo failed: ${i}
     68     fi
     69     ${DEXD} ${DEXDFLAGS2} ${i} > ${genxmlfile}
     70     cmp ${xmlfile} ${genxmlfile}
     71     if [ "$?" = "0" ]; then
     72         ((passed += 1))
     73     else
     74         ((failed += 1))
     75         echo failed: ${i}
     76     fi
     77     ${DEXL} ${DEXLFLAGS} ${i} > ${genlstfile}
     78     cmp ${lstfile} ${genlstfile}
     79     if [ "$?" = "0" ]; then
     80         ((passed += 1))
     81     else
     82         ((failed += 1))
     83         echo failed: ${i}
     84     fi
     85 done
     86 
     87 # Report results.
     88 echo
     89 echo "passed: ${passed} test(s)"
     90 echo "failed: ${failed} test(s)"
     91 echo
     92 
     93 # Clean up, cd back to original dir.
     94 rm -rf ${tmpdir}
     95 cd ${oldwd}
     96 
     97 # Return status.
     98 if [ "${failed}" != "0" ]; then
     99   echo failed
    100   exit 1
    101 fi
    102 exit 0
    103 
    104