Skip to content

Commit

Permalink
WIP 49 - correct positions of build script files
Browse files Browse the repository at this point in the history
  • Loading branch information
bishabosha committed Sep 11, 2024
1 parent 49e1ffc commit 37ba541
Show file tree
Hide file tree
Showing 9 changed files with 418 additions and 136 deletions.
27 changes: 20 additions & 7 deletions integration/failure/compile-error/src/CompileErrorTests.scala
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,26 @@ object CompileErrorTests extends IntegrationTestSuite {
test {
val res = eval("foo.scalaVersion")

assert(res.isSuccess == false)
assert(res.err.contains("""bar.mill:15:9: not found: value doesntExist"""))
assert(res.err.contains("""println(doesntExist)"""))
assert(res.err.contains("""qux.mill:4:34: type mismatch;"""))
assert(res.err.contains(
"""build.mill:9:5: value noSuchMethod is not a member"""
))
assert(!res.isSuccess)

locally {
assert(res.err.contains("""bar.mill:15:9"""))
assert(res.err.contains("""println(doesntExist)"""))
assert(res.err.contains("""Not found: doesntExist"""))
}

locally {
assert(res.err.contains("""qux.mill:4:34"""))
assert(res.err.contains("""myMsg.substring("0")"""))
assert(res.err.contains("""Found: ("0" : String)"""))
assert(res.err.contains("""Required: Int"""))
}

locally {
assert(res.err.contains("""build.mill:9:5"""))
assert(res.err.contains("""foo.noSuchMethod"""))
assert(res.err.contains("""value noSuchMethod is not a member"""))
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,36 +11,69 @@ object RootModuleCompileErrorTests extends IntegrationTestSuite {
test {
val res = eval("foo.scalaVersion")

assert(res.isSuccess == false)
// For now these error messages still show generated/mangled code; not ideal, but it'll do
assert(res.err.contains("""build.mill:6:42: not found: type UnknownRootModule"""))
assert(res.err.contains("""class package_ extends RootModule with UnknownRootModule {"""))
assert(res.err.replace('\\', '/').contains(
"""foo/package.mill:6:59: not found: type UnknownFooModule"""
))
assert(res.err.contains(
"""class package_ extends RootModule.Subfolder("foo") with UnknownFooModule {"""
))

assert(res.err.contains("""build.mill:7:22: not found: value unknownRootInternalDef"""))
assert(res.err.contains("""def scalaVersion = unknownRootInternalDef"""))
assert(res.err.contains("""build.mill:4:23: not found: type UnknownBeforeModule"""))
assert(res.err.contains("""object before extends UnknownBeforeModule"""))
assert(res.err.contains("""build.mill:10:22: not found: type UnknownAfterModule"""))
assert(res.err.contains("""object after extends UnknownAfterModule"""))

assert(res.err.replace('\\', '/').contains(
"""foo/package.mill:7:22: not found: value unknownFooInternalDef"""
))
assert(res.err.contains("""def scalaVersion = unknownFooInternalDef"""))
assert(res.err.replace('\\', '/').contains(
"""foo/package.mill:4:23: not found: type UnknownBeforeFooModule"""
))
assert(res.err.contains("""object before extends UnknownBeforeFooModule"""))
assert(res.err.replace('\\', '/').contains(
"""foo/package.mill:10:22: not found: type UnknownAfterFooModule"""
))
assert(res.err.contains("""object after extends UnknownAfterFooModule"""))
assert(!res.isSuccess)

locally {
// For now these error messages still show generated/mangled code; not ideal, but it'll do
assert(res.err.contains("""build.mill:6:42"""))
assert(res.err.contains("""Not found: type UnknownRootModule"""))
assert(res.err.contains("""class package_ extends RootModule with UnknownRootModule {"""))
assert(res.err.contains(""" ^^^^^^^^^^^^^^^^^"""))
}

locally {
// For now these error messages still show generated/mangled code; not ideal, but it'll do
assert(res.err.replace('\\', '/').contains("""foo/package.mill:6:59"""))
assert(res.err.contains("""Not found: type UnknownFooModule"""))
assert(res.err.contains(
"""class package_ extends RootModule.Subfolder("foo") with UnknownFooModule {"""
))
assert(res.err.contains(
""" ^^^^^^^^^^^^^^^^"""
))
}

locally {
assert(res.err.contains("""build.mill:7:22"""))
assert(res.err.contains("""Not found: unknownRootInternalDef"""))
assert(res.err.contains("""def scalaVersion = unknownRootInternalDef"""))
assert(res.err.contains(""" ^^^^^^^^^^^^^^^^^^^^^^"""))
}

locally {
assert(res.err.contains("""build.mill:4:23"""))
assert(res.err.contains("""Not found: type UnknownBeforeModule"""))
assert(res.err.contains("""object before extends UnknownBeforeModule"""))
assert(res.err.contains(""" ^^^^^^^^^^^^^^^^^^^"""))
}

locally {
assert(res.err.contains("""build.mill:10:22"""))
assert(res.err.contains("""Not found: type UnknownAfterModule"""))
assert(res.err.contains("""object after extends UnknownAfterModule"""))
assert(res.err.contains(""" ^^^^^^^^^^^^^^^^^^"""))
}

locally {
assert(res.err.replace('\\', '/').contains("""foo/package.mill:7:22"""))
assert(res.err.contains("""Not found: unknownFooInternalDef"""))
assert(res.err.contains("""def scalaVersion = unknownFooInternalDef"""))
assert(res.err.contains(""" ^^^^^^^^^^^^^^^^^^^^^"""))
}

locally {
assert(res.err.replace('\\', '/').contains("""foo/package.mill:4:23"""))
assert(res.err.contains("""Not found: type UnknownBeforeFooModule"""))
assert(res.err.contains("""object before extends UnknownBeforeFooModule"""))
assert(res.err.contains(""" ^^^^^^^^^^^^^^^^^^^^^^"""))
}

locally {
assert(res.err.replace('\\', '/').contains("""foo/package.mill:10:22"""))
assert(res.err.contains("""Not found: type UnknownAfterFooModule"""))
assert(res.err.contains("""object after extends UnknownAfterFooModule"""))
assert(res.err.contains(""" ^^^^^^^^^^^^^^^^^^^^^"""))
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ object SubfolderHelperModuleCollisionTests extends IntegrationTestSuite {
val res = eval(("resolve", "_"))
assert(res.isSuccess == false)
// Not a great error message but it will have to do for now
assert(res.err.contains("sub is already defined as object sub"))
assert(res.err.contains("Trying to define package with same name as class sub"))
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ object SubfolderMissingBuildPrefix extends IntegrationTestSuite {

test("success") {
val res = eval(("resolve", "_"))
assert(res.isSuccess == false)
assert(res.err.contains("object y is not a member of package build_.sub"))
assert(!res.isSuccess)
assert(res.err.contains("value y is not a member of build_.sub"))
}
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package build
import mill._
import mill.*

def invalidTarget = 123


object `package` extends RootModule
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import mill.testkit.IntegrationTestSuite
import utest.{assert, *}

object ThingsOutsideTopLevelModuleTests extends IntegrationTestSuite {
val tests: Tests = Tests {
initWorkspace()

test("success") {
val res = eval(("resolve", "_"))
assert(res.isSuccess)
}
}
}
9 changes: 1 addition & 8 deletions scalalib/src/mill/scalalib/Assembly.scala
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,8 @@ object Assembly {

private object Streamable {
def bytes(is: InputStream): Array[Byte] = {
val buffer = new Array[Byte](8192)
val out = new java.io.ByteArrayOutputStream
var read = 0
while ({
read = is.read(buffer)
read != -1
}) {
out.write(buffer, 0, read)
}
IO.stream(is, out)
out.close()
out.toByteArray
}
Expand Down
Loading

0 comments on commit 37ba541

Please sign in to comment.