mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2024-11-05 01:26:20 +00:00
Try to remove some flakiness in tests
- Make assertions a little more relaxed - Increase timeouts of computer tests (again :D:). - Log where we're up to in computer tests, to make tracking stalls a little easier
This commit is contained in:
parent
431e4c9419
commit
24ed0ca723
@ -85,7 +85,7 @@ public class ComputerThreadTest
|
|||||||
assertEquals( budget, TimeUnit.MILLISECONDS.toNanos( 25 ), "Budget should be 25ms" );
|
assertEquals( budget, TimeUnit.MILLISECONDS.toNanos( 25 ), "Budget should be 25ms" );
|
||||||
|
|
||||||
long delay = ConcurrentHelpers.waitUntil( timeout::isPaused );
|
long delay = ConcurrentHelpers.waitUntil( timeout::isPaused );
|
||||||
assertThat( "Paused within 25ms", delay * 1e-9, closeTo( 0.03, 0.015 ) );
|
assertThat( "Paused within 25ms", delay * 1e-9, closeTo( 0.03, 0.02 ) );
|
||||||
|
|
||||||
computer.shutdown();
|
computer.shutdown();
|
||||||
return MachineResult.OK;
|
return MachineResult.OK;
|
||||||
|
@ -23,9 +23,11 @@ object Times {
|
|||||||
* Custom timeouts for various test types.
|
* Custom timeouts for various test types.
|
||||||
*/
|
*/
|
||||||
object Timeouts {
|
object Timeouts {
|
||||||
const val COMPUTER_TIMEOUT: Int = 200
|
private const val SECOND: Int = 20
|
||||||
|
|
||||||
const val CLIENT_TIMEOUT: Int = 400
|
const val COMPUTER_TIMEOUT: Int = SECOND * 15
|
||||||
|
|
||||||
|
const val CLIENT_TIMEOUT: Int = SECOND * 20
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
package dan200.computercraft.ingame.mod;
|
package dan200.computercraft.ingame.mod;
|
||||||
|
|
||||||
import com.google.common.io.MoreFiles;
|
import com.google.common.io.MoreFiles;
|
||||||
|
import com.google.common.io.RecursiveDeleteOption;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.FileVisitResult;
|
import java.nio.file.FileVisitResult;
|
||||||
@ -55,7 +56,7 @@ public final class Copier extends SimpleFileVisitor<Path>
|
|||||||
|
|
||||||
public static void replicate( Path from, Path to, Predicate<Path> check ) throws IOException
|
public static void replicate( Path from, Path to, Predicate<Path> check ) throws IOException
|
||||||
{
|
{
|
||||||
if( Files.exists( to ) ) MoreFiles.deleteRecursively( to );
|
if( Files.exists( to ) ) MoreFiles.deleteRecursively( to, RecursiveDeleteOption.ALLOW_INSECURE );
|
||||||
Files.walkFileTree( from, new Copier( from, to, check ) );
|
Files.walkFileTree( from, new Copier( from, to, check ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,14 @@ if label == nil then return test.fail("Label a computer to use it.") end
|
|||||||
local fn, err = loadfile("tests/" .. label .. ".lua", nil, _ENV)
|
local fn, err = loadfile("tests/" .. label .. ".lua", nil, _ENV)
|
||||||
if not fn then return test.fail(err) end
|
if not fn then return test.fail(err) end
|
||||||
|
|
||||||
|
local source = "@" .. label .. ".lua"
|
||||||
|
debug.sethook(function()
|
||||||
|
local i = debug.getinfo(2, "lS")
|
||||||
|
if i.source == source and i.currentline then
|
||||||
|
test.log("At line " .. i.currentline)
|
||||||
|
end
|
||||||
|
end, "l")
|
||||||
|
|
||||||
local ok, err = pcall(fn)
|
local ok, err = pcall(fn)
|
||||||
if not ok then return test.fail(err) end
|
if not ok then return test.fail(err) end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user