From 7d33bd6e8e8e14c0d0703c9ca497c045850b9508 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Fri, 6 Nov 2026 03:26:50 +0100 Subject: [PATCH] fix: count core data trees apart from baseline --- scripts/generate_pack.py | 16 +++++++++++++--- tests/test_core_data_trees.py | 25 +++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/scripts/generate_pack.py b/scripts/generate_pack.py index ec84947a7..87e5cadb6 100644 --- a/scripts/generate_pack.py +++ b/scripts/generate_pack.py @@ -608,6 +608,7 @@ def _report_pack_counts( core_count: int, source: str, verification_mode: str, + tree_count: int = 0, ) -> None: """Print the line the pipeline's consistency check reads. @@ -639,10 +640,11 @@ def _report_pack_counts( f"{core_count} from emulator profiles [{verification_mode}]" ) else: - baseline = total_files - core_count + baseline = total_files - core_count - tree_count + trees = f"{tree_count} in core data trees + " if tree_count else "" print( f" {zip_path}: {total_files} files packed ({baseline} baseline + " - f"{core_count} from cores), {', '.join(parts)} [{verification_mode}]" + f"{trees}{core_count} from cores), {', '.join(parts)} [{verification_mode}]" ) def _select_variants( @@ -1314,11 +1316,19 @@ def generate_pack( core_trees = [t for t in core_trees if not _extras_for_systems([t], owned)] elif system_filter: core_trees = _extras_for_systems(core_trees, system_filter) + # Counted apart: the trees a core reads are not on the platform's + # list. MyMinUI declares nothing and its line read "6944 baseline". total_files += _pack_data_directories( zf, pack_systems, data_registry, platform_name, base_dest, flatten, case_insensitive, seen_destinations, seen_lower, + seen_parents, required_only=required_only, + ) + tree_count = _pack_data_directories( + zf, {}, data_registry, platform_name, base_dest, + flatten, case_insensitive, seen_destinations, seen_lower, seen_parents, required_only=required_only, core_trees=core_trees, ) + total_files += tree_count # README.txt for users: personalized step-by-step per platform num_systems = len(pack_systems) @@ -1357,7 +1367,7 @@ def generate_pack( _report_pack_counts( zip_path, file_status, total_files, core_count, source, - verification_mode, + verification_mode, tree_count=tree_count, ) if cut is not None: _report_left_out( diff --git a/tests/test_core_data_trees.py b/tests/test_core_data_trees.py index 6cc8c8ca0..b5681263c 100644 --- a/tests/test_core_data_trees.py +++ b/tests/test_core_data_trees.py @@ -165,5 +165,30 @@ class AmberelecCarriesTheMachines(unittest.TestCase): ) +class TheCountLineKeepsTreesOutOfTheBaseline(unittest.TestCase): + """MyMinUI declares no file, and its pack line read "6944 baseline": the + fbneo trees its cores read were counted as the platform's list.""" + + def test_a_platform_declaring_nothing_has_no_baseline(self) -> None: + import contextlib + import io + + previous = os.getcwd() + os.chdir(REPO_ROOT) + self.addCleanup(os.chdir, previous) + db = common.load_database("database.json") + record = builder.PackRecord() + out = io.StringIO() + with contextlib.redirect_stdout(out): + builder.generate_pack( + "myminui", "platforms", db, "bios", "tmp", offline=True, record=record, + data_registry=common.load_data_dir_registry("platforms"), + ) + line = next(l for l in out.getvalue().splitlines() if "files packed" in l) + self.assertIn("(0 baseline + ", line) + if record.trees: + self.assertIn(f"+ {len(record.trees)} in core data trees + ", line) + + if __name__ == "__main__": unittest.main()