common/bin/compare.sh
changeset 15058 61c4ac49cbda
parent 14466 2f85b948660b
child 15059 4131faaca93d
equal deleted inserted replaced
15057:6cdc13b4157e 15058:61c4ac49cbda
    96     # consequtive invokations seemingly randomly.
    96     # consequtive invokations seemingly randomly.
    97     # For example a method parameter randomly named "thePoint" or "aPoint". Ignore this.
    97     # For example a method parameter randomly named "thePoint" or "aPoint". Ignore this.
    98     if test "x$SUFFIX" = "xclass"; then
    98     if test "x$SUFFIX" = "xclass"; then
    99         # To improve performance when large diffs are found, do a rough filtering of classes
    99         # To improve performance when large diffs are found, do a rough filtering of classes
   100         # elibeble for these exceptions
   100         # elibeble for these exceptions
   101         if $GREP -R -e '[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}' -e thePoint -e aPoint -e setItemsPtr ${THIS_FILE} > /dev/null; then
   101         if $GREP -R -e '[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}' \
       
   102 	        -e '[0-9]\{2\}/[0-9]\{2\}/[0-9]\{4\}' \
       
   103 	        -e thePoint -e aPoint -e setItemsPtr ${THIS_FILE} > /dev/null; then
   102             $JAVAP -c -constants -l -p ${OTHER_FILE} >  ${OTHER_FILE}.javap
   104             $JAVAP -c -constants -l -p ${OTHER_FILE} >  ${OTHER_FILE}.javap
   103             $JAVAP -c -constants -l -p ${THIS_FILE} > ${THIS_FILE}.javap
   105             $JAVAP -c -constants -l -p ${THIS_FILE} > ${THIS_FILE}.javap
   104             TMP=$($DIFF ${OTHER_FILE}.javap ${THIS_FILE}.javap | \
   106             TMP=$($DIFF ${OTHER_FILE}.javap ${THIS_FILE}.javap | \
   105                 $GREP '^[<>]' | \
   107                 $GREP '^[<>]' | \
   106                 $SED -e '/[<>].*[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}.*/d' \
   108                 $SED -e '/[<>].*[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}.*/d' \
       
   109 		     -e '/[0-9]\{2\}\/[0-9]\{2\}\/[0-9]\{4\}/d' \
   107  	             -e '/[<>].*Point   Lcom\/apple\/jobjc\/foundation\/NSPoint;/d' \
   110  	             -e '/[<>].*Point   Lcom\/apple\/jobjc\/foundation\/NSPoint;/d' \
   108 	             -e '/[<>].*public com\.apple\.jobjc\.Pointer<com\.apple\.jobjc\..*itemsPtr();/d' \
   111 	             -e '/[<>].*public com\.apple\.jobjc\.Pointer<com\.apple\.jobjc\..*itemsPtr();/d' \
   109 	             -e '/[<>].*public void setItemsPtr(com\.apple\.jobjc\.Pointer<com\.apple\.jobjc\..*);/d')
   112 	             -e '/[<>].*public void setItemsPtr(com\.apple\.jobjc\.Pointer<com\.apple\.jobjc\..*);/d')
   110         fi
   113         fi
   111     fi
   114     fi
   303                 # Ignore time stamps in docs files
   306                 # Ignore time stamps in docs files
   304                 OTHER_FILE=$WORK_DIR/$f.other
   307                 OTHER_FILE=$WORK_DIR/$f.other
   305                 THIS_FILE=$WORK_DIR/$f.this
   308                 THIS_FILE=$WORK_DIR/$f.this
   306                 $MKDIR -p $(dirname $OTHER_FILE)
   309                 $MKDIR -p $(dirname $OTHER_FILE)
   307                 $MKDIR -p $(dirname $THIS_FILE)
   310                 $MKDIR -p $(dirname $THIS_FILE)
       
   311                 #Note that | doesn't work on mac sed.
   308                 $CAT $OTHER_DIR/$f | $SED -e 's/\(-- Generated by javadoc \).*\( --\)/\1(removed)\2/' \
   312                 $CAT $OTHER_DIR/$f | $SED -e 's/\(-- Generated by javadoc \).*\( --\)/\1(removed)\2/' \
   309                                           -e 's/\(<meta name="date" content="\).*\(">\)/\1(removed)\2/' \
   313                                           -e 's/\(<meta name="date" content="\).*\(">\)/\1(removed)\2/' \
   310                                           -e 's/\(Monday\|Tuesday\|Wednesday\|Thursday\|Friday\|Saturday\|Sunday\), [A-Z][a-z]* [0-9][0-9]*, [12][0-9]* [0-9][0-9:]* \(AM\|PM\) [A-Z][A-Z]*/(removed)/' \
   314                                           -e 's/[A-Z][a-z]*, [A-Z][a-z]* [0-9][0-9]*, [12][0-9]* [0-9][0-9:]* [AMP]\{2,2\} [A-Z][A-Z]*/(removed)/' \
       
   315                                           -e 's/[A-Z][a-z]* [A-Z][a-z]* [0-9][0-9] [0-9][0-9:]* [A-Z][A-Z]* [12][0-9]*/(removed)/' \
   311                                           -e 's/^\( from \).*\(\.idl\)$/\1(removed)\2/' \
   316                                           -e 's/^\( from \).*\(\.idl\)$/\1(removed)\2/' \
   312                     > $OTHER_FILE
   317                     > $OTHER_FILE
   313                 $CAT $THIS_DIR/$f  | $SED -e 's/\(-- Generated by javadoc \).*\( --\)/\1(removed)\2/' \
   318                 $CAT $THIS_DIR/$f  | $SED -e 's/\(-- Generated by javadoc \).*\( --\)/\1(removed)\2/' \
   314                                           -e 's/\(<meta name="date" content="\).*\(">\)/\1(removed)\2/' \
   319                                           -e 's/\(<meta name="date" content="\).*\(">\)/\1(removed)\2/' \
   315                                           -e 's/\(Monday\|Tuesday\|Wednesday\|Thursday\|Friday\|Saturday\|Sunday\), [A-Z][a-z]* [0-9][0-9]*, [12][0-9]* [0-9][0-9:]* \(AM\|PM\) [A-Z][A-Z]*/(removed)/' \
   320                                           -e 's/[A-Z][a-z]*, [A-Z][a-z]* [0-9][0-9]*, [12][0-9]* [0-9][0-9:]* [AMP]\{2,2\} [A-Z][A-Z]*/(removed)/' \
       
   321                                           -e 's/[A-Z][a-z]* [A-Z][a-z]* [0-9][0-9] [0-9][0-9:]* [A-Z][A-Z]* [12][0-9]*/(removed)/' \
   316                                           -e 's/^\( from \).*\(\.idl\)$/\1(removed)\2/' \
   322                                           -e 's/^\( from \).*\(\.idl\)$/\1(removed)\2/' \
   317                     > $THIS_FILE
   323                     > $THIS_FILE
   318             else
   324             else
   319                 OTHER_FILE=$OTHER_DIR/$f
   325                 OTHER_FILE=$OTHER_DIR/$f
   320                 THIS_FILE=$THIS_DIR/$f
   326                 THIS_FILE=$THIS_DIR/$f
   368     $MKDIR -p $OTHER_UNZIPDIR
   374     $MKDIR -p $OTHER_UNZIPDIR
   369     (cd $THIS_UNZIPDIR && $UNARCHIVE $THIS_ZIP)
   375     (cd $THIS_UNZIPDIR && $UNARCHIVE $THIS_ZIP)
   370     (cd $OTHER_UNZIPDIR && $UNARCHIVE $OTHER_ZIP)
   376     (cd $OTHER_UNZIPDIR && $UNARCHIVE $OTHER_ZIP)
   371 
   377 
   372     # Find all archives inside and unzip them as well to compare the contents rather than
   378     # Find all archives inside and unzip them as well to compare the contents rather than
   373     # the archives.
   379     # the archives. pie.jar.pack.gz i app3.war is corrupt, skip it.
   374     EXCEPTIONS=""
   380     EXCEPTIONS="pie.jar.pack.gz"
   375     for pack in $($FIND $THIS_UNZIPDIR -name "*.pack" -o -name "*.pack.gz"); do
   381     for pack in $($FIND $THIS_UNZIPDIR \( -name "*.pack" -o -name "*.pack.gz" \) -a ! -name pie.jar.pack.gz); do
   376         ($UNPACK200 $pack $pack.jar)
   382         ($UNPACK200 $pack $pack.jar)
   377         # Filter out the unzipped archives from the diff below.
   383         # Filter out the unzipped archives from the diff below.
   378         EXCEPTIONS="$EXCEPTIONS $pack $pack.jar"
   384         EXCEPTIONS="$EXCEPTIONS $pack $pack.jar"
   379     done
   385     done
   380     for pack in $($FIND $OTHER_UNZIPDIR -name "*.pack" -o -name "*.pack.gz"); do
   386     for pack in $($FIND $OTHER_UNZIPDIR \( -name "*.pack" -o -name "*.pack.gz" \) -a ! -name pie.jar.pack.gz); do
   381         ($UNPACK200 $pack $pack.jar)
   387         ($UNPACK200 $pack $pack.jar)
   382         EXCEPTIONS="$EXCEPTIONS $pack $pack.jar"
   388         EXCEPTIONS="$EXCEPTIONS $pack $pack.jar"
   383     done
   389     done
   384     for zip in $($FIND $THIS_UNZIPDIR -name "*.jar" -o -name "*.zip"); do
   390     for zip in $($FIND $THIS_UNZIPDIR -name "*.jar" -o -name "*.zip"); do
   385         $MKDIR $zip.unzip
   391         $MKDIR $zip.unzip
  1071     echo
  1077     echo
  1072 fi
  1078 fi
  1073 
  1079 
  1074 
  1080 
  1075 # Figure out the layout of the this build. Which kinds of images have been produced
  1081 # Figure out the layout of the this build. Which kinds of images have been produced
  1076 if [ -d "$THIS/deploy/j2sdk-image" ]; then
  1082 if [ -d "$THIS/install/j2sdk-image" ]; then
       
  1083     THIS_J2SDK="$THIS/install/j2sdk-image"
       
  1084     THIS_J2RE="$THIS/install/j2re-image"
       
  1085     echo "Comparing install images"
       
  1086 elif [ -d "$THIS/deploy/j2sdk-image" ]; then
  1077     THIS_J2SDK="$THIS/deploy/j2sdk-image"
  1087     THIS_J2SDK="$THIS/deploy/j2sdk-image"
  1078     THIS_J2RE="$THIS/deploy/j2re-image"
  1088     THIS_J2RE="$THIS/deploy/j2re-image"
  1079     echo "Comparing deploy images"
  1089     echo "Comparing deploy images"
  1080 elif [ -d "$THIS/images/j2sdk-image" ]; then
  1090 elif [ -d "$THIS/images/j2sdk-image" ]; then
  1081     THIS_J2SDK="$THIS/images/j2sdk-image"
  1091     THIS_J2SDK="$THIS/images/j2sdk-image"
  1082     THIS_J2RE="$THIS/images/j2re-image"
  1092     THIS_J2RE="$THIS/images/j2re-image"
  1083 fi
  1093 fi
       
  1094 
  1084 if [ -d "$THIS/images/j2sdk-overlay-image" ]; then
  1095 if [ -d "$THIS/images/j2sdk-overlay-image" ]; then
  1085     THIS_J2SDK_OVERLAY="$THIS/images/j2sdk-overlay-image"
  1096     if [ -d "$THIS/install/j2sdk-image" ]; then
  1086     THIS_J2RE_OVERLAY="$THIS/images/j2re-overlay-image"
  1097         # If there is an install image, prefer that, it's also overlay
       
  1098         THIS_J2SDK_OVERLAY="$THIS/install/j2sdk-image"
       
  1099         THIS_J2RE_OVERLAY="$THIS/install/j2re-image"
       
  1100     else
       
  1101         THIS_J2SDK_OVERLAY="$THIS/images/j2sdk-overlay-image"
       
  1102         THIS_J2RE_OVERLAY="$THIS/images/j2re-overlay-image"
       
  1103     fi
  1087 fi
  1104 fi
  1088 
  1105 
  1089 if [ -d "$THIS/images/j2sdk-bundle" ]; then
  1106 if [ -d "$THIS/images/j2sdk-bundle" ]; then
  1090     THIS_J2SDK_BUNDLE="$THIS/images/j2sdk-bundle"
  1107     THIS_J2SDK_BUNDLE="$THIS/images/j2sdk-bundle"
  1091     THIS_J2RE_BUNDLE="$THIS/images/j2re-bundle"
  1108     THIS_J2RE_BUNDLE="$THIS/images/j2re-bundle"
  1098         OTHER_J2RE="$OTHER/j2re-image"
  1115         OTHER_J2RE="$OTHER/j2re-image"
  1099     else
  1116     else
  1100         OTHER_J2SDK_OVERLAY="$OTHER/j2sdk-image"
  1117         OTHER_J2SDK_OVERLAY="$OTHER/j2sdk-image"
  1101         OTHER_J2RE_OVERLAY="$OTHER/j2re-image"
  1118         OTHER_J2RE_OVERLAY="$OTHER/j2re-image"
  1102     fi
  1119     fi
  1103 
  1120 elif [ -d "$OTHER/images/j2sdk-image" ]; then
       
  1121     OTHER_J2SDK="$OTHER/images/j2sdk-image"
       
  1122     OTHER_J2RE="$OTHER/images/j2re-image"
  1104 fi
  1123 fi
  1105 
  1124 
  1106 if [ -d "$OTHER/j2sdk-bundle" ]; then
  1125 if [ -d "$OTHER/j2sdk-bundle" ]; then
  1107     OTHER_J2SDK_BUNDLE="$OTHER/j2sdk-bundle"
  1126     OTHER_J2SDK_BUNDLE="$OTHER/j2sdk-bundle"
  1108     OTHER_J2RE_BUNDLE="$OTHER/j2re-bundle"
  1127     OTHER_J2RE_BUNDLE="$OTHER/j2re-bundle"