Commit Graph

53 Commits

Author SHA1 Message Date
Jason Zaugg 8c4527317f SI-7788 Adapt to renamed implict Predef.conforms
In 2.11, the implicit version is named `$conforms` so as to avoid
accidental shadowing by user code, which renders methods using
views and subtype bounds inexplicable unusable.

But, SBT intentionally needs to hide it to make the implicits
in this file line up.

This commit opts-in the the required identifiers from Predef,
rather than opting out of conforms. This makes the same code
source compatible with 2.10 and 2.11.
2014-02-21 22:14:13 +01:00
Jason Zaugg 9b4564f0cd SI-8262 Fix compilation with 2.11 due to shadowing of Range
We now have `global.Range`, so our wildcard import of `global._`
shadows `scala.Range`.

This commit fully qualifies that type so as to be compatible with
Scala 2.10 and 2.11.
2014-02-12 13:11:28 +01:00
Josh Suereth 2abe7574df Fixes to the internal API hooks for the sbt server.
* Alter the TaskProgress listener key to be `State => TaskProgress` so it
  can be instantiated from the current server/sbt state.
* Expose the xsbti.Reporter interface for compilation through to sbt builds.
2014-01-14 12:42:40 -05:00
Bruno Bieth 5a88bd2302 Third draft to execute the forked tests in parallel.
This feature is not activated by default. To enable it set `testForkedParallel` to `true`.

The test-agent then executes the tests in a thread pool.
For now it has a fixed size set to the number of available processors.
The concurrent restrictions configuration should be used.
2013-11-21 08:20:43 -05:00
Mark Harrah a92b883e23 update to ScalaCheck 1.11.0 2013-11-04 11:28:40 -05:00
James Roper 191737d35b Log socket accept errors when forking tests
If an exception is thrown when accepting a connection from a forked test
agent, currently I'm seeing that all that happens is SBT hangs with no
output.  Thread dumps show that the main process is waiting for the
agent to return, while the agent is waiting for the server to send it
something.

This change logs the exception, so that at least the error can be
googled.  It also cleans up the server socket.
2013-11-04 09:39:30 -05:00
James Roper b337f3d9ac Flush ObjectOutputStreams after construction
This protects against deadlocks between the writing and reading end,
since the ObjectOutputStream constructor writes a header, but does not
flush, and the ObjectInputStream constructor reads the header, and
blocks until it's read.
2013-11-01 13:26:07 -04:00
Benjy 655e2e5c91 Fix serialization in Sync.
The serialized structures there aren't part of an Analysis,
so they aren't interned.

