2009-08-16 20:29:08 +02:00
|
|
|
package xsbt
|
|
|
|
|
|
|
|
|
|
import java.io.File
|
|
|
|
|
|
|
|
|
|
object CacheTest// extends Properties("Cache test")
|
|
|
|
|
{
|
2009-12-12 00:56:09 +01:00
|
|
|
val lengthCache = new File("/tmp/length-cache")
|
|
|
|
|
val cCache = new File("/tmp/c-cache")
|
|
|
|
|
|
2009-08-16 20:29:08 +02:00
|
|
|
import Task._
|
|
|
|
|
import Cache._
|
|
|
|
|
import FileInfo.hash._
|
2009-12-12 00:56:09 +01:00
|
|
|
def test
|
2009-08-16 20:29:08 +02:00
|
|
|
{
|
|
|
|
|
val createTask = Task { new File("test") }
|
|
|
|
|
|
2009-12-12 00:56:09 +01:00
|
|
|
val length = (f: File) => { println("File length: " + f.length); f.length }
|
|
|
|
|
val cachedLength = cached(lengthCache) ( length )
|
|
|
|
|
|
|
|
|
|
val lengthTask = createTask map cachedLength
|
|
|
|
|
|
|
|
|
|
val c = (file: File, len: Long) => { println("File: " + file + ", length: " + len); len :: file :: HNil }
|
|
|
|
|
val cTask = (createTask :: lengthTask :: TNil) map cached(cCache) { case (file :: len :: HNil) => c(file, len) }
|
2009-08-16 20:29:08 +02:00
|
|
|
|
2009-12-12 00:56:09 +01:00
|
|
|
try { TaskRunner(cTask) }
|
2009-08-17 16:51:43 +02:00
|
|
|
catch { case TasksFailed(failures) => failures.foreach(_.exception.printStackTrace) }
|
2009-08-16 20:29:08 +02:00
|
|
|
}
|
|
|
|
|
}
|