Foundation for the aego engine. core/ errs, log, handle arena, mathx, clock, stats platform SDL3 backend plus a headless one, input state, events gpu device abstraction with gl33 and null backends vfs scheme-based virtual filesystem with overlay mounts engine builder, module registry, phase-ordered system loop, jobs demos basic, resize, input, headless; sandbox driver OpenGL bindings are generated into gpu/gl33/gl by tools/gen-gl.sh, so the module has no external dependencies.
20 lines
395 B
Go
20 lines
395 B
Go
package integration
|
|
|
|
import "testing"
|
|
|
|
func TestZeroAllocationsPerFrame(t *testing.T) {
|
|
e, demo := newEngine(t)
|
|
defer e.Close()
|
|
for i := 0; i < 60; i++ {
|
|
if !e.Step(demo) {
|
|
t.Fatalf("warmup stopped at frame %d: %v", i, e.Err())
|
|
}
|
|
}
|
|
allocs := testing.AllocsPerRun(540, func() {
|
|
e.Step(demo)
|
|
})
|
|
if allocs != 0 {
|
|
t.Fatalf("frame allocates %.1f objects after warmup", allocs)
|
|
}
|
|
}
|