TODO: Refactor InternedAnalysisFormats so that this is more
straightforward and less error-prone.  This commit is
a first-pass fix of the broken test.
2013-10-28 15:00:17 -04:00
Benjy c66eefcec9 Switch to using the interned serialization format. 2013-10-23 10:41:13 -04:00
Eugene Yokota cce87fcf9a fixes scaladoc cache not detecting -doc-root-content. #837
adds fileInputOptions key to track options that may invalidate the
cache for doc task.
2013-08-17 01:31:53 -04:00
Mark Harrah 9d1d18cd71 remove duplicate relativize implementation from Path 2013-08-16 14:22:14 -04:00
Mark Harrah 4123769214 inline implementation of Symbol.isTopLevelModule, which no longer exists in 2.11 2013-07-23 11:35:34 -04:00
Mark Harrah 0a77a47f41 Revert "Don't import the Global.Range in 2.11, which shadows the collection Range"
This reverts commit 5d7d9c4cef.  Can't do it this way
since Global.Range doesn't exist in 2.10.
2013-07-19 07:20:12 -04:00
Mark Harrah 5d7d9c4cef Don't import the Global.Range in 2.11, which shadows the collection Range 2013-07-18 22:41:52 -04:00
Mark Harrah c0e06a14fe Apply setup and cleanup hooks to forked tests.
The actual class loader for test classes cannot be provided because it
is in another jvm.
2013-07-16 13:55:10 -04:00
Mark Harrah c2df1e8d68 Deduplicate options processing for forked/non-forked tests.
This in particular fixes testOnly/testQuick when forking.
2013-07-16 13:55:10 -04:00
Mark Harrah 45677de789 test arguments no longer need to be passed throughout- they are now only used in Runner construction 2013-07-11 21:13:06 -04:00
Mark Harrah ccff43ce8c API docs and cleanup for test configuration data structures 2013-07-08 09:14:19 -04:00
Mark Harrah 3e7bedd11b Properly filter test results and decode test names in printed output.
Initial report by @viktorklang, based on his patch.
2013-07-03 17:16:00 -04:00
Mark Harrah a1a00526ff properly wrap unknown test data structures in serializable ones 2013-06-28 12:12:58 -04:00
Mark Harrah 851451a90a shouldn't need to deserialize user classes when forking tests, only sbt+test-interface 2013-06-28 11:02:49 -04:00
Mark Harrah 53191cb787 Only print extra test status counts if nonzero 2013-06-28 09:48:27 -04:00
Mark Harrah 301c11f9e0 Drop ForkTestDefinition in favor of TaskDef 2013-06-28 09:24:47 -04:00
cheeseng 86f47bd67d Added explicitlySpecified and selectors field to ForkTestDefinition, and change ForkMain to use explicitlySpecified and selectors value sent from ForkTests. 2013-06-28 17:45:13 +08:00
cheeseng 0c66d1a5d3 Added support of Ignore, Canceled and Pending added in the latest framework API. 2013-06-28 17:19:27 +08:00
cheeseng 5bb46359b5 Change to use test-interface-1.0-SNAP7, and use ScalaTest 2.0.M6-SNAP26 which implemented test-interface-1.0-SNAP7. 2013-06-28 17:18:38 +08:00
Mark Harrah 598b6209e3 Put summary not available message at the debug level. Review by @cheeseng. 2013-05-14 09:09:20 -04:00
cheeseng 48fb0c4ed6 Initial working version of makeParallel that support nested tasks. 2013-04-25 00:06:52 +08:00
cheeseng 3109912d00 Added support of nested test tasks when tests are executed InProcess and sequentially. 2013-04-25 00:06:52 +08:00
cheeseng ad18b4f3ae Added code to tag test task using Array[String] returned from Task.tags method. 2013-04-25 00:06:51 +08:00
cheeseng f862e64911 Added support of custom summary message returned from Runner.done method. 2013-04-25 00:06:51 +08:00
cheeseng 1ec2118219 -Moved code that count test results from TestLogger to SuiteResult.
-Print the results in Tests.showResult.
2013-04-25 00:06:41 +08:00
cheeseng a76523a5f6 Added >1 framework class per framework support, this enables sbt to support both old and new framework API at the same time. 2013-04-23 12:00:05 +08:00
cheeseng 244e65cd79 -Changed behavior so that only a single Runner instance is used to run tests in multiple test groups.
-Added code to support remoteArgs in test-interface 1.0.
2013-04-23 11:09:50 +08:00
cheeseng b83d378cd0 Changed ForkTests to call acceptorThread.join(), to make sure that acceptorThread is finished before Acceptor.result is called. 2013-04-23 11:09:48 +08:00
cheeseng 18bc8423b5 Initial version that uses new framework API in test-interface 1.0:
-Changed usages and implementations of interfaces in org.scalatools.testing._ to use/implement interfaces/classes in sbt.testing._ instead.
-Added sbt.testing to interfaceFilter in TestFramework.createTestLoader method to enable loading of classes in sbt.testing package.
-Added FrameworkWrapper.java to wrap old framework implementations.
-Added code in ForkMain.java to serialize Selectors.
2013-04-23 11:09:37 +08:00
Mark Harrah 6327e11a59 Object->AnyRef change in EvalTest 2013-03-18 09:52:57 -04:00
Mark Harrah 54b103f4c7 Tag the actual test task and not a later task. Fixes #692. 2013-03-03 19:43:36 -05:00
Mark Harrah f2d29d8678 Export approximate command lines executed for 'doc', 'compile', and 'console' 2013-02-28 17:59:38 -05:00
Mark Harrah 1870edfd27 more deprecations 2013-02-26 07:39:23 -05:00
Mark Harrah f6d73128fc deprecations 2013-02-25 09:24:04 -05:00
Mark Harrah 68443fc047 minor improvement to use stripSuffix in DotGraph 2013-02-22 16:31:32 -05:00
Mark Harrah 76ebc3a01d force test definition sequences to fix tests/order 2013-02-21 20:45:07 -05:00
Mark Harrah 98e2662bc4 Make full set of ForkOptions configurable for both run and test. Fixes #665.
Environment variables may be passed by configuring the envVars task.
2013-02-21 20:44:26 -05:00
Grzegorz Kossakowski 70036812ab Introduce incremental compiler options.
Introduce a way to configure incremental compiler itself instead
of underlying Java/Scala compiler.

Specific list of changes in this commit:
  * Add a method to `xsbti.compile.Setup` that returns incremental
    compiler options as a `java.util.Map<String, String>`. We considered
    statis interface instead of a `Map` but based on mailing
    list feedback we decided that it's not the best way to go because
    static interface is hard to evolve it by adding new options.
  * Since passing `java.util.Map<String, String>` not very convenient
    we convert it immediately to `sbt.inc.IncOptions`
  * Add options argument to various methods/classes that implement
    incremental compilation so in the end options reach
    `sbt.inc.IncOptions` object
  * Add `incOptions` task that allows users to configure incremental
    compiler options in their build files. Default implementation of
    that tasks returns just `IncOptions.DEFAULT`
  * Both system property `xsbt.inc.debug` and `IncOptions.relationsDebug`
    trigger debugging of relations now. In the near future, we should
    deprecate use of `xsbt.inc.debug`.
2013-02-19 12:23:07 -05:00
Grzegorz Kossakowski 4fe0c02536 Break long argument list into multiple lines.
Some methods take a lot of arguments and I'm about to add one more
which will make them too long for easy reading.

This change is changes code formatting only. That's done on purpose
to make it easier to review other changes.
2013-02-19 12:18:26 -05:00
Mark Harrah ae74fff88c When serially executing tests*, order tests by testOnly filter order
* parallelExecution in test := false

cc @bantonsson
2013-02-13 10:27:43 -05:00
Mark Harrah c0b1bb51e6 -Xlint 2013-02-04 17:30:31 -05:00
Mark Harrah 8d11d1087a Mark the tests failed exception as having already provided feedback 2013-01-28 17:14:53 -05:00
Paolo G. Giarrusso 19aaaea923 Fix compile error in Eclipse
Let's consider compile/inc/src/main/scala/sbt/CompileSetup.scala.
There are multiple Output types, and according to Eclipse importing
xsbti.compile.Output within the package sbt does not work because the
import is shadowed by sbt.Output.

However, compilation proceeds just fine within SBT. Reproducing the
example however gives the same warning, if the files are in the same
project. The problem here is probably that the shadowing Output
is declared in the same package but in another project, and that seems
to give different results in Eclipse and SBT, but relying on
that looks fragile.
Reading the spec is inconclusive since it doesn't match with Scalac's
behavior — see
https://groups.google.com/d/topic/scala-internals/-Rquc2HBYLk/discussion .

ForkTests has the same behavior as CompileSetup.
2013-01-22 09:05:15 -05:00