Skip to content

Commit

Permalink
Test various combinations JDT writing mode
Browse files Browse the repository at this point in the history
  • Loading branch information
spangaer committed Nov 18, 2022
1 parent 65b65eb commit 9c7bf37
Show file tree
Hide file tree
Showing 14 changed files with 194 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/sbt-test/sbteclipse/08-jdt-settings/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
!.settings
3 changes: 3 additions & 0 deletions src/sbt-test/sbteclipse/08-jdt-settings/b/expected
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.source=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
92 changes: 92 additions & 0 deletions src/sbt-test/sbteclipse/08-jdt-settings/build.sbt
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@

val check = TaskKey[Unit]("check") := {
import java.util.Properties
import java.io.FileInputStream
import scala.collection.JavaConverters._

val s: TaskStreams = streams.value
val expectedFile = baseDirectory.value / "expected"
val resultFile = baseDirectory.value / ".settings" / "org.eclipse.jdt.core.prefs"

if (expectedFile.exists()) {
val expectedIn = new FileInputStream(expectedFile)
val expected =
try {
val prop = new Properties()
prop.load(expectedIn)
prop.asScala.toMap
} finally {
expectedIn.close()
}

val resultIn = new FileInputStream(resultFile)
val result =
try {
val prop = new Properties()
prop.load(resultIn)
prop.asScala.toMap
} finally {
resultIn.close()
}

if (expected == result)
s.log.info(s"correct data: ${resultFile}")
else
sys.error("Expected settings to be '%s', but was '%s'!".format(expected, result))
}
}

// ensure org.eclipse.core.resources.prefs will always be generated
ThisBuild / scalacOptions ++= Seq("-encoding", "utf-8")

// check that no JDT file is generated (default ignore, no runtime defined)
lazy val projectA = (project in file("a"))
.settings(
check
)

// check that a new and correct JDT file is generated
lazy val projectB = (project in file("b"))
.settings(
EclipseKeys.executionEnvironment := Some(EclipseExecutionEnvironment.JavaSE18),
EclipseKeys.jdtMode := EclipseJDTMode.Update,
check
)

// check that a correct JDT file is is not updated
lazy val projectC = (project in file("c"))
.settings(
EclipseKeys.executionEnvironment := Some(EclipseExecutionEnvironment.JavaSE11),
EclipseKeys.jdtMode := EclipseJDTMode.Update,
check
)

// check that an outdated JDT file is selectively updated
lazy val projectD = (project in file("d"))
.settings(
EclipseKeys.executionEnvironment := Some(EclipseExecutionEnvironment.JavaSE_17),
EclipseKeys.jdtMode := EclipseJDTMode.Update,
check
)

// check that a JDT file is overwritten
lazy val projectE = (project in file("e"))
.settings(
EclipseKeys.executionEnvironment := Some(EclipseExecutionEnvironment.JavaSE11),
EclipseKeys.jdtMode := EclipseJDTMode.Overwrite,
check
)

// check that an JDT file is removed
lazy val projectF = (project in file("f"))
.settings(
EclipseKeys.jdtMode := EclipseJDTMode.Remove,
check
)

