123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- // Copyright 2021 Google Inc. All rights reserved.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- package cc
- import (
- _ "fmt"
- _ "sort"
- "testing"
- "android/soong/android"
- "android/soong/multitree"
- )
- func TestCcApiStubLibraryOutputFiles(t *testing.T) {
- bp := `
- cc_api_stub_library {
- name: "foo",
- symbol_file: "foo.map.txt",
- first_version: "29",
- }
- `
- result := prepareForCcTest.RunTestWithBp(t, bp)
- outputs := result.ModuleForTests("foo", "android_arm64_armv8-a_shared").AllOutputs()
- expected_file_suffixes := []string{".c", "stub.map", ".o", ".so"}
- for _, expected_file_suffix := range expected_file_suffixes {
- android.AssertBoolEquals(t, expected_file_suffix+" file not found in output", true, android.SuffixInList(outputs, expected_file_suffix))
- }
- }
- func TestCcApiStubLibraryVariants(t *testing.T) {
- bp := `
- cc_api_stub_library {
- name: "foo",
- symbol_file: "foo.map.txt",
- first_version: "29",
- }
- `
- result := prepareForCcTest.RunTestWithBp(t, bp)
- variants := result.ModuleVariantsForTests("foo")
- expected_variants := []string{"29", "30", "S", "Tiramisu"} //TODO: make this test deterministic by using fixtures
- for _, expected_variant := range expected_variants {
- android.AssertBoolEquals(t, expected_variant+" variant not found in foo", true, android.SubstringInList(variants, expected_variant))
- }
- }
- func TestCcLibraryUsesCcApiStubLibrary(t *testing.T) {
- bp := `
- cc_api_stub_library {
- name: "foo",
- symbol_file: "foo.map.txt",
- first_version: "29",
- }
- cc_library {
- name: "foo_user",
- shared_libs: [
- "foo#29",
- ],
- }
- `
- prepareForCcTest.RunTestWithBp(t, bp)
- }
- func TestApiSurfaceOutputs(t *testing.T) {
- bp := `
- api_surface {
- name: "mysdk",
- contributions: [
- "foo",
- ],
- }
- cc_api_contribution {
- name: "foo",
- symbol_file: "foo.map.txt",
- first_version: "29",
- }
- `
- result := android.GroupFixturePreparers(
- prepareForCcTest,
- multitree.PrepareForTestWithApiSurface,
- ).RunTestWithBp(t, bp)
- mysdk := result.ModuleForTests("mysdk", "")
- actual_surface_inputs := mysdk.Rule("phony").BuildParams.Inputs.Strings()
- expected_file_suffixes := []string{"mysdk/foo/foo.map.txt"}
- for _, expected_file_suffix := range expected_file_suffixes {
- android.AssertBoolEquals(t, expected_file_suffix+" file not found in input", true, android.SuffixInList(actual_surface_inputs, expected_file_suffix))
- }
- // check args/inputs to rule
- /*api_surface_gen_rule_args := result.ModuleForTests("mysdk", "").Rule("genApiSurfaceBuildFiles").Args
- android.AssertStringEquals(t, "name", "foo.mysdk", api_surface_gen_rule_args["name"])
- android.AssertStringEquals(t, "symbol_file", "foo.map.txt", api_surface_gen_rule_args["symbol_file"])*/
- }
|