Expose "full" dexpreopt.config

1. Instead of 'slim' config, use full config even for libs
2. Define moduleJSONConfig for fields which cannot be converted to JSON
field directly(Path type field, ProfileBootListing,
DexPreoptImagesDeps are added in this CL) and exclude fields which is
convertible(DexPreoptImageLocations)

Bug: 158843648
Test: m dist
Change-Id: I3f9192ab5292bd079be1b686bb3b25735a836cbc
This commit is contained in:
Jeongik Cha
2021-04-08 00:00:19 +09:00
parent 5fb28ffdec
commit c6246671ea
4 changed files with 91 additions and 64 deletions

View File

@@ -166,3 +166,20 @@ func TestDexPreoptProfile(t *testing.T) {
t.Errorf("\nwant installs:\n %v\ngot:\n %v", wantInstalls, rule.Installs())
}
}
func TestDexPreoptConfigToJson(t *testing.T) {
config := android.TestConfig("out", nil, "", nil)
ctx := android.BuilderContextForTesting(config)
module := testSystemModuleConfig(ctx, "test")
data, err := moduleConfigToJSON(module)
if err != nil {
t.Errorf("Failed to convert module config data to JSON, %v", err)
}
parsed, err := ParseModuleConfig(ctx, data)
if err != nil {
t.Errorf("Failed to parse JSON, %v", err)
}
before := fmt.Sprintf("%v", module)
after := fmt.Sprintf("%v", parsed)
android.AssertStringEquals(t, "The result must be the same as the original after marshalling and unmarshalling it.", before, after)
}