diff options
author | 2020-06-24 19:33:06 +0900 | |
---|---|---|
committer | 2020-06-24 23:00:32 +0900 | |
commit | 580eb4fe38cd71c93b47274f19d9ae3d5d47d4ea (patch) | |
tree | 75c952d4c16ce3a2ba75436023290eed60fe7ea1 /apex/apex_test.go | |
parent | c487ae15ba747ba06c0c72f357228bb933811629 (diff) |
apex: add apex_manifest.pb in file_contexts
apex_manifest.pb is added to payload.img by the build system and is
supposed to be read by apexd during activation.
So, it should be labeled as "system_file" so that apexd can read it
regardless of how file_contexts is defined.
Bug: 159767275
Test: add an apex with file_contexts with everything as vendor_file
apexd should activate the apex.
Change-Id: Ie34eb7ad905828976152d67a7dfabf0add0a5de4
Diffstat (limited to 'apex/apex_test.go')
-rw-r--r-- | apex/apex_test.go | 152 |
1 files changed, 73 insertions, 79 deletions
diff --git a/apex/apex_test.go b/apex/apex_test.go index 38c84891c..910e53a4d 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -3275,110 +3275,104 @@ func TestApexInVariousPartition(t *testing.T) { } } -func TestFileContexts(t *testing.T) { +func TestFileContexts_FindInDefaultLocationIfNotSet(t *testing.T) { ctx, _ := testApex(t, ` - apex { - name: "myapex", - key: "myapex.key", - } + apex { + name: "myapex", + key: "myapex.key", + } - apex_key { - name: "myapex.key", - public_key: "testkey.avbpubkey", - private_key: "testkey.pem", - } + apex_key { + name: "myapex.key", + public_key: "testkey.avbpubkey", + private_key: "testkey.pem", + } `) module := ctx.ModuleForTests("myapex", "android_common_myapex_image") - apexRule := module.Rule("apexRule") - actual := apexRule.Args["file_contexts"] - expected := "system/sepolicy/apex/myapex-file_contexts" - if actual != expected { - t.Errorf("wrong file_contexts. expected %q. actual %q", expected, actual) - } + rule := module.Output("file_contexts") + ensureContains(t, rule.RuleParams.Command, "cat system/sepolicy/apex/myapex-file_contexts") +} +func TestFileContexts_ShouldBeUnderSystemSepolicyForSystemApexes(t *testing.T) { testApexError(t, `"myapex" .*: file_contexts: should be under system/sepolicy`, ` - apex { - name: "myapex", - key: "myapex.key", - file_contexts: "my_own_file_contexts", - } + apex { + name: "myapex", + key: "myapex.key", + file_contexts: "my_own_file_contexts", + } - apex_key { - name: "myapex.key", - public_key: "testkey.avbpubkey", - private_key: "testkey.pem", - } + apex_key { + name: "myapex.key", + public_key: "testkey.avbpubkey", + private_key: "testkey.pem", + } `, withFiles(map[string][]byte{ "my_own_file_contexts": nil, })) +} +func TestFileContexts_ProductSpecificApexes(t *testing.T) { testApexError(t, `"myapex" .*: file_contexts: cannot find`, ` - apex { - name: "myapex", - key: "myapex.key", - product_specific: true, - file_contexts: "product_specific_file_contexts", - } + apex { + name: "myapex", + key: "myapex.key", + product_specific: true, + file_contexts: "product_specific_file_contexts", + } - apex_key { - name: "myapex.key", - public_key: "testkey.avbpubkey", - private_key: "testkey.pem", - } + apex_key { + name: "myapex.key", + public_key: "testkey.avbpubkey", + private_key: "testkey.pem", + } `) - ctx, _ = testApex(t, ` - apex { - name: "myapex", - key: "myapex.key", - product_specific: true, - file_contexts: "product_specific_file_contexts", - } + ctx, _ := testApex(t, ` + apex { + name: "myapex", + key: "myapex.key", + product_specific: true, + file_contexts: "product_specific_file_contexts", + } - apex_key { - name: "myapex.key", - public_key: "testkey.avbpubkey", - private_key: "testkey.pem", - } + apex_key { + name: "myapex.key", + public_key: "testkey.avbpubkey", + private_key: "testkey.pem", + } `, withFiles(map[string][]byte{ "product_specific_file_contexts": nil, })) - module = ctx.ModuleForTests("myapex", "android_common_myapex_image") - apexRule = module.Rule("apexRule") - actual = apexRule.Args["file_contexts"] - expected = "product_specific_file_contexts" - if actual != expected { - t.Errorf("wrong file_contexts. expected %q. actual %q", expected, actual) - } + module := ctx.ModuleForTests("myapex", "android_common_myapex_image") + rule := module.Output("file_contexts") + ensureContains(t, rule.RuleParams.Command, "cat product_specific_file_contexts") +} - ctx, _ = testApex(t, ` - apex { - name: "myapex", - key: "myapex.key", - product_specific: true, - file_contexts: ":my-file-contexts", - } +func TestFileContexts_SetViaFileGroup(t *testing.T) { + ctx, _ := testApex(t, ` + apex { + name: "myapex", + key: "myapex.key", + product_specific: true, + file_contexts: ":my-file-contexts", + } - apex_key { - name: "myapex.key", - public_key: "testkey.avbpubkey", - private_key: "testkey.pem", - } + apex_key { + name: "myapex.key", + public_key: "testkey.avbpubkey", + private_key: "testkey.pem", + } - filegroup { - name: "my-file-contexts", - srcs: ["product_specific_file_contexts"], - } + filegroup { + name: "my-file-contexts", + srcs: ["product_specific_file_contexts"], + } `, withFiles(map[string][]byte{ "product_specific_file_contexts": nil, })) - module = ctx.ModuleForTests("myapex", "android_common_myapex_image") - apexRule = module.Rule("apexRule") - actual = apexRule.Args["file_contexts"] - expected = "product_specific_file_contexts" - if actual != expected { - t.Errorf("wrong file_contexts. expected %q. actual %q", expected, actual) - } + module := ctx.ModuleForTests("myapex", "android_common_myapex_image") + rule := module.Output("file_contexts") + ensureContains(t, rule.RuleParams.Command, "cat product_specific_file_contexts") } func TestApexKeyFromOtherModule(t *testing.T) { |