1
1
mirror of https://github.com/OpenDiablo2/OpenDiablo2 synced 2025-02-10 10:36:42 -05:00
OpenDiablo2/d2core/d2asset/asset_manager_test.go
gravestench 8b1b6b9adc more work on ecs implementation
* removed d2common/d2scene, was not the right way to go.
* added components for animation, scale, main viewport, viewport filter
* added interface for scenes, which are extensions of akara.System
* BootStrap is now AppBootstrap, common to game clients and headless
server
* added generic BasicScene struct for common scene functionality
* added game object factory as a system, with single sprite factory
* added update counter system, shows how many times the world updates
per second
* integration test is now the game client test
2020-12-07 12:44:11 -08:00

67 lines
1.7 KiB
Go

package d2asset
import (
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2fileformats/d2tbl"
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2util"
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2records"
"testing"
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2cache"
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2loader"
)
func TestAssetManager_LoadFile_NoSource(t *testing.T) {
loader, err := d2loader.NewLoader(d2util.LogLevelDefault)
if err != nil {
t.Error(err)
}
records, err := d2records.NewRecordManager(d2util.LogLevelDebug)
if err != nil {
t.Error(err)
}
am := &AssetManager{
Logger: d2util.NewLogger(),
Loader: loader,
tables: make([]d2tbl.TextDictionary, 0),
animations: d2cache.CreateCache(animationBudget),
fonts: d2cache.CreateCache(fontBudget),
palettes: d2cache.CreateCache(paletteBudget),
transforms: d2cache.CreateCache(paletteTransformBudget),
Records: records,
}
_, err = am.LoadFile("an/invalid/path")
if err == nil {
t.Error("asset manager loaded a file for which there is no source")
}
}
func BenchmarkAssetManager_LoadFile_NoSource(b *testing.B) {
loader, err := d2loader.NewLoader(d2util.LogLevelDefault)
if err != nil {
b.Error(err)
}
records, err := d2records.NewRecordManager(d2util.LogLevelDebug)
if err != nil {
b.Error(err)
}
am := &AssetManager{
Logger: d2util.NewLogger(),
Loader: loader,
tables: make([]d2tbl.TextDictionary, 0),
animations: d2cache.CreateCache(animationBudget),
fonts: d2cache.CreateCache(fontBudget),
palettes: d2cache.CreateCache(paletteBudget),
transforms: d2cache.CreateCache(paletteTransformBudget),
Records: records,
}
for idx := 0; idx < b.N; idx++ {
_, _ = am.LoadFile("an/invalid/path")
}
}