338 -e 's/last modified: .*//' \ |
338 -e 's/last modified: .*//' \ |
339 " |
339 " |
340 |
340 |
341 echo -n File types... |
341 echo -n File types... |
342 found="" |
342 found="" |
343 for f in `cd $OTHER_DIR && $FIND . ! -type d` |
343 # The file command does not know about jmod files and this sometimes results |
|
344 # in different types being detected more or less randomly. |
|
345 for f in $(cd $OTHER_DIR && $FIND . ! -type d -a ! -name "*.jmod") |
344 do |
346 do |
345 if [ ! -f ${OTHER_DIR}/$f ]; then continue; fi |
347 if [ ! -f ${OTHER_DIR}/$f ]; then continue; fi |
346 if [ ! -f ${THIS_DIR}/$f ]; then continue; fi |
348 if [ ! -f ${THIS_DIR}/$f ]; then continue; fi |
347 OF=$(cd ${OTHER_DIR} && $FILE -h $f | eval $FILE_TYPES_FILTER) |
349 OF=$(cd ${OTHER_DIR} && $FILE -h $f | eval $FILE_TYPES_FILTER) |
348 TF=$(cd ${THIS_DIR} && $FILE -h $f | eval $FILE_TYPES_FILTER) |
350 TF=$(cd ${THIS_DIR} && $FILE -h $f | eval $FILE_TYPES_FILTER) |
492 THIS_UNZIPDIR=$WORK_DIR/$ZIP_FILE.this |
494 THIS_UNZIPDIR=$WORK_DIR/$ZIP_FILE.this |
493 OTHER_UNZIPDIR=$WORK_DIR/$ZIP_FILE.other |
495 OTHER_UNZIPDIR=$WORK_DIR/$ZIP_FILE.other |
494 $RM -rf $THIS_UNZIPDIR $OTHER_UNZIPDIR |
496 $RM -rf $THIS_UNZIPDIR $OTHER_UNZIPDIR |
495 $MKDIR -p $THIS_UNZIPDIR |
497 $MKDIR -p $THIS_UNZIPDIR |
496 $MKDIR -p $OTHER_UNZIPDIR |
498 $MKDIR -p $OTHER_UNZIPDIR |
497 if [ "$TYPE" = "jar" -o "$TYPE" = "war" -o "$TYPE" = "zip" -o "$TYPE" = "jmod" ] |
499 if [ "$TYPE" = "jar" -o "$TYPE" = "war" -o "$TYPE" = "zip" ] |
498 then |
500 then |
499 (cd $THIS_UNZIPDIR && $UNARCHIVE $THIS_ZIP) |
501 (cd $THIS_UNZIPDIR && $UNARCHIVE $THIS_ZIP) |
500 (cd $OTHER_UNZIPDIR && $UNARCHIVE $OTHER_ZIP) |
502 (cd $OTHER_UNZIPDIR && $UNARCHIVE $OTHER_ZIP) |
501 elif [ "$TYPE" = "gz" ] |
503 elif [ "$TYPE" = "gz" ] |
502 then |
504 then |
503 (cd $THIS_UNZIPDIR && $GUNZIP -c $THIS_ZIP | $TAR xf -) |
505 (cd $THIS_UNZIPDIR && $GUNZIP -c $THIS_ZIP | $TAR xf -) |
504 (cd $OTHER_UNZIPDIR && $GUNZIP -c $OTHER_ZIP | $TAR xf -) |
506 (cd $OTHER_UNZIPDIR && $GUNZIP -c $OTHER_ZIP | $TAR xf -) |
|
507 elif [ "$TYPE" = "jmod" ] |
|
508 then |
|
509 (cd $THIS_UNZIPDIR && $JMOD extract $THIS_ZIP) |
|
510 (cd $OTHER_UNZIPDIR && $JMOD extract $OTHER_ZIP) |
505 else |
511 else |
506 (cd $THIS_UNZIPDIR && $JIMAGE extract $THIS_ZIP) |
512 (cd $THIS_UNZIPDIR && $JIMAGE extract $THIS_ZIP) |
507 (cd $OTHER_UNZIPDIR && $JIMAGE extract $OTHER_ZIP) |
513 (cd $OTHER_UNZIPDIR && $JIMAGE extract $OTHER_ZIP) |
508 fi |
514 fi |
509 |
515 |
557 echo " Only THIS $ZIP_FILE contains:" |
563 echo " Only THIS $ZIP_FILE contains:" |
558 echo "$ONLY_THIS" | sed "s|Only in $THIS_UNZIPDIR| |"g | sed 's|: |/|g' |
564 echo "$ONLY_THIS" | sed "s|Only in $THIS_UNZIPDIR| |"g | sed 's|: |/|g' |
559 return_value=1 |
565 return_value=1 |
560 fi |
566 fi |
561 |
567 |
562 if [ "$OPENJDK_TARGET_OS" = "solaris" ]; then |
|
563 DIFFING_FILES=$($GREP -e 'differ$' -e '^diff ' $CONTENTS_DIFF_FILE \ |
|
564 | $SED -e 's/^Files //g' -e 's/diff -r //g' | $CUT -f 1 -d ' ' \ |
|
565 | $SED "s|$OTHER_UNZIPDIR/||g") |
|
566 else |
|
567 DIFFING_FILES=$($GREP -e "differ$" $CONTENTS_DIFF_FILE \ |
|
568 | $CUT -f 2 -d ' ' | $SED "s|$OTHER_UNZIPDIR/||g") |
|
569 fi |
|
570 |
|
571 if [ "$CMP_ZIPS_CONTENTS" = "true" ]; then |
568 if [ "$CMP_ZIPS_CONTENTS" = "true" ]; then |
|
569 if [ "$OPENJDK_TARGET_OS" = "solaris" ]; then |
|
570 DIFFING_FILES=$($GREP -e 'differ$' -e '^diff ' $CONTENTS_DIFF_FILE \ |
|
571 | $SED -e 's/^Files //g' -e 's/diff -r //g' | $CUT -f 1 -d ' ' \ |
|
572 | $SED "s|$OTHER_UNZIPDIR/||g") |
|
573 else |
|
574 DIFFING_FILES=$($GREP -e "differ$" $CONTENTS_DIFF_FILE \ |
|
575 | $CUT -f 2 -d ' ' | $SED "s|$OTHER_UNZIPDIR/||g") |
|
576 fi |
|
577 |
572 $RM -f $WORK_DIR/$ZIP_FILE.diffs |
578 $RM -f $WORK_DIR/$ZIP_FILE.diffs |
573 for file in $DIFFING_FILES; do |
579 for file in $DIFFING_FILES; do |
574 if [[ "$ACCEPTED_JARZIP_CONTENTS $EXCEPTIONS" != *"$file"* ]]; then |
580 if [[ "$ACCEPTED_JARZIP_CONTENTS $EXCEPTIONS" != *"$file"* ]]; then |
575 diff_text $OTHER_UNZIPDIR/$file $THIS_UNZIPDIR/$file >> $WORK_DIR/$ZIP_FILE.diffs |
581 diff_text $OTHER_UNZIPDIR/$file $THIS_UNZIPDIR/$file >> $WORK_DIR/$ZIP_FILE.diffs |
576 fi |
582 fi |
598 fi |
604 fi |
599 |
605 |
600 return $return_value |
606 return $return_value |
601 } |
607 } |
602 |
608 |
|
609 ################################################################################ |
|
610 # Compare jmod file |
|
611 |
|
612 compare_jmod_file() { |
|
613 THIS_DIR=$1 |
|
614 OTHER_DIR=$2 |
|
615 WORK_DIR=$3 |
|
616 JMOD_FILE=$4 |
|
617 |
|
618 THIS_JMOD=$THIS_DIR/$JMOD_FILE |
|
619 OTHER_JMOD=$OTHER_DIR/$JMOD_FILE |
|
620 |
|
621 if $CMP $OTHER_JMOD $THIS_JMOD > /dev/null; then |
|
622 return 0 |
|
623 fi |
|
624 |
|
625 THIS_JMOD_LIST=$WORK_DIR/$JMOD_FILE.list.this |
|
626 OTHER_JMOD_LIST=$WORK_DIR/$JMOD_FILE.list.other |
|
627 mkdir -p $(dirname $THIS_JMOD_LIST) $(dirname $OTHER_JMOD_LIST) |
|
628 |
|
629 $JMOD list $THIS_JMOD | sort > $THIS_JMOD_LIST |
|
630 $JMOD list $OTHER_JMOD | sort > $OTHER_JMOD_LIST |
|
631 JMOD_LIST_DIFF_FILE=$WORK_DIR/$JMOD_FILE.list.diff |
|
632 LC_ALL=C $DIFF $THIS_JMOD_LIST $OTHER_JMOD_LIST > $JMOD_LIST_DIFF_FILE |
|
633 |
|
634 ONLY_THIS=$($GREP "^<" $JMOD_LIST_DIFF_FILE) |
|
635 ONLY_OTHER=$($GREP "^>" $JMOD_LIST_DIFF_FILE) |
|
636 |
|
637 if [ -n "$ONLY_OTHER" ]; then |
|
638 echo " Only OTHER $JMOD_FILE contains:" |
|
639 echo "$ONLY_OTHER" | sed "s|^>| |"g | sed 's|: |/|g' |
|
640 return_value=1 |
|
641 fi |
|
642 |
|
643 if [ -n "$ONLY_THIS" ]; then |
|
644 echo " Only THIS $JMOD_FILE contains:" |
|
645 echo "$ONLY_THIS" | sed "s|^<| |"g | sed 's|: |/|g' |
|
646 return_value=1 |
|
647 fi |
|
648 |
|
649 return $return_value |
|
650 } |
603 |
651 |
604 ################################################################################ |
652 ################################################################################ |
605 # Compare all zip files |
653 # Compare all zip files |
606 |
654 |
607 compare_all_zip_files() { |
655 compare_all_zip_files() { |
617 |
665 |
618 return_value=0 |
666 return_value=0 |
619 for f in $ZIPS; do |
667 for f in $ZIPS; do |
620 if [ -f "$OTHER_DIR/$f" ]; then |
668 if [ -f "$OTHER_DIR/$f" ]; then |
621 compare_zip_file $THIS_DIR $OTHER_DIR $WORK_DIR $f |
669 compare_zip_file $THIS_DIR $OTHER_DIR $WORK_DIR $f |
|
670 if [ "$?" != "0" ]; then |
|
671 return_value=1 |
|
672 REGRESSIONS=true |
|
673 fi |
|
674 fi |
|
675 done |
|
676 fi |
|
677 |
|
678 return $return_value |
|
679 } |
|
680 |
|
681 ################################################################################ |
|
682 # Compare all jmod files |
|
683 |
|
684 compare_all_jmod_files() { |
|
685 THIS_DIR=$1 |
|
686 OTHER_DIR=$2 |
|
687 WORK_DIR=$3 |
|
688 |
|
689 JMODS=$(cd $THIS_DIR && $FIND . -type f -name "*.jmod" | $SORT | $FILTER ) |
|
690 |
|
691 if [ -n "$JMODS" ]; then |
|
692 echo Jmod files... |
|
693 |
|
694 return_value=0 |
|
695 for f in $JMODS; do |
|
696 if [ -f "$OTHER_DIR/$f" ]; then |
|
697 compare_jmod_file $THIS_DIR $OTHER_DIR $WORK_DIR $f |
622 if [ "$?" != "0" ]; then |
698 if [ "$?" != "0" ]; then |
623 return_value=1 |
699 return_value=1 |
624 REGRESSIONS=true |
700 REGRESSIONS=true |
625 fi |
701 fi |
626 fi |
702 fi |
1139 echo "-types Compare the output of the file command on all files" |
1215 echo "-types Compare the output of the file command on all files" |
1140 echo "-general Compare the files not convered by the specialized comparisons" |
1216 echo "-general Compare the files not convered by the specialized comparisons" |
1141 echo "-zips Compare the contents of all zip files and files in them" |
1217 echo "-zips Compare the contents of all zip files and files in them" |
1142 echo "-zips-names Compare the file names inside all zip files" |
1218 echo "-zips-names Compare the file names inside all zip files" |
1143 echo "-jars Compare the contents of all jar files" |
1219 echo "-jars Compare the contents of all jar files" |
|
1220 echo "-jmods Compare the listings of all jmod files" |
1144 echo "-libs Compare all native libraries" |
1221 echo "-libs Compare all native libraries" |
1145 echo "-execs Compare all executables" |
1222 echo "-execs Compare all executables" |
1146 echo "-v Verbose output, does not hide known differences" |
1223 echo "-v Verbose output, does not hide known differences" |
1147 echo "-vv More verbose output, shows diff output of all comparisons" |
1224 echo "-vv More verbose output, shows diff output of all comparisons" |
1148 echo "-o [OTHER] Compare with build in other directory. Will default to the old build directory" |
1225 echo "-o [OTHER] Compare with build in other directory. Will default to the old build directory" |
1315 echo Comparing $THIS_DIR/$THIS_FILE_NAME and $OTHER_DIR/$OTHER_FILE_NAME |
1398 echo Comparing $THIS_DIR/$THIS_FILE_NAME and $OTHER_DIR/$OTHER_FILE_NAME |
1316 compare_bin_file $THIS_DIR $OTHER_DIR $COMPARE_ROOT/2bins $THIS_FILE_NAME $OTHER_FILE_NAME |
1399 compare_bin_file $THIS_DIR $OTHER_DIR $COMPARE_ROOT/2bins $THIS_FILE_NAME $OTHER_FILE_NAME |
1317 exit |
1400 exit |
1318 fi |
1401 fi |
1319 |
1402 |
1320 if [ "$CMP_NAMES" = "false" ] && [ "$CMP_TYPES" = "false" ] && [ "$CMP_PERMS" = "false" ] && [ "$CMP_GENERAL" = "false" ] && [ "$CMP_ZIPS" = "false" ] && [ "$CMP_JARS" = "false" ] && [ "$CMP_LIBS" = "false" ] && [ "$CMP_EXECS" = "false" ]; then |
1403 if [ "$CMP_NAMES" = "false" ] \ |
|
1404 && [ "$CMP_TYPES" = "false" ] \ |
|
1405 && [ "$CMP_PERMS" = "false" ] \ |
|
1406 && [ "$CMP_GENERAL" = "false" ] \ |
|
1407 && [ "$CMP_ZIPS" = "false" ] \ |
|
1408 && [ "$CMP_JARS" = "false" ] \ |
|
1409 && [ "$CMP_JMODS" = "false" ] \ |
|
1410 && [ "$CMP_LIBS" = "false" ] \ |
|
1411 && [ "$CMP_EXECS" = "false" ]; then |
1321 CMP_NAMES=true |
1412 CMP_NAMES=true |
1322 CMP_PERMS=true |
1413 CMP_PERMS=true |
1323 CMP_TYPES=true |
1414 CMP_TYPES=true |
1324 CMP_GENERAL=true |
1415 CMP_GENERAL=true |
1325 CMP_ZIPS=true |
1416 CMP_ZIPS=true |
1326 CMP_JARS=true |
1417 CMP_JARS=true |
|
1418 CMP_JMODS=true |
1327 CMP_LIBS=true |
1419 CMP_LIBS=true |
1328 CMP_EXECS=true |
1420 CMP_EXECS=true |
1329 fi |
1421 fi |
1330 |
1422 |
1331 if [ -z "$FILTER" ]; then |
1423 if [ -z "$FILTER" ]; then |
1371 OTHER="$(ls -d $OTHER/licensee-src/build/*)" |
1463 OTHER="$(ls -d $OTHER/licensee-src/build/*)" |
1372 THIS_JDK="$THIS/images/jdk" |
1464 THIS_JDK="$THIS/images/jdk" |
1373 OTHER_JDK="$OTHER/images/jdk" |
1465 OTHER_JDK="$OTHER/images/jdk" |
1374 # Rewrite the path to tools that are used from the build |
1466 # Rewrite the path to tools that are used from the build |
1375 JIMAGE="$(echo "$JIMAGE" | $SED "s|$OLD_THIS|$THIS|g")" |
1467 JIMAGE="$(echo "$JIMAGE" | $SED "s|$OLD_THIS|$THIS|g")" |
|
1468 JMOD="$(echo "$JMOD" | $SED "s|$OLD_THIS|$THIS|g")" |
1376 JAVAP="$(echo "$JAVAP" | $SED "s|$OLD_THIS|$THIS|g")" |
1469 JAVAP="$(echo "$JAVAP" | $SED "s|$OLD_THIS|$THIS|g")" |
1377 else |
1470 else |
1378 echo "No common images found." |
1471 echo "No common images found." |
1379 exit 1 |
1472 exit 1 |
1380 fi |
1473 fi |
1611 if [ -n "$THIS_DEPLOY_APPLET_PLUGIN_DIR" ] && [ -n "$OTHER_DEPLOY_APPLET_PLUGIN_DIR" ]; then |
1704 if [ -n "$THIS_DEPLOY_APPLET_PLUGIN_DIR" ] && [ -n "$OTHER_DEPLOY_APPLET_PLUGIN_DIR" ]; then |
1612 compare_all_jar_files $THIS_DEPLOY_APPLET_PLUGIN_DIR $OTHER_DEPLOY_APPLET_PLUGIN_DIR $COMPARE_ROOT/plugin |
1705 compare_all_jar_files $THIS_DEPLOY_APPLET_PLUGIN_DIR $OTHER_DEPLOY_APPLET_PLUGIN_DIR $COMPARE_ROOT/plugin |
1613 fi |
1706 fi |
1614 fi |
1707 fi |
1615 |
1708 |
|
1709 if [ "$CMP_JMODS" = "true" ]; then |
|
1710 if [ -n "$THIS_JDK" ] && [ -n "$OTHER_JDK" ]; then |
|
1711 compare_all_jmod_files $THIS_JDK $OTHER_JDK $COMPARE_ROOT/jdk |
|
1712 fi |
|
1713 if [ -n "$THIS_BASE_DIR" ] && [ -n "$OTHER_BASE_DIR" ]; then |
|
1714 compare_all_jmod_files $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir |
|
1715 fi |
|
1716 fi |
|
1717 |
1616 if [ "$CMP_PERMS" = "true" ]; then |
1718 if [ "$CMP_PERMS" = "true" ]; then |
1617 if [ -n "$THIS_JDK" ] && [ -n "$OTHER_JDK" ]; then |
1719 if [ -n "$THIS_JDK" ] && [ -n "$OTHER_JDK" ]; then |
1618 echo -n "JDK " |
1720 echo -n "JDK " |
1619 compare_permissions $THIS_JDK $OTHER_JDK $COMPARE_ROOT/jdk |
1721 compare_permissions $THIS_JDK $OTHER_JDK $COMPARE_ROOT/jdk |
1620 fi |
1722 fi |