diff --git a/.travis.yml b/.travis.yml index eca3b1567..494b09b04 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,7 +23,7 @@ env: - SBT_CMD="scripted source-dependencies/*1of3" - SBT_CMD="scripted source-dependencies/*2of3" - SBT_CMD="scripted source-dependencies/*3of3" - - SBT_CMD="scripted tests/* watch/*" + - SBT_CMD="scripted tests/* watch/* classloader-cache/*" - SBT_CMD="repoOverrideTest:scripted dependency-management/*" matrix: @@ -53,7 +53,7 @@ install: script: # It doesn't need that much memory because compile and run are forked - - sbt -J-XX:ReservedCodeCacheSize=128m -J-Xmx800M -J-Xms800M -J-server "$SBT_CMD" + - sbt -Dsbt.version=1.2.6 -J-XX:ReservedCodeCacheSize=128m -J-Xmx800M -J-Xms800M -J-server "$SBT_CMD" before_cache: - find $HOME/.ivy2 -name "ivydata-*.properties" -delete diff --git a/sbt/src/sbt-test/classloader-cache/akka-actor-system/build.sbt b/sbt/src/sbt-test/classloader-cache/akka-actor-system/build.sbt new file mode 100644 index 000000000..0a4edbdff --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/akka-actor-system/build.sbt @@ -0,0 +1,9 @@ +val akkaTest = (project in file(".")).settings( + name := "akka-test", + scalaVersion := "2.12.7", + libraryDependencies ++= Seq( + "com.typesafe.akka" %% "akka-actor" % "2.5.16", + "com.lihaoyi" %% "utest" % "0.6.6" % "test" + ), + testFrameworks := Seq(new TestFramework("utest.runner.Framework")) +) diff --git a/sbt/src/sbt-test/classloader-cache/akka-actor-system/src/main/scala/AkkaTest.scala b/sbt/src/sbt-test/classloader-cache/akka-actor-system/src/main/scala/AkkaTest.scala new file mode 100644 index 000000000..971b0341c --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/akka-actor-system/src/main/scala/AkkaTest.scala @@ -0,0 +1,15 @@ +package sbt.scripted + +import akka.actor.ActorSystem +import scala.concurrent.Await +import scala.concurrent.duration._ + +object AkkaTest { + def main(args: Array[String]): Unit = { + val now = System.nanoTime + val system = ActorSystem("akka") + Await.result(system.terminate(), 5.seconds) + val elapsed = System.nanoTime - now + println(s"Run took ${elapsed / 1.0e6} ms") + } +} diff --git a/sbt/src/sbt-test/classloader-cache/akka-actor-system/src/test/scala/AkkaPerfTest.scala b/sbt/src/sbt-test/classloader-cache/akka-actor-system/src/test/scala/AkkaPerfTest.scala new file mode 100644 index 000000000..9e5bbe5f6 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/akka-actor-system/src/test/scala/AkkaPerfTest.scala @@ -0,0 +1,12 @@ +package sbt.scripted + +import utest._ + +object AkkaPerfTest extends TestSuite { + val tests: Tests = Tests { + 'run - { + AkkaTest.main(Array.empty[String]) + 1 ==> 1 + } + } +} diff --git a/sbt/src/sbt-test/classloader-cache/akka-actor-system/test b/sbt/src/sbt-test/classloader-cache/akka-actor-system/test new file mode 100644 index 000000000..355cff205 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/akka-actor-system/test @@ -0,0 +1,7 @@ +> set Test / layeringStrategy := LayeringStrategy.Full + +> run + +> test + +> test diff --git a/sbt/src/sbt-test/classloader-cache/jni/build.sbt b/sbt/src/sbt-test/classloader-cache/jni/build.sbt new file mode 100644 index 000000000..3ff8e1dab --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/jni/build.sbt @@ -0,0 +1,38 @@ +import java.nio.file._ +import scala.collection.JavaConverters._ + +val copyTestResources = inputKey[Unit]("Copy the native libraries to the base directory") +val appendToLibraryPath = taskKey[Unit]("Append the base directory to the java.library.path system property") +val dropLibraryPath = taskKey[Unit]("Drop the last path from the java.library.path system property") +val wrappedRun = taskKey[Unit]("Run with modified java.library.path") +val wrappedTest = taskKey[Unit]("Test with modified java.library.path") + +def wrap(task: InputKey[Unit]): Def.Initialize[Task[Unit]] = + Def.sequential(appendToLibraryPath, task.toTask(""), dropLibraryPath) + +val root = (project in file(".")).settings( + scalaVersion := "2.12.7", + javacOptions ++= Seq("-source", "1.8", "-target", "1.8", "-h", + sourceDirectory.value.toPath.resolve("main/native/include").toString), + libraryDependencies += "com.lihaoyi" %% "utest" % "0.6.6" % "test", + testFrameworks := Seq(new TestFramework("utest.runner.Framework")), + copyTestResources := { + val key = Def.spaceDelimited().parsed.head + val base = baseDirectory.value.toPath + val resources = (baseDirectory.value / "src" / "main" / "resources" / key).toPath + Files.walk(resources).iterator.asScala.foreach { p => + Files.copy(p, base.resolve(p.getFileName), StandardCopyOption.REPLACE_EXISTING) + } + }, + appendToLibraryPath := { + val cp = System.getProperty("java.library.path", "").split(":") + val newCp = if (cp.contains(".")) cp else cp :+ "." + System.setProperty("java.library.path", newCp.mkString(":")) + }, + dropLibraryPath := { + val cp = System.getProperty("java.library.path", "").split(":").dropRight(1) + System.setProperty("java.library.path", cp.mkString(":")) + }, + wrappedRun := wrap(Runtime / run).value, + wrappedTest := wrap(Test / testOnly).value +) diff --git a/sbt/src/sbt-test/classloader-cache/jni/changes/JniLibraryTest.scala b/sbt/src/sbt-test/classloader-cache/jni/changes/JniLibraryTest.scala new file mode 100644 index 000000000..aa15d4aaa --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/jni/changes/JniLibraryTest.scala @@ -0,0 +1,15 @@ +package sbt + +import java.nio.file._ +import utest._ + +object JniLibraryTest extends TestSuite { + val tests = Tests { + 'load - { + 'native - { + System.loadLibrary("sbt-jni-library-test0") + new JniLibrary().getIntegerValue ==> 2 + } + } + } +} diff --git a/sbt/src/sbt-test/classloader-cache/jni/src/main/java/sbt/JniLibrary.java b/sbt/src/sbt-test/classloader-cache/jni/src/main/java/sbt/JniLibrary.java new file mode 100644 index 000000000..35ff90ec6 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/jni/src/main/java/sbt/JniLibrary.java @@ -0,0 +1,5 @@ +package sbt; + +final class JniLibrary { + public native int getIntegerValue(); +} diff --git a/sbt/src/sbt-test/classloader-cache/jni/src/main/native/1/Makefile b/sbt/src/sbt-test/classloader-cache/jni/src/main/native/1/Makefile new file mode 100644 index 000000000..f1fa7c538 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/jni/src/main/native/1/Makefile @@ -0,0 +1,61 @@ +TARGET_DIR := ../../../target +BUILD_DIR := $(TARGET_DIR)/build +NATIVE_DIR := native/$(shell uname -sm | cut -d ' ' -f2 | tr '[:upper:]' '[:lower:]') +LIB_DIR := ../resources/$(NATIVE_DIR) +LIB_NAME := sbt-jni-library-test0 +POSIX_LIB_NAME := lib$(LIB_NAME) +SOURCE := sbt_JniLibrary +CC := clang + +UNAME_S := $(shell uname -s) + +ifeq ($(UNAME_S),Darwin) + JNI_INCLUDE := -I$(shell mdfind -name jni.h | grep jdk1.8 | tail -n 1 | xargs dirname)\ + -I$(shell mdfind -name jni_md.h | grep jdk1.8 | tail -n 1 | xargs dirname) + LD := /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ + OBJS := $(BUILD_DIR)/x86_64/darwin/$(SOURCE).o + LIBS := $(TARGET_DIR)/x86_64/$(POSIX_LIB_NAME).dylib +endif + +ifeq ($(UNAME_S), Linux) + BASE_INCLUDE := $(shell locate jni.h | tail -n 1 | xargs dirname) + JNI_INCLUDE := -I$(BASE_INCLUDE) -I$(BASE_INCLUDE)/linux + OBJS := $(BUILD_DIR)/x86_64/linux/$(SOURCE).o + LIBS := $(TARGET_DIR)/x86_64/$(POSIX_LIB_NAME).so +endif + +LINUX_CCFLAGS := -fPIC +LINUX_LDFLAGS := -fPIC -shared + +CCFLAGS := -I./../include $(JNI_INCLUDE) -Wno-unused-command-line-argument -std=c++11 -O3 + +all: $(LIBS) + +.PHONY: clean all + +$(BUILD_DIR)/x86_64/linux/$(SOURCE).o: $(SOURCE).cc + mkdir -p $(BUILD_DIR)/x86_64/linux; \ + $(CC) -c $< $(CCFLAGS) $(JNI_INCLUDE) -fPIC -o $@ + +$(BUILD_DIR)/x86_64/darwin/$(SOURCE).o: $(SOURCE).cc + mkdir -p $(BUILD_DIR)/x86_64/darwin; \ + $(CC) -c $< $(CCFLAGS) -framework Carbon -o $@ + +$(TARGET_DIR)/x86_64/$(POSIX_LIB_NAME).dylib: $(BUILD_DIR)/x86_64/darwin/$(SOURCE).o + mkdir -p $(TARGET_DIR)/x86_64; \ + $(LD) -dynamiclib -framework Carbon $(CCFLAGS) -Wl,-headerpad_max_install_names -install_name @rpath/$(POSIX_LIB_NAME) \ + $(BUILD_DIR)/x86_64/darwin/$(SOURCE).o \ + -o $@ ; \ + mkdir -p ../../resources/1; \ + cp $(TARGET_DIR)/x86_64/$(POSIX_LIB_NAME).dylib ../../resources/1 + + + +$(TARGET_DIR)/x86_64/$(POSIX_LIB_NAME).so: $(BUILD_DIR)/x86_64/linux/$(SOURCE).o + mkdir -p $(TARGET_DIR)/x86_64; \ + $(CC) -shared $< $(CCFLAGS) -Wl,-headerpad_max_install_names -o $@; \ + mkdir -p ../../resources/1; \ + cp $(TARGET_DIR)/x86_64/$(POSIX_LIB_NAME).so ../../resources/1; + +clean: + rm -rf $(TARGET_DIR)/build $(TARGET_DIR)/$(NATIVE) diff --git a/sbt/src/sbt-test/classloader-cache/jni/src/main/native/1/sbt_JniLibrary.cc b/sbt/src/sbt-test/classloader-cache/jni/src/main/native/1/sbt_JniLibrary.cc new file mode 100644 index 000000000..46d048f60 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/jni/src/main/native/1/sbt_JniLibrary.cc @@ -0,0 +1,15 @@ +#include +#include "sbt_JniLibrary.h" + +extern "C" { + +/* + * Class: sbt_JniLibrary + * Method: getIntegerValue + * Signature: ()I + */ +JNIEXPORT jint JNICALL Java_sbt_JniLibrary_getIntegerValue + (JNIEnv *env, jobject obj) { + return 1; + } +} diff --git a/sbt/src/sbt-test/classloader-cache/jni/src/main/native/2/Makefile b/sbt/src/sbt-test/classloader-cache/jni/src/main/native/2/Makefile new file mode 100644 index 000000000..d0634d916 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/jni/src/main/native/2/Makefile @@ -0,0 +1,61 @@ +TARGET_DIR := ../../../target +BUILD_DIR := $(TARGET_DIR)/build +NATIVE_DIR := native/$(shell uname -sm | cut -d ' ' -f2 | tr '[:upper:]' '[:lower:]') +LIB_DIR := ../resources/$(NATIVE_DIR) +LIB_NAME := sbt-jni-library-test0 +POSIX_LIB_NAME := lib$(LIB_NAME) +SOURCE := sbt_JniLibrary +CC := clang + +UNAME_S := $(shell uname -s) + +ifeq ($(UNAME_S),Darwin) + JNI_INCLUDE := -I$(shell mdfind -name jni.h | grep jdk1.8 | tail -n 1 | xargs dirname)\ + -I$(shell mdfind -name jni_md.h | grep jdk1.8 | tail -n 1 | xargs dirname) + LD := /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ + OBJS := $(BUILD_DIR)/x86_64/darwin/$(SOURCE).o + LIBS := $(TARGET_DIR)/x86_64/$(POSIX_LIB_NAME).dylib +endif + +ifeq ($(UNAME_S), Linux) + BASE_INCLUDE := $(shell locate jni.h | tail -n 1 | xargs dirname) + JNI_INCLUDE := -I$(BASE_INCLUDE) -I$(BASE_INCLUDE)/linux + OBJS := $(BUILD_DIR)/x86_64/linux/$(SOURCE).o + LIBS := $(TARGET_DIR)/x86_64/$(POSIX_LIB_NAME).so +endif + +LINUX_CCFLAGS := -fPIC +LINUX_LDFLAGS := -fPIC -shared + +CCFLAGS := -I./../include $(JNI_INCLUDE) -Wno-unused-command-line-argument -std=c++11 -O3 + +all: $(LIBS) + +.PHONY: clean all + +$(BUILD_DIR)/x86_64/linux/$(SOURCE).o: $(SOURCE).cc + mkdir -p $(BUILD_DIR)/x86_64/linux; \ + $(CC) -c $< $(CCFLAGS) $(JNI_INCLUDE) -fPIC -o $@ + +$(BUILD_DIR)/x86_64/darwin/$(SOURCE).o: $(SOURCE).cc + mkdir -p $(BUILD_DIR)/x86_64/darwin; \ + $(CC) -c $< $(CCFLAGS) -framework Carbon -o $@ + +$(TARGET_DIR)/x86_64/$(POSIX_LIB_NAME).dylib: $(BUILD_DIR)/x86_64/darwin/$(SOURCE).o + mkdir -p $(TARGET_DIR)/x86_64; \ + $(LD) -dynamiclib -framework Carbon $(CCFLAGS) -Wl,-headerpad_max_install_names -install_name @rpath/$(POSIX_LIB_NAME) \ + $(BUILD_DIR)/x86_64/darwin/$(SOURCE).o \ + -o $@ ; \ + mkdir -p ../../resources/2; \ + cp $(TARGET_DIR)/x86_64/$(POSIX_LIB_NAME).dylib ../../resources/2 + + + +$(TARGET_DIR)/x86_64/$(POSIX_LIB_NAME).so: $(BUILD_DIR)/x86_64/linux/$(SOURCE).o + mkdir -p $(TARGET_DIR)/x86_64; \ + $(CC) -shared $< $(CCFLAGS) -Wl,-headerpad_max_install_names -o $@; \ + mkdir -p ../../resources/2; \ + cp $(TARGET_DIR)/x86_64/$(POSIX_LIB_NAME).so ../../resources/2; + +clean: + rm -rf $(TARGET_DIR)/build $(TARGET_DIR)/$(NATIVE) diff --git a/sbt/src/sbt-test/classloader-cache/jni/src/main/native/2/sbt_JniLibrary.cc b/sbt/src/sbt-test/classloader-cache/jni/src/main/native/2/sbt_JniLibrary.cc new file mode 100644 index 000000000..eeb97bfa2 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/jni/src/main/native/2/sbt_JniLibrary.cc @@ -0,0 +1,15 @@ +#include +#include "sbt_JniLibrary.h" + +extern "C" { + +/* + * Class: sbt_JniLibrary + * Method: getIntegerValue + * Signature: ()I + */ +JNIEXPORT jint JNICALL Java_sbt_JniLibrary_getIntegerValue + (JNIEnv *env, jobject obj) { + return 2; + } +} diff --git a/sbt/src/sbt-test/classloader-cache/jni/src/main/native/include/sbt_JniLibrary.h b/sbt/src/sbt-test/classloader-cache/jni/src/main/native/include/sbt_JniLibrary.h new file mode 100644 index 000000000..ccdb7bd80 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/jni/src/main/native/include/sbt_JniLibrary.h @@ -0,0 +1,21 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include +/* Header for class sbt_JniLibrary */ + +#ifndef _Included_sbt_JniLibrary +#define _Included_sbt_JniLibrary +#ifdef __cplusplus +extern "C" { +#endif +/* + * Class: sbt_JniLibrary + * Method: getIntegerValue + * Signature: ()I + */ +JNIEXPORT jint JNICALL Java_sbt_JniLibrary_getIntegerValue + (JNIEnv *, jobject); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/sbt/src/sbt-test/classloader-cache/jni/src/main/resources/1/libsbt-jni-library-test0.dylib b/sbt/src/sbt-test/classloader-cache/jni/src/main/resources/1/libsbt-jni-library-test0.dylib new file mode 100755 index 000000000..660445b66 Binary files /dev/null and b/sbt/src/sbt-test/classloader-cache/jni/src/main/resources/1/libsbt-jni-library-test0.dylib differ diff --git a/sbt/src/sbt-test/classloader-cache/jni/src/main/resources/1/libsbt-jni-library-test0.so b/sbt/src/sbt-test/classloader-cache/jni/src/main/resources/1/libsbt-jni-library-test0.so new file mode 100755 index 000000000..6cac0d6fb Binary files /dev/null and b/sbt/src/sbt-test/classloader-cache/jni/src/main/resources/1/libsbt-jni-library-test0.so differ diff --git a/sbt/src/sbt-test/classloader-cache/jni/src/main/resources/2/libsbt-jni-library-test0.dylib b/sbt/src/sbt-test/classloader-cache/jni/src/main/resources/2/libsbt-jni-library-test0.dylib new file mode 100755 index 000000000..ed8916036 Binary files /dev/null and b/sbt/src/sbt-test/classloader-cache/jni/src/main/resources/2/libsbt-jni-library-test0.dylib differ diff --git a/sbt/src/sbt-test/classloader-cache/jni/src/main/resources/2/libsbt-jni-library-test0.so b/sbt/src/sbt-test/classloader-cache/jni/src/main/resources/2/libsbt-jni-library-test0.so new file mode 100755 index 000000000..ce87cb48d Binary files /dev/null and b/sbt/src/sbt-test/classloader-cache/jni/src/main/resources/2/libsbt-jni-library-test0.so differ diff --git a/sbt/src/sbt-test/classloader-cache/jni/src/main/resources/native/x86_64/libswoval-jni-library-test0.dylib b/sbt/src/sbt-test/classloader-cache/jni/src/main/resources/native/x86_64/libswoval-jni-library-test0.dylib new file mode 100755 index 000000000..472d59c2b Binary files /dev/null and b/sbt/src/sbt-test/classloader-cache/jni/src/main/resources/native/x86_64/libswoval-jni-library-test0.dylib differ diff --git a/sbt/src/sbt-test/classloader-cache/jni/src/main/scala/TestMain.scala b/sbt/src/sbt-test/classloader-cache/jni/src/main/scala/TestMain.scala new file mode 100644 index 000000000..523c37799 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/jni/src/main/scala/TestMain.scala @@ -0,0 +1,12 @@ +package sbt + +import java.nio.file._ +import scala.collection.JavaConverters._ + +object TestMain { + def main(args: Array[String]): Unit = { + val libraryPath = System.getProperty("java.library.path") + System.loadLibrary("sbt-jni-library-test0") + println(s"Native value is ${new JniLibrary().getIntegerValue}") + } +} \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/jni/src/test/scala/sbt/JniLibraryTest.scala b/sbt/src/sbt-test/classloader-cache/jni/src/test/scala/sbt/JniLibraryTest.scala new file mode 100644 index 000000000..c4b20e199 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/jni/src/test/scala/sbt/JniLibraryTest.scala @@ -0,0 +1,15 @@ +package sbt + +import java.nio.file._ +import utest._ + +object JniLibraryTest extends TestSuite { + val tests = Tests { + 'load - { + 'native - { + System.loadLibrary("sbt-jni-library-test0") + new JniLibrary().getIntegerValue ==> 1 + } + } + } +} diff --git a/sbt/src/sbt-test/classloader-cache/jni/test b/sbt/src/sbt-test/classloader-cache/jni/test new file mode 100644 index 000000000..7375b6eba --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/jni/test @@ -0,0 +1,6 @@ +> copyTestResources 1 +> wrappedRun +> wrappedTest +> copyTestResources 2 +$ copy-file changes/JniLibraryTest.scala src/test/scala/sbt/JniLibraryTest.scala +> wrappedTest diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/build.sbt b/sbt/src/sbt-test/classloader-cache/library-mismatch/build.sbt new file mode 100644 index 000000000..086059284 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/build.sbt @@ -0,0 +1,9 @@ +val snapshot = (project in file(".")).settings( + name := "mismatched-libraries", + scalaVersion := "2.12.7", + libraryDependencies ++= Seq("com.lihaoyi" %% "utest" % "0.6.6" % "test"), + testFrameworks := Seq(TestFramework("utest.runner.Framework")), + resolvers += "Local Maven" at file("libraries/ivy").toURI.toURL.toString, + libraryDependencies += "sbt" % "transitive-lib" % "0.1.0", + libraryDependencies += "sbt" % "foo-lib" % "0.2.0" % "test", +) diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/foo-lib-0.1.0/build.sbt b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/foo-lib-0.1.0/build.sbt new file mode 100644 index 000000000..a450e3bb9 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/foo-lib-0.1.0/build.sbt @@ -0,0 +1,11 @@ +name := "foo-lib" + +organization := "sbt" + +publishTo := Some(Resolver.file("test-resolver", file("..").getCanonicalFile / "ivy")) + +version := "0.1.0" + +crossPaths := false + +autoScalaLibrary := false diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/foo-lib-0.1.0/project/build.properties b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/foo-lib-0.1.0/project/build.properties new file mode 100644 index 000000000..7c58a83ab --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/foo-lib-0.1.0/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.2.6 diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/foo-lib-0.1.0/src/main/java/sbt/foo/Foo.java b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/foo-lib-0.1.0/src/main/java/sbt/foo/Foo.java new file mode 100644 index 000000000..4f89c900b --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/foo-lib-0.1.0/src/main/java/sbt/foo/Foo.java @@ -0,0 +1,7 @@ +package sbt.foo; + +public class Foo { + static public int x() { + return 1; + } +} diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/foo-lib-0.2.0/build.sbt b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/foo-lib-0.2.0/build.sbt new file mode 100644 index 000000000..b399a06f5 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/foo-lib-0.2.0/build.sbt @@ -0,0 +1,11 @@ +name := "foo-lib" + +organization := "sbt" + +publishTo := Some(Resolver.file("test-resolver", file("..").getCanonicalFile / "ivy")) + +version := "0.2.0" + +crossPaths := false + +autoScalaLibrary := false diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/foo-lib-0.2.0/project/build.properties b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/foo-lib-0.2.0/project/build.properties new file mode 100644 index 000000000..7c58a83ab --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/foo-lib-0.2.0/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.2.6 diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/foo-lib-0.2.0/src/main/java/sbt/foo/Foo.java b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/foo-lib-0.2.0/src/main/java/sbt/foo/Foo.java new file mode 100644 index 000000000..66595cf6f --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/foo-lib-0.2.0/src/main/java/sbt/foo/Foo.java @@ -0,0 +1,10 @@ +package sbt.foo; + +public class Foo { + static public int x() { + return 2; + } + static public int y() { + return 3; + } +} diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0-javadoc.jar b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0-javadoc.jar new file mode 100644 index 000000000..13319bbfb Binary files /dev/null and b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0-javadoc.jar differ diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0-javadoc.jar.md5 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0-javadoc.jar.md5 new file mode 100644 index 000000000..e8c91778b --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0-javadoc.jar.md5 @@ -0,0 +1 @@ +66124717bb8840ce6f60567b19634a4b \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0-javadoc.jar.sha1 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0-javadoc.jar.sha1 new file mode 100644 index 000000000..7df850585 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0-javadoc.jar.sha1 @@ -0,0 +1 @@ +ca2193d86495f120496370cf2e75355f2b10b2a3 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0-sources.jar b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0-sources.jar new file mode 100644 index 000000000..d675c2cb2 Binary files /dev/null and b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0-sources.jar differ diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0-sources.jar.md5 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0-sources.jar.md5 new file mode 100644 index 000000000..e16a6727e --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0-sources.jar.md5 @@ -0,0 +1 @@ +8bb4c394490df92c43361e47d98cba52 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0-sources.jar.sha1 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0-sources.jar.sha1 new file mode 100644 index 000000000..8eb308f6d --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0-sources.jar.sha1 @@ -0,0 +1 @@ +86ce6f4d12e075e8ef4ba80b671783673a8a0443 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0.jar b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0.jar new file mode 100644 index 000000000..5eb0d2b98 Binary files /dev/null and b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0.jar differ diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0.jar.md5 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0.jar.md5 new file mode 100644 index 000000000..4119cd027 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0.jar.md5 @@ -0,0 +1 @@ +4cd195abad8639ba6df345c125068058 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0.jar.sha1 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0.jar.sha1 new file mode 100644 index 000000000..3a4ae59c3 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0.jar.sha1 @@ -0,0 +1 @@ +e18f4c7a4b52d288733f123008d98985610da4f3 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0.pom b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0.pom new file mode 100644 index 000000000..fc90d29ec --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0.pom @@ -0,0 +1,13 @@ + + + 4.0.0 + sbt + foo-lib + jar + foo-lib + 0.1.0 + foo-lib + + sbt + + \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0.pom.md5 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0.pom.md5 new file mode 100644 index 000000000..2cb48799b --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0.pom.md5 @@ -0,0 +1 @@ +22ebca3d8b32a4c0cb40341501b798e2 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0.pom.sha1 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0.pom.sha1 new file mode 100644 index 000000000..4e5efcb01 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.1.0/foo-lib-0.1.0.pom.sha1 @@ -0,0 +1 @@ +575258d8c9fecff7e8beefee2637c2928328e0dc \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0-javadoc.jar b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0-javadoc.jar new file mode 100644 index 000000000..1037d4546 Binary files /dev/null and b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0-javadoc.jar differ diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0-javadoc.jar.md5 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0-javadoc.jar.md5 new file mode 100644 index 000000000..6c94e7950 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0-javadoc.jar.md5 @@ -0,0 +1 @@ +ce4dcb6be9c11c1356e6aeaa024c80f1 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0-javadoc.jar.sha1 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0-javadoc.jar.sha1 new file mode 100644 index 000000000..17453e3b8 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0-javadoc.jar.sha1 @@ -0,0 +1 @@ +cc1a6b548cb9efd6e43c7fb5fa44728fc3f50d45 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0-sources.jar b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0-sources.jar new file mode 100644 index 000000000..99410b913 Binary files /dev/null and b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0-sources.jar differ diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0-sources.jar.md5 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0-sources.jar.md5 new file mode 100644 index 000000000..ddafa9ebb --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0-sources.jar.md5 @@ -0,0 +1 @@ +f18c726e5009cf205ca83cf96a28345b \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0-sources.jar.sha1 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0-sources.jar.sha1 new file mode 100644 index 000000000..4dd6ee7f1 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0-sources.jar.sha1 @@ -0,0 +1 @@ +af0ac149e4c810884bb921bb3826e495faa5854b \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0.jar b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0.jar new file mode 100644 index 000000000..948dd983f Binary files /dev/null and b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0.jar differ diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0.jar.md5 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0.jar.md5 new file mode 100644 index 000000000..cf6b26db1 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0.jar.md5 @@ -0,0 +1 @@ +fcadc4b2d6965cec0f5e5efb0a59226d \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0.jar.sha1 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0.jar.sha1 new file mode 100644 index 000000000..086f63d7f --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0.jar.sha1 @@ -0,0 +1 @@ +585422ad5196b83f83bbca644e62a39a2e4171e0 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0.pom b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0.pom new file mode 100644 index 000000000..4ab3397ba --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0.pom @@ -0,0 +1,13 @@ + + + 4.0.0 + sbt + foo-lib + jar + foo-lib + 0.2.0 + foo-lib + + sbt + + \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0.pom.md5 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0.pom.md5 new file mode 100644 index 000000000..087635a3c --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0.pom.md5 @@ -0,0 +1 @@ +790acd1d77316ff2c0310bb88d01dc72 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0.pom.sha1 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0.pom.sha1 new file mode 100644 index 000000000..0c74509e8 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/foo-lib/0.2.0/foo-lib-0.2.0.pom.sha1 @@ -0,0 +1 @@ +94eec0571d936004eb5682b8b12268d1bcb2be40 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0-javadoc.jar b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0-javadoc.jar new file mode 100644 index 000000000..39f0eea9a Binary files /dev/null and b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0-javadoc.jar differ diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0-javadoc.jar.md5 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0-javadoc.jar.md5 new file mode 100644 index 000000000..ce5c94c76 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0-javadoc.jar.md5 @@ -0,0 +1 @@ +31f61c992ede7185d70d7c8a9ed19340 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0-javadoc.jar.sha1 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0-javadoc.jar.sha1 new file mode 100644 index 000000000..c0b7f1add --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0-javadoc.jar.sha1 @@ -0,0 +1 @@ +3083e0439d988b1cce30be566f8c95448c310eca \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0-sources.jar b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0-sources.jar new file mode 100644 index 000000000..3cc549138 Binary files /dev/null and b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0-sources.jar differ diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0-sources.jar.md5 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0-sources.jar.md5 new file mode 100644 index 000000000..9669bc52f --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0-sources.jar.md5 @@ -0,0 +1 @@ +b9e2ead915294bf9e79622fe4ad9eadb \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0-sources.jar.sha1 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0-sources.jar.sha1 new file mode 100644 index 000000000..981beaca9 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0-sources.jar.sha1 @@ -0,0 +1 @@ +5454c981af36713e2f0cedce98a83da2b0e4b982 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0.jar b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0.jar new file mode 100644 index 000000000..45223c30c Binary files /dev/null and b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0.jar differ diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0.jar.md5 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0.jar.md5 new file mode 100644 index 000000000..19d0fe484 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0.jar.md5 @@ -0,0 +1 @@ +c7b4fbba100656a2798c39ca1d88317f \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0.jar.sha1 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0.jar.sha1 new file mode 100644 index 000000000..84f5adbb1 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0.jar.sha1 @@ -0,0 +1 @@ +f0fcc50b65e83f42210bbd3f366e2cc439177aa8 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0.pom b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0.pom new file mode 100644 index 000000000..a3306d5b1 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0.pom @@ -0,0 +1,20 @@ + + + 4.0.0 + sbt + transitive-lib + jar + transitive-lib + 0.1.0 + transitive-lib + + sbt + + + + sbt + foo-lib + 0.1.0 + + + \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0.pom.md5 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0.pom.md5 new file mode 100644 index 000000000..b370e9b87 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0.pom.md5 @@ -0,0 +1 @@ +460393fd256f121413f943d085887278 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0.pom.sha1 b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0.pom.sha1 new file mode 100644 index 000000000..9956e4112 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/ivy/sbt/transitive-lib/0.1.0/transitive-lib-0.1.0.pom.sha1 @@ -0,0 +1 @@ +4cb84c1daf7152544065849db0c1ce2d8d47c334 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/transitive-lib-0.1.0/build.sbt b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/transitive-lib-0.1.0/build.sbt new file mode 100644 index 000000000..5bb0f4ae8 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/transitive-lib-0.1.0/build.sbt @@ -0,0 +1,15 @@ +name := "transitive-lib" + +organization := "sbt" + +resolvers += "Local Maven" at file("../ivy").getCanonicalFile.toURI.toURL.toString + +publishTo := Some(Resolver.file("test-resolver", file("..").getCanonicalFile / "ivy")) + +version := "0.1.0" + +libraryDependencies += "sbt" % "foo-lib" % "0.1.0" + +crossPaths := false + +autoScalaLibrary := false diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/transitive-lib-0.1.0/project/build.properties b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/transitive-lib-0.1.0/project/build.properties new file mode 100644 index 000000000..7c58a83ab --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/transitive-lib-0.1.0/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.2.6 diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/transitive-lib-0.1.0/src/main/java/sbt/transitive/Transitive.java b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/transitive-lib-0.1.0/src/main/java/sbt/transitive/Transitive.java new file mode 100644 index 000000000..bdc984690 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/libraries/transitive-lib-0.1.0/src/main/java/sbt/transitive/Transitive.java @@ -0,0 +1,7 @@ +package sbt.transitive; + +public class Transitive { + public static int x() { + return sbt.foo.Foo.x(); + } +} diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/src/main/scala/Main.scala b/sbt/src/sbt-test/classloader-cache/library-mismatch/src/main/scala/Main.scala new file mode 100644 index 000000000..7a4455526 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/src/main/scala/Main.scala @@ -0,0 +1,7 @@ +package sbt + +object TestMain { + def main(args: Array[String]) { + println(transitive.Transitive.x) + } +} diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/src/test/scala/sbt/MismatchedLibrariesTest.scala b/sbt/src/sbt-test/classloader-cache/library-mismatch/src/test/scala/sbt/MismatchedLibrariesTest.scala new file mode 100644 index 000000000..9bc5a9a86 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/src/test/scala/sbt/MismatchedLibrariesTest.scala @@ -0,0 +1,11 @@ +package sbt + +import utest._ + +object MismatchedLibrariesTest extends TestSuite { + val tests: Tests = Tests { + 'check - { + assert(foo.Foo.y == 3) + } + } +} diff --git a/sbt/src/sbt-test/classloader-cache/library-mismatch/test b/sbt/src/sbt-test/classloader-cache/library-mismatch/test new file mode 100644 index 000000000..825fbc4e5 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/library-mismatch/test @@ -0,0 +1,15 @@ +> set Test / layeringStrategy := LayeringStrategy.Full + +> run + +# This fails because the runtime layer includes an old version of the foo-lib library that doesn't +# have the sbt.foo.Foo.y method defined. +> test + +> set Test / layeringStrategy := LayeringStrategy.TestDependencies + +> run + +> test + +> test diff --git a/sbt/src/sbt-test/classloader-cache/scalatest/build.sbt b/sbt/src/sbt-test/classloader-cache/scalatest/build.sbt new file mode 100644 index 000000000..9f62ac7ad --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/scalatest/build.sbt @@ -0,0 +1,3 @@ +val test = (project in file(".")).settings( + libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.4" % "test" +) \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/scalatest/changes/ScalatestTest.scala b/sbt/src/sbt-test/classloader-cache/scalatest/changes/ScalatestTest.scala new file mode 100644 index 000000000..508806fe4 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/scalatest/changes/ScalatestTest.scala @@ -0,0 +1,9 @@ +package sbt + +import org.scalatest.{ FlatSpec, Matchers } + +class ScalatestTest extends FlatSpec with Matchers { + "scalatest" should "fail" in { + 1 shouldBe 2 + } +} diff --git a/sbt/src/sbt-test/classloader-cache/scalatest/src/test/scala/sbt/ScalatestTest.scala b/sbt/src/sbt-test/classloader-cache/scalatest/src/test/scala/sbt/ScalatestTest.scala new file mode 100644 index 000000000..afdcfe9e4 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/scalatest/src/test/scala/sbt/ScalatestTest.scala @@ -0,0 +1,9 @@ +package sbt + +import org.scalatest.{ FlatSpec, Matchers } + +class ScalatestTest extends FlatSpec with Matchers { + "scalatest" should "work" in { + 1 shouldBe 1 + } +} diff --git a/sbt/src/sbt-test/classloader-cache/scalatest/test b/sbt/src/sbt-test/classloader-cache/scalatest/test new file mode 100644 index 000000000..5ad5d9538 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/scalatest/test @@ -0,0 +1,5 @@ +> test + +$ copy-file changes/ScalatestTest.scala src/test/scala/sbt/ScalatestTest.scala + +-> test \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/build.sbt b/sbt/src/sbt-test/classloader-cache/snapshot/build.sbt new file mode 100644 index 000000000..8830883ec --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/build.sbt @@ -0,0 +1,24 @@ +import java.nio.file.Files +import java.nio.file.attribute.FileTime + +import scala.collection.JavaConverters._ +val rewriteIvy = inputKey[Unit]("Rewrite ivy directory") + +val snapshot = (project in file(".")).settings( + name := "akka-test", + scalaVersion := "2.12.7", + libraryDependencies ++= Seq( + "com.lihaoyi" %% "utest" % "0.6.6" % "test" + ), + testFrameworks += TestFramework("utest.runner.Framework"), + resolvers += "Local Maven" at file("ivy").toURI.toURL.toString, + libraryDependencies += "sbt" %% "foo-lib" % "0.1.0-SNAPSHOT", + rewriteIvy := { + val dir = Def.spaceDelimited().parsed.head + sbt.IO.delete(file("ivy")) + sbt.IO.copyDirectory(file(s"libraries/library-$dir/ivy"), file("ivy")) + Files.walk(file("ivy").getCanonicalFile.toPath).iterator.asScala.foreach { f => + Files.setLastModifiedTime(f, FileTime.fromMillis(System.currentTimeMillis + 3000)) + } + } +) diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/build.sbt b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/build.sbt new file mode 100644 index 000000000..55109c35f --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/build.sbt @@ -0,0 +1,5 @@ +name := "foo-lib" + +organization := "sbt" + +publishTo := Some(Resolver.file("test-resolver", file("").getCanonicalFile / "ivy")) diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-javadoc.jar b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-javadoc.jar new file mode 100644 index 000000000..6ca76e2fd Binary files /dev/null and b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-javadoc.jar differ diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-javadoc.jar.md5 b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-javadoc.jar.md5 new file mode 100644 index 000000000..bc15f9443 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-javadoc.jar.md5 @@ -0,0 +1 @@ +397429ea4a937c9ad21268ac7f294c9b \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-javadoc.jar.sha1 b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-javadoc.jar.sha1 new file mode 100644 index 000000000..c36a79d59 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-javadoc.jar.sha1 @@ -0,0 +1 @@ +183362cade58c89ae813465e7c509a3346515e39 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-sources.jar b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-sources.jar new file mode 100644 index 000000000..f7acb17ad Binary files /dev/null and b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-sources.jar differ diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-sources.jar.md5 b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-sources.jar.md5 new file mode 100644 index 000000000..9cadb3a11 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-sources.jar.md5 @@ -0,0 +1 @@ +9c46dbde2cd9c996c37c7ba4461eec7c \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-sources.jar.sha1 b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-sources.jar.sha1 new file mode 100644 index 000000000..b4a982ea0 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-sources.jar.sha1 @@ -0,0 +1 @@ +b5725ff80281d86491166550058b56c6b0b7dd2d \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.jar b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.jar new file mode 100644 index 000000000..197c6e591 Binary files /dev/null and b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.jar differ diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.jar.md5 b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.jar.md5 new file mode 100644 index 000000000..0861ac32f --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.jar.md5 @@ -0,0 +1 @@ +c39385e52b24880f549e1c01642ed010 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.jar.sha1 b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.jar.sha1 new file mode 100644 index 000000000..5d81c7d99 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.jar.sha1 @@ -0,0 +1 @@ +de497479331da6c5dff72b6c1cfa5fca1634933f \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.pom b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.pom new file mode 100644 index 000000000..6b7ab1e42 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.pom @@ -0,0 +1,20 @@ + + + 4.0.0 + sbt + foo-lib_2.12 + jar + foo-lib + 0.1.0-SNAPSHOT + foo-lib + + sbt + + + + org.scala-lang + scala-library + 2.12.7 + + + \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.pom.md5 b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.pom.md5 new file mode 100644 index 000000000..394b7d529 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.pom.md5 @@ -0,0 +1 @@ +ada0c2e0276459449bf25a4f99aab3f6 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.pom.sha1 b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.pom.sha1 new file mode 100644 index 000000000..7162aec5e --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.pom.sha1 @@ -0,0 +1 @@ +466216207d16d3e0daf0b2b18e67b20882f7f1b5 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/project/build.properties b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/project/build.properties new file mode 100644 index 000000000..7c58a83ab --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.2.6 diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/src/main/scala/sbt/Foo.scala b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/src/main/scala/sbt/Foo.scala new file mode 100644 index 000000000..7b95dd3d2 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-1/src/main/scala/sbt/Foo.scala @@ -0,0 +1,5 @@ +package sbt + +object Foo { + def x: Int = 1 +} diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/build.sbt b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/build.sbt new file mode 100644 index 000000000..55109c35f --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/build.sbt @@ -0,0 +1,5 @@ +name := "foo-lib" + +organization := "sbt" + +publishTo := Some(Resolver.file("test-resolver", file("").getCanonicalFile / "ivy")) diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-javadoc.jar b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-javadoc.jar new file mode 100644 index 000000000..8505dca48 Binary files /dev/null and b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-javadoc.jar differ diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-javadoc.jar.md5 b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-javadoc.jar.md5 new file mode 100644 index 000000000..249153493 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-javadoc.jar.md5 @@ -0,0 +1 @@ +260c1aab64032676c2c5b7d3c2a8e385 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-javadoc.jar.sha1 b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-javadoc.jar.sha1 new file mode 100644 index 000000000..ceb465ee3 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-javadoc.jar.sha1 @@ -0,0 +1 @@ +44c78fcc5a2918bc4b33afb7419ac9d643bbac26 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-sources.jar b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-sources.jar new file mode 100644 index 000000000..5ef80e248 Binary files /dev/null and b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-sources.jar differ diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-sources.jar.md5 b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-sources.jar.md5 new file mode 100644 index 000000000..8a81b3699 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-sources.jar.md5 @@ -0,0 +1 @@ +39c7358e50708bc3da53ffe34eb876d6 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-sources.jar.sha1 b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-sources.jar.sha1 new file mode 100644 index 000000000..263e42fd8 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT-sources.jar.sha1 @@ -0,0 +1 @@ +64e078d3fed51c0ef3d8abdb096ab1406e44ee1c \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.jar b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.jar new file mode 100644 index 000000000..c41eddd31 Binary files /dev/null and b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.jar differ diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.jar.md5 b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.jar.md5 new file mode 100644 index 000000000..c7bb182af --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.jar.md5 @@ -0,0 +1 @@ +763822fba242624131cf0706be56dabf \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.jar.sha1 b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.jar.sha1 new file mode 100644 index 000000000..6c5f9adf1 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.jar.sha1 @@ -0,0 +1 @@ +22192abf4b52e85b9f979aa883ab42ce33bc51cd \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.pom b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.pom new file mode 100644 index 000000000..6b7ab1e42 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.pom @@ -0,0 +1,20 @@ + + + 4.0.0 + sbt + foo-lib_2.12 + jar + foo-lib + 0.1.0-SNAPSHOT + foo-lib + + sbt + + + + org.scala-lang + scala-library + 2.12.7 + + + \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.pom.md5 b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.pom.md5 new file mode 100644 index 000000000..394b7d529 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.pom.md5 @@ -0,0 +1 @@ +ada0c2e0276459449bf25a4f99aab3f6 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.pom.sha1 b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.pom.sha1 new file mode 100644 index 000000000..7162aec5e --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/ivy/sbt/foo-lib_2.12/0.1.0-SNAPSHOT/foo-lib_2.12-0.1.0-SNAPSHOT.pom.sha1 @@ -0,0 +1 @@ +466216207d16d3e0daf0b2b18e67b20882f7f1b5 \ No newline at end of file diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/project/build.properties b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/project/build.properties new file mode 100644 index 000000000..7c58a83ab --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.2.6 diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/src/main/scala/sbt/Foo.scala b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/src/main/scala/sbt/Foo.scala new file mode 100644 index 000000000..75cca6b19 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/libraries/library-2/src/main/scala/sbt/Foo.scala @@ -0,0 +1,5 @@ +package sbt + +object Foo { + def x: Int = 2 +} diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/src/test/scala/sbt/SnapshotTest.scala b/sbt/src/sbt-test/classloader-cache/snapshot/src/test/scala/sbt/SnapshotTest.scala new file mode 100644 index 000000000..fe242766a --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/src/test/scala/sbt/SnapshotTest.scala @@ -0,0 +1,11 @@ +package sbt + +import utest._ + +object SnapshotTest extends TestSuite { + val tests: Tests = Tests { + 'foo - { + com.swoval.Foo.x ==> 1 + } + } +} diff --git a/sbt/src/sbt-test/classloader-cache/snapshot/test b/sbt/src/sbt-test/classloader-cache/snapshot/test new file mode 100644 index 000000000..179d9c36c --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/snapshot/test @@ -0,0 +1,5 @@ +> rewriteIvy 1 +# If the ClassLoaderCache is not correctly set up, then the sbt testing framework fails to work correctly +> test +> rewriteIvy 2 +-> test diff --git a/sbt/src/sbt-test/classloader-cache/utest/build.sbt b/sbt/src/sbt-test/classloader-cache/utest/build.sbt new file mode 100644 index 000000000..133f814dc --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/utest/build.sbt @@ -0,0 +1,8 @@ +val utestTest = (project in file(".")).settings( + name := "utest-test", + scalaVersion := "2.12.7", + libraryDependencies ++= Seq( + "com.lihaoyi" %% "utest" % "0.6.6" % "test" + ), + testFrameworks += TestFramework("utest.runner.Framework") +) diff --git a/sbt/src/sbt-test/classloader-cache/utest/src/test/scala/sbt/UtestTest.scala b/sbt/src/sbt-test/classloader-cache/utest/src/test/scala/sbt/UtestTest.scala new file mode 100644 index 000000000..caa8ff809 --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/utest/src/test/scala/sbt/UtestTest.scala @@ -0,0 +1,11 @@ +package sbt + +import utest._ + +object UtestTest extends TestSuite { + val tests: Tests = Tests { + 'foo - { + 1 ==> 1 + } + } +} diff --git a/sbt/src/sbt-test/classloader-cache/utest/test b/sbt/src/sbt-test/classloader-cache/utest/test new file mode 100644 index 000000000..a9bb439cf --- /dev/null +++ b/sbt/src/sbt-test/classloader-cache/utest/test @@ -0,0 +1,2 @@ +# If the ClassLoaderCache is not correctly set up, then the sbt testing framework fails to work correctly +> test diff --git a/scripted-sbt-redux/src/main/scala/sbt/scriptedtest/ScriptedTests.scala b/scripted-sbt-redux/src/main/scala/sbt/scriptedtest/ScriptedTests.scala index eb8cda4e5..e4390e008 100644 --- a/scripted-sbt-redux/src/main/scala/sbt/scriptedtest/ScriptedTests.scala +++ b/scripted-sbt-redux/src/main/scala/sbt/scriptedtest/ScriptedTests.scala @@ -170,6 +170,9 @@ final class ScriptedTests( case "actions/external-doc" => LauncherBased // sbt/Package$ case "actions/input-task" => LauncherBased // sbt/Package$ case "actions/input-task-dyn" => LauncherBased // sbt/Package$ + case "classloader-cache/akka-actor-system" => LauncherBased // sbt/Package$ + case "classloader-cache/jni" => LauncherBased // sbt/Package$ + case "classloader-cache/library-mismatch" => LauncherBased // sbt/Package$ case "compiler-project/dotty-compiler-plugin" => LauncherBased // sbt/Package$ case "compiler-project/run-test" => LauncherBased // sbt/Package$ case "compiler-project/src-dep-plugin" => LauncherBased // sbt/Package$