This directory contains data that is used to validate the script at //build/sdk/generate_prebuild_idk
, which generates an IDK that follows the official IDK layout based on prebuild metadata generated by GN gen.
This directory contains the following:
test_collection.json
: A fixed and minimal prebuild metadata file similar to that generated by GN gen. Each atom type is included at least once.
input_fuchsia_dir/
: Files from a fuchsia.git workspace that are used during generation by generate_prebuild_idk
or because they are referenced by atoms in test_collection.json
. The out/notdefault
directory is also required to exist in order for the script to be able to open the relative path ../../sdk/version_history.json
.
Apart from these metadata files, all other files should be symlinks to files that exist in the top-level source_files
or ninja_artifacts
directories, using relative target paths.
expected_idk/
: A directory containing the expected (golden) output IDK that the processing script is supposed to generate when parsing the content of input_fuchsia_dir
.
Notes about the packages:
Packages are normally only built in sub-builds. In the test collection, packages for a NEXT x64 sub-build are included alongside other atoms from a base PLATFORM build.
Not all blobs specified in the package manifests are included. The rest will be broken symlinks. Specifically, only two blobs for fake-build-info are included.
fake-build-info and intl_property_manager have overlapping blobs, which is an important test case.
The //build/sdk:generate_prebuild_idk_integration_test
target can be built to run, at build time, the validation script, which invokes generate_prebuild_idk
to generate a new output IDK, and compare its results with the content of expected_idk
.
For debugging, it is possible to invoke the script manually by doing:
python3 build/sdk/generate_prebuild_idk_validation.py \ --build-dir /tmp/idk_validation