Skip to content

Commit

Permalink
move target and source edits to post_checkout
Browse files Browse the repository at this point in the history
  • Loading branch information
markro49 committed Apr 30, 2024
1 parent b20e698 commit 743402a
Show file tree
Hide file tree
Showing 16 changed files with 131 additions and 89 deletions.
8 changes: 8 additions & 0 deletions framework/core/Project/Cli.pm
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,14 @@ sub _post_checkout {
print OUT $converted_file;
close(OUT);
}

# Set default Java target to 6.
# either these:
Utils::sed_cmd("s/source=\\\"1\.[1-5]\\\"/source=\\\"1.6\\\"/", "$work_dir/maven-build.xml");
Utils::sed_cmd("s/target=\\\"1\.[1-5]\\\"/target=\\\"1.6\\\"/", "$work_dir/maven-build.xml");
# or these:
Utils::sed_cmd("s/source=\\\"1\.[1-5]\\\"/source=\\\"1.6\\\"/", "$work_dir/build.xml");
Utils::sed_cmd("s/target=\\\"1\.[1-5]\\\"/target=\\\"1.6\\\"/", "$work_dir/build.xml");
}

#
Expand Down
8 changes: 8 additions & 0 deletions framework/core/Project/Closure.pm
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,14 @@ sub _post_checkout {
}
}
}

# Set default Java target to 6.
# either these:
Utils::sed_cmd("s/source-level: 1\.[1-5]/source-level 1.6/", "$work_dir/lib/rhino/build.properties");
Utils::sed_cmd("s/target-jvm: 1\.[1-5]/target-jvm 1.6/", "$work_dir/lib/rhino/build.properties");
# or these:
Utils::sed_cmd("s/source-level: 1\.[1-5]/source-level 1.6/", "$work_dir/lib/rhino/src/mozilla/js/rhino/build.properties");
Utils::sed_cmd("s/target-jvm: 1\.[1-5]/target-jvm 1.6/", "$work_dir/lib/rhino/src/mozilla/js/rhino/build.properties");
}

1;
26 changes: 7 additions & 19 deletions framework/core/Project/Codec.pm
Original file line number Diff line number Diff line change
Expand Up @@ -77,21 +77,6 @@ sub determine_layout {
return $result;
}

##
## Converts file encoding from iso-8859-1 to utf-8
##
sub convert_file_encoding {
@_ == 1 or die $ARG_ERROR;
my ($file_name) = @_;
if (-e $file_name){
rename($file_name, $file_name.".bak");
open(OUT, '>'.$file_name) or die $!;
my $converted_file = `iconv -f iso-8859-1 -t utf-8 $file_name.bak`;
print OUT $converted_file;
close(OUT);
}
}

#
# Post-checkout tasks include, for instance, providing cached build files,
# fixing compilation errors, etc.
Expand All @@ -110,10 +95,10 @@ sub _post_checkout {

# Convert the file encoding of problematic files
my $result = determine_layout($self, $rev_id);
convert_file_encoding($work_dir."/".$result->{test}."/org/apache/commons/codec/binary/Base64Test.java");
convert_file_encoding($work_dir."/".$result->{test}."/org/apache/commons/codec/language/ColognePhoneticTest.java");
convert_file_encoding($work_dir."/".$result->{test}."/org/apache/commons/codec/language/DoubleMetaphoneTest.java");
convert_file_encoding($work_dir."/".$result->{test}."/org/apache/commons/codec/language/SoundexTest.java");
Utils::convert_file_encoding($work_dir."/".$result->{test}."/org/apache/commons/codec/binary/Base64Test.java");
Utils::convert_file_encoding($work_dir."/".$result->{test}."/org/apache/commons/codec/language/ColognePhoneticTest.java");
Utils::convert_file_encoding($work_dir."/".$result->{test}."/org/apache/commons/codec/language/DoubleMetaphoneTest.java");
Utils::convert_file_encoding($work_dir."/".$result->{test}."/org/apache/commons/codec/language/SoundexTest.java");

# Copy in a missing dependency
if (-d $work_dir."/src/main/resources"){
Expand All @@ -130,6 +115,9 @@ sub _post_checkout {
close(OUT);
}
}

# Set default Java target to 6.
Utils::sed_cmd("s/1\.[1-5]/1.6/", "$work_dir/default.properties");
}

#
Expand Down
4 changes: 4 additions & 0 deletions framework/core/Project/Compress.pm
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,10 @@ sub _post_checkout {
Utils::exec_cmd("cp -r $build_files_dir/* $work_dir", "Copy generated Ant build file") or die;
}
}

# Set default Java target to 6.
Utils::sed_cmd("s/source=\\\"1\.[1-5]\\\"/source=\\\"1.6\\\"/", "$work_dir/maven-build.xml");
Utils::sed_cmd("s/target=\\\"1\.[1-5]\\\"/target=\\\"1.6\\\"/", "$work_dir/maven-build.xml");
}

#
Expand Down
4 changes: 4 additions & 0 deletions framework/core/Project/Csv.pm
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,10 @@ sub _post_checkout {
Utils::exec_cmd("cp -r $build_files_dir/* $work_dir", "Copy generated Ant build file") or die;
}
}

# Set default Java target to 6.
Utils::sed_cmd("s/source=\\\"1\.[1-5]\\\"/source=\\\"1.6\\\"/", "$work_dir/maven-build.xml");
Utils::sed_cmd("s/target=\\\"1\.[1-5]\\\"/target=\\\"1.6\\\"/", "$work_dir/maven-build.xml");
}

#
Expand Down
4 changes: 4 additions & 0 deletions framework/core/Project/Gson.pm
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ sub _post_checkout {
Utils::exec_cmd("cp -r $build_files_dir/* $work_dir", "Copy generated Ant build file") or die;
}
}

# Set default Java target to 6.
Utils::sed_cmd("s/source=\\\"1\.[1-5]\\\"/source=\\\"1.6\\\"/", "$work_dir/maven-build.xml");
Utils::sed_cmd("s/target=\\\"1\.[1-5]\\\"/target=\\\"1.6\\\"/", "$work_dir/maven-build.xml");
}

#
Expand Down
4 changes: 4 additions & 0 deletions framework/core/Project/Jsoup.pm
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,10 @@ sub _post_checkout {
Utils::exec_cmd("cp -r $build_files_dir/* $work_dir", "Copy generated Ant build file") or die;
}
}

# Set default Java target to 6.
Utils::sed_cmd("s/source=\\\"1\.[1-5]\\\"/source=\\\"1.6\\\"/", "$work_dir/maven-build.xml");
Utils::sed_cmd("s/target=\\\"1\.[1-5]\\\"/target=\\\"1.6\\\"/", "$work_dir/maven-build.xml");
}

#
Expand Down
7 changes: 7 additions & 0 deletions framework/core/Project/Lang.pm
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,13 @@ sub _post_checkout {
Utils::exec_cmd("cp -r $build_files_dir/* $work_dir", "Copy generated Ant build file") or die;
}
}

# Set default Java target to 6.
# either these:
Utils::sed_cmd("s/source=\\\"1\.[1-5]\\\"/source=\\\"1.6\\\"/", "$work_dir/maven-build.xml");
Utils::sed_cmd("s/target=\\\"1\.[1-5]\\\"/target=\\\"1.6\\\"/", "$work_dir/maven-build.xml");
# or this
Utils::sed_cmd("s/1\.[1-5]/1.6/", "$work_dir/default.properties");
}

#
Expand Down
3 changes: 3 additions & 0 deletions framework/core/Project/Math.pm
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,9 @@ sub _post_checkout {
my $result = determine_layout($self, $revision_id);
Utils::convert_file_encoding($work_dir."/".$result->{src}."/org/apache/commons/math3/stat/correlation/StorelessBivariateCovariance.java");
Utils::convert_file_encoding($work_dir."/".$result->{src}."/org/apache/commons/math3/stat/correlation/StorelessCovariance.java");

# Set default Java target to 6.
Utils::sed_cmd("s/value=\\\"1\.[1-5]\\\"/value=\\\"1.6\\\"/", "$work_dir/build.xml");
}

#
Expand Down
56 changes: 34 additions & 22 deletions framework/core/Project/Mockito.pm
Original file line number Diff line number Diff line change
Expand Up @@ -81,31 +81,43 @@ sub _post_checkout {
my $prop = "$work_dir/gradle/wrapper/gradle-wrapper.properties";
my $lib_dir = "$BUILD_SYSTEMS_LIB_DIR/gradle/dists";

# Read existing Gradle properties file, if it exists
open(PROP, "<$prop") or return;
my @tmp;
while (<PROP>) {
if (/(distributionUrl=).*\/(gradle-2.*)/) {
s/(distributionUrl=).*\/(gradle-.*)/$1file\\:$lib_dir\/gradle-2.2.1-all.zip/g;
} else {
s/(distributionUrl=).*\/(gradle-.*)/$1file\\:$lib_dir\/gradle-1.12-bin.zip/g;
# Modify the Gradle properties file, if it exists.
if (open(PROP, "<$prop")) {
my @tmp;
while (<PROP>) {
if (/(distributionUrl=).*\/(gradle-2.*)/) {
s/(distributionUrl=).*\/(gradle-.*)/$1file\\:$lib_dir\/gradle-2.2.1-all.zip/g;
} else {
s/(distributionUrl=).*\/(gradle-.*)/$1file\\:$lib_dir\/gradle-1.12-bin.zip/g;
}
push(@tmp, $_);
}
push(@tmp, $_);
}
close(PROP);

# Update properties file
open(OUT, ">$prop") or die "Cannot write properties file";
print(OUT @tmp);
close(OUT);

# Disable the Gradle daemon
if (-e "$work_dir/gradle.properties") {
system("sed -i.bak s/org.gradle.daemon=true/org.gradle.daemon=false/g \"$work_dir/gradle.properties\"");
close(PROP);

# Update properties file
open(OUT, ">$prop") or die "Cannot write properties file";
print(OUT @tmp);
close(OUT);

# Disable the Gradle daemon
if (-e "$work_dir/gradle.properties") {
system("sed -i.bak s/org.gradle.daemon=true/org.gradle.daemon=false/g \"$work_dir/gradle.properties\"");
}

# Enable local repository
system("find $work_dir -type f -name \"build.gradle\" -exec sed -i.bak 's|jcenter()|maven { url \"$BUILD_SYSTEMS_LIB_DIR/gradle/deps\" }\\\n maven { url \"https://jcenter.bintray.com/\" }\\\n|g' {} \\;");
}

# Enable local repository
system("find $work_dir -type f -name \"build.gradle\" -exec sed -i.bak 's|jcenter()|maven { url \"$BUILD_SYSTEMS_LIB_DIR/gradle/deps\" }\\\n maven { url \"https://jcenter.bintray.com/\" }\\\n|g' {} \\;");
# Set default Java target to 6.
# some bids use gradle:
Utils::sed_cmd("s/sourceCompatibility = 1\.[1-5]/sourceCompatibility=1.6/", "$work_dir/build.gradle");
Utils::sed_cmd("s/targetCompatibility = 1\.[1-5]/targetCompatibility=1.6/", "$work_dir/build.gradle");
Utils::sed_cmd("s/gradle-1.12-bin/gradle-4.9-bin/", "$work_dir/gradle/wrapper/gradle-wrapper.properties");
Utils::sed_cmd("s/gradle-2.2.1-all/gradle-4.9-bin/", "$work_dir/gradle/wrapper/gradle-wrapper.properties");
Utils::sed_cmd("s/0.7-groovy-1.8/1.1-groovy-2.4/", "$work_dir/buildSrc/build.gradle");
# and some don't:
Utils::sed_cmd("s/source=\\\"1\.[1-5]\\\"/source=\\\"1.6\\\"/", "$work_dir/build.xml");
Utils::sed_cmd("s/target=\\\"1\.[1-5]\\\"/target=\\\"1.6\\\"/", "$work_dir/build.xml");
}

sub determine_layout {
Expand Down
8 changes: 8 additions & 0 deletions framework/core/Project/Time.pm
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,14 @@ sub _post_checkout {
Utils::exec_cmd("cp $filename $work_dir/build.xml",
"Fix broken build") or die;
}

# Set default Java target to 6.
# either these:
Utils::sed_cmd("s/source=\\\"1\.[1-5]\\\"/source=\\\"1.6\\\"/", "$work_dir/maven-build.xml");
Utils::sed_cmd("s/target=\\\"1\.[1-5]\\\"/target=\\\"1.6\\\"/", "$work_dir/maven-build.xml");
# or these:
Utils::sed_cmd("s/source=\\\"1\.[1-5]\\\"/source=\\\"1.6\\\"/", "$work_dir/build.xml");
Utils::sed_cmd("s/target=\\\"1\.[1-5]\\\"/target=\\\"1.6\\\"/", "$work_dir/build.xml");
}

sub determine_layout {
Expand Down
22 changes: 22 additions & 0 deletions framework/core/Utils.pm
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,28 @@ sub convert_file_encoding {

=pod
=item C<Utils::sed_cmd(cmd_string, file_name)>
Uses sed with cmd_string to modify file_name.
=cut

sub sed_cmd {
@_ == 2 || die $ARG_ERROR;
my ($cmd_string, $file_name) = @_;

print(STDERR "Executed command: sed -i $cmd_string $file_name\n") if $DEBUG;

# We ignore sed result as it is ok if command fails.
if (`uname -s` eq "Darwin" ) {
`sed -i '' $cmd_string $file_name`;
} else {
`sed -i "$cmd_string" "$file_name"`;
}
}

=pod
=item C<Utils::is_continuous_integration>
Returns true if this process is running under continuous integration.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
## gson: 03a72e752ef68269990f984c9fd613cfd59224bc ##
--- com.google.gson.functional.DefaultTypeAdaptersTest::testDefaultDateDeserialization
--- com.google.gson.functional.DefaultTypeAdaptersTest::testDefaultDateSerialization
--- com.google.gson.functional.DefaultTypeAdaptersTest::testDefaultDateSerializationUsingBuilder
--- com.google.gson.functional.DefaultTypeAdaptersTest::testDefaultJavaSqlTimestampDeserialization
--- com.google.gson.functional.DefaultTypeAdaptersTest::testDefaultJavaSqlTimestampSerialization
--- com.google.gson.functional.ObjectTest::testDateAsMapObjectField
--- com.google.gson.common.TestTypes
java.lang.Exception: No runnable methods
at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:169)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
## gson: a300148003e3a067875b1444e8268b6e0f0e0e02 ##
--- com.google.gson.functional.DefaultTypeAdaptersTest::testDefaultDateDeserialization
--- com.google.gson.functional.DefaultTypeAdaptersTest::testDefaultDateSerialization
--- com.google.gson.functional.DefaultTypeAdaptersTest::testDefaultDateSerializationUsingBuilder
--- com.google.gson.functional.DefaultTypeAdaptersTest::testDefaultJavaSqlTimestampDeserialization
--- com.google.gson.functional.DefaultTypeAdaptersTest::testDefaultJavaSqlTimestampSerialization
--- com.google.gson.functional.ObjectTest::testDateAsMapObjectField
--- com.google.gson.common.TestTypes
java.lang.Exception: No runnable methods
at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:169)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
## gson: b1fb9ca9a1bea5440bc6a5b506ccf67236b08243 ##
--- com.google.gson.functional.DefaultTypeAdaptersTest::testDefaultDateDeserialization
--- com.google.gson.functional.DefaultTypeAdaptersTest::testDefaultDateSerialization
--- com.google.gson.functional.DefaultTypeAdaptersTest::testDefaultDateSerializationUsingBuilder
--- com.google.gson.functional.DefaultTypeAdaptersTest::testDefaultJavaSqlTimestampDeserialization
--- com.google.gson.functional.DefaultTypeAdaptersTest::testDefaultJavaSqlTimestampSerialization
--- com.google.gson.functional.ObjectTest::testDateAsMapObjectField
--- com.google.gson.common.TestTypes
java.lang.Exception: No runnable methods
at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:169)
Expand Down
48 changes: 0 additions & 48 deletions framework/test/test_verify_bugs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -123,54 +123,6 @@ for bid in $(echo $BUGS); do
for v in "b" "f"; do
vid=${bid}$v
defects4j checkout -p $PID -v "$vid" -w "$work_dir" || die "checkout: $PID-$vid"
case $PID in
Cli|Time)
# doesn't always exist
sed_cmd "s/source=\"1\.[1-5]\"/source=\"1.6\"/" $work_dir/maven-build.xml
sed_cmd "s/target=\"1\.[1-5]\"/target=\"1.6\"/" $work_dir/maven-build.xml
# only used when no maven-build.xml
sed_cmd "s/source=\"1\.[1-5]\"/source=\"1.6\"/" $work_dir/build.xml
sed_cmd "s/target=\"1\.[1-5]\"/target=\"1.6\"/" $work_dir/build.xml
;;
Closure)
sed_cmd "s/target-jvm: 1\.[1-5]/target-jvm 1.6/" $work_dir/lib/rhino/build.properties
sed_cmd "s/source-level: 1\.[1-5]/source-level 1.6/" $work_dir/lib/rhino/build.properties
sed_cmd "s/target-jvm: 1\.[1-5]/target-jvm 1.6/" $work_dir/lib/rhino/src/mozilla/js/rhino/build.properties
sed_cmd "s/source-level: 1\.[1-5]/source-level 1.6/" $work_dir/lib/rhino/src/mozilla/js/rhino/build.properties
;;
Codec)
sed_cmd "s/1\.[1-5]/1.6/" $work_dir/default.properties
;;
Compress|Csv|Jsoup)
sed_cmd "s/source=\"1\.[1-5]\"/source=\"1.6\"/" $work_dir/maven-build.xml
sed_cmd "s/target=\"1\.[1-5]\"/target=\"1.6\"/" $work_dir/maven-build.xml
;;
Gson)
sed_cmd "s/source=\"1\.[1-5]\"/source=\"1.6\"/" $work_dir/gson/maven-build.xml
sed_cmd "s/target=\"1\.[1-5]\"/target=\"1.6\"/" $work_dir/gson/maven-build.xml
;;
Lang)
# either this
sed_cmd "s/source=\"1\.[1-5]\"/source=\"1.6\"/" $work_dir/maven-build.xml
sed_cmd "s/target=\"1\.[1-5]\"/target=\"1.6\"/" $work_dir/maven-build.xml
# or this
sed_cmd "s/1\.[1-5]/1.6/" $work_dir/default.properties
;;
Math)
sed_cmd "s/value=\"1\.[1-5]\"/value=\"1.6\"/" $work_dir/build.xml
;;
Mockito)
# some bids use gradle
sed_cmd "s/sourceCompatibility = 1\.[1-5]/sourceCompatibility=1.6/" $work_dir/build.gradle
sed_cmd "s/targetCompatibility = 1\.[1-5]/targetCompatibility=1.6/" $work_dir/build.gradle
sed_cmd "s/gradle-1.12-bin/gradle-4.9-bin/" $work_dir/gradle/wrapper/gradle-wrapper.properties
sed_cmd "s/gradle-2.2.1-all/gradle-4.9-bin/" $work_dir/gradle/wrapper/gradle-wrapper.properties
sed_cmd "s/0.7-groovy-1.8/1.1-groovy-2.4/" $work_dir/buildSrc/build.gradle
# and some bids don't
sed_cmd "s/source=\"1\.[1-5]\"/source=\"1.6\"/" $work_dir/build.xml
sed_cmd "s/target=\"1\.[1-5]\"/target=\"1.6\"/" $work_dir/build.xml
;;
esac

defects4j compile -w "$work_dir" || die "compile: $PID-$vid"
defects4j test $TEST_FLAG -w "$work_dir" || die "run relevant tests: $PID-$vid"
Expand Down

0 comments on commit 743402a

Please sign in to comment.