Asset-owned topdata

This commit is contained in:
2026-05-23 00:29:04 +02:00
parent 82bd075ae4
commit 44e6fab372
4 changed files with 168 additions and 4 deletions
+42
View File
@@ -1092,6 +1092,13 @@ func TestValidateLayoutAcceptsGeneratedTopData2DAConfig(t *testing.T) {
Derive: AutogenDeriveConfig{Kind: "model_stem", GroupFrom: "first_path_segment"},
},
},
{
ID: "static_topdata",
Source: "topdata",
Output: "{paths.cache}/generated-assets/static-topdata-2da",
IncludeDatasets: []string{"tailmodel", "wingmodel"},
PackageRoot: "part",
},
},
},
},
@@ -1106,6 +1113,41 @@ func TestValidateLayoutAcceptsGeneratedTopData2DAConfig(t *testing.T) {
}
}
func TestValidateLayoutRejectsUnsupportedGeneratedTopDataAutogenMode(t *testing.T) {
root := t.TempDir()
mkdirAll(t, filepath.Join(root, "assets"))
mkdirAll(t, filepath.Join(root, "build"))
proj := Project{
Root: root,
Config: Config{
Module: ModuleConfig{Name: "Test", ResRef: "testmod"},
Paths: PathConfig{Assets: "assets"},
Generated: GeneratedConfig{
TopData2DA: []GeneratedTopData2DAConfig{
{
ID: "bad",
Source: "topdata",
Output: "{paths.cache}/generated-assets/bad-2da",
IncludeDatasets: []string{"tailmodel"},
PackageRoot: "part",
Autogen: AutogenConsumerConfig{
Mode: "unknown_rows",
Root: "part",
Include: []string{"**/*.mdl"},
Derive: AutogenDeriveConfig{Kind: "model_stem", GroupFrom: "first_path_segment"},
},
},
},
},
},
}
err := proj.ValidateLayout()
if err == nil || !strings.Contains(err.Error(), `generated_assets.topdata_2da[0].autogen.mode "unknown_rows" is not supported`) {
t.Fatalf("expected unsupported generated autogen mode validation error, got %v", err)
}
}
func TestValidateLayoutRejectsEscapingGeneratedTopData2DAConfig(t *testing.T) {
root := t.TempDir()
mkdirAll(t, filepath.Join(root, "assets"))