// check that an JDT file is default ignored, but written on command
lazy val projectG = (project in file("g"))
.settings(
EclipseKeys.executionEnvironment := Some(EclipseExecutionEnvironment.JavaSE18),
check
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.compiler.compliance=11
dummy.key=abc
4 changes: 4 additions & 0 deletions src/sbt-test/sbteclipse/08-jdt-settings/c/expected
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.compiler.compliance=11
dummy.key=abc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.compiler.compliance=11
dummy.key=abc
4 changes: 4 additions & 0 deletions src/sbt-test/sbteclipse/08-jdt-settings/d/expected
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
org.eclipse.jdt.core.compiler.source=17
org.eclipse.jdt.core.compiler.compliance=17
dummy.key=abc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.compiler.compliance=11
dummy.key=abc
3 changes: 3 additions & 0 deletions src/sbt-test/sbteclipse/08-jdt-settings/e/expected
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.compiler.compliance=11
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.compiler.compliance=11
dummy.key=abc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dummy.key=abc
1 change: 1 addition & 0 deletions src/sbt-test/sbteclipse/08-jdt-settings/g/expected
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dummy.key=abc
7 changes: 7 additions & 0 deletions src/sbt-test/sbteclipse/08-jdt-settings/project/plugins.sbt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
val pluginVersion = System.getProperty("plugin.version")
if(pluginVersion == null)
throw new RuntimeException("""|The system property 'plugin.version' is not defined.
|Specify this property using the scriptedLaunchOpts -D.""".stripMargin)
else addSbtPlugin("com.github.sbt" % "sbt-eclipse" % pluginVersion)
}
62 changes: 62 additions & 0 deletions src/sbt-test/sbteclipse/08-jdt-settings/test
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# timestamp marker file
$ touch marker

$ exists f/.settings/org.eclipse.jdt.core.prefs

> eclipse

> check

$ exists a/.settings/org.eclipse.core.resources.prefs
-$ exists a/.settings/org.eclipse.jdt.core.prefs

$ exists b/.settings/org.eclipse.jdt.core.prefs
$ newer b/.settings/org.eclipse.jdt.core.prefs marker

$ exists c/.settings/org.eclipse.jdt.core.prefs
$ newer marker c/.settings/org.eclipse.jdt.core.prefs

$ exists d/.settings/org.eclipse.jdt.core.prefs
$ newer d/.settings/org.eclipse.jdt.core.prefs marker

$ exists e/.settings/org.eclipse.jdt.core.prefs
$ newer e/.settings/org.eclipse.jdt.core.prefs marker

$ exists f/.settings/org.eclipse.core.resources.prefs
-$ exists f/.settings/org.eclipse.jdt.core.prefs

$ exists g/.settings/org.eclipse.jdt.core.prefs
$ newer marker g/.settings/org.eclipse.jdt.core.prefs

# test overwrite mode via command arg
$ touch marker
> eclipse jdt-mode=Overwrite
# no runtime defined for a
-$ exists a/.settings/org.eclipse.jdt.core.prefs
$ newer b/.settings/org.eclipse.jdt.core.prefs marker
$ newer c/.settings/org.eclipse.jdt.core.prefs marker
$ newer d/.settings/org.eclipse.jdt.core.prefs marker
$ newer e/.settings/org.eclipse.jdt.core.prefs marker
-$ exists f/.settings/org.eclipse.jdt.core.prefs
$ newer g/.settings/org.eclipse.jdt.core.prefs marker

# test ignore mode via command arg
$ touch marker
> eclipse jdt-mode=Ignore
-$ exists a/.settings/org.eclipse.jdt.core.prefs
$ newer marker b/.settings/org.eclipse.jdt.core.prefs
$ newer marker c/.settings/org.eclipse.jdt.core.prefs
$ newer marker d/.settings/org.eclipse.jdt.core.prefs
$ newer marker e/.settings/org.eclipse.jdt.core.prefs
-$ exists f/.settings/org.eclipse.jdt.core.prefs
$ newer marker g/.settings/org.eclipse.jdt.core.prefs

# test remove mode via command arg
> eclipse jdt-mode=Remove
-$ exists a/.settings/org.eclipse.jdt.core.prefs
-$ exists b/.settings/org.eclipse.jdt.core.prefs
-$ exists c/.settings/org.eclipse.jdt.core.prefs
-$ exists d/.settings/org.eclipse.jdt.core.prefs
-$ exists e/.settings/org.eclipse.jdt.core.prefs
-$ exists f/.settings/org.eclipse.jdt.core.prefs
-$ exists g/.settings/org.eclipse.jdt.core.prefs

0 comments on commit 9c7bf37

Please sign in to comment.