make timings testing more robust

ci servers are sometimes busy, and then it is failing
This commit is contained in:
Bixilon 2023-03-18 14:05:52 +01:00
parent 10ffbb7f29
commit 5ff22f49c8
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
2 changed files with 11 additions and 4 deletions

View File

@ -20,7 +20,9 @@ import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.asser
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertPacket
import de.bixilon.minosoft.protocol.packets.c2s.play.PlayerActionC2SP
import de.bixilon.minosoft.protocol.packets.c2s.play.move.SwingArmC2SP
import org.testng.SkipException
import org.testng.annotations.Test
import kotlin.system.measureTimeMillis
@Test(groups = ["input"])
class BreakHandlerInputTest {
@ -43,13 +45,15 @@ class BreakHandlerInputTest {
val handler = BreakHandler(connection.camera.interactions)
BreakHandlerTest.createTarget(connection, RockBlock.Stone.identifier, 1.0)
Thread.currentThread().priority = Thread.MAX_PRIORITY
handler.press() // key down
connection.assertPacket(PlayerActionC2SP::class.java)
connection.assertPacket(SwingArmC2SP::class.java)
handler.release() // key not down anymore
connection.assertPacket(PlayerActionC2SP::class.java)
Thread.sleep(55)
if (measureTimeMillis { Thread.sleep(55) } > 60) throw SkipException("system busy")
connection.assertNoPacket()
}
@ -60,17 +64,19 @@ class BreakHandlerInputTest {
BreakHandlerTest.createTarget(connection, RockBlock.Stone.identifier, 1.0)
Thread.currentThread().priority = Thread.MAX_PRIORITY
handler.press() // key down
connection.assertPacket(PlayerActionC2SP::class.java)
connection.assertPacket(SwingArmC2SP::class.java)
connection.assertNoPacket()
Thread.sleep(20)
if (measureTimeMillis { Thread.sleep(20) } > 30) throw SkipException("system busy")
connection.assertNoPacket()
Thread.sleep(35)
if (measureTimeMillis { Thread.sleep(35) } > 45) throw SkipException("system busy")
connection.assertPacket(SwingArmC2SP::class.java)
connection.assertNoPacket()
Thread.sleep(50)
if (measureTimeMillis { Thread.sleep(50) } > 55) throw SkipException("system busy")
connection.assertPacket(SwingArmC2SP::class.java)
connection.assertNoPacket()
handler.release()

View File

@ -48,6 +48,7 @@ class SequencedExecutorTest {
// connection.world[Vec3i(1, 1, 1)] = state // <- set the same block -> revert/cancel
executor.finish()
Thread.sleep(10) // async, wait for thread to complete
assertEquals(connection.world[Vec3i(1, 1, 1)], state)
}