blob: f82d5448bfc89e4928ea9a542fd0ab34e8d62e4b [file] [log] [blame]
Pete Bentley74c9bba2019-08-16 20:25:06 +01001// Copyright 2019 Google Inc. All rights reserved.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package cc
16
17import (
Liz Kammer07bc5f92021-04-08 13:28:56 -040018 "android/soong/android"
Pete Bentley74c9bba2019-08-16 20:25:06 +010019 "testing"
20)
21
22func TestLinkerScript(t *testing.T) {
Pete Bentley74c9bba2019-08-16 20:25:06 +010023 t.Run("script", func(t *testing.T) {
24 testCc(t, `
25 cc_object {
26 name: "foo",
27 srcs: ["baz.o"],
28 linker_script: "foo.lds",
29 }`)
30 })
Liz Kammer07bc5f92021-04-08 13:28:56 -040031}
Pete Bentley74c9bba2019-08-16 20:25:06 +010032
Liz Kammer07bc5f92021-04-08 13:28:56 -040033func TestCcObjectWithBazel(t *testing.T) {
34 bp := `
35cc_object {
36 name: "foo",
37 srcs: ["baz.o"],
38 bazel_module: { label: "//foo/bar:bar" },
39}`
40 config := TestConfig(t.TempDir(), android.Android, nil, bp, nil)
41 config.BazelContext = android.MockBazelContext{
42 OutputBaseDir: "outputbase",
43 LabelToOutputFiles: map[string][]string{
44 "//foo/bar:bar": []string{"bazel_out.o"}}}
45 ctx := testCcWithConfig(t, config)
46
47 module := ctx.ModuleForTests("foo", "android_arm_armv7-a-neon").Module()
48 outputFiles, err := module.(android.OutputFileProducer).OutputFiles("")
49 if err != nil {
50 t.Errorf("Unexpected error getting cc_object outputfiles %s", err)
51 }
52
53 expectedOutputFiles := []string{"outputbase/execroot/__main__/bazel_out.o"}
54 android.AssertDeepEquals(t, "output files", expectedOutputFiles, outputFiles.Strings())
Pete Bentley74c9bba2019-08-16 20:25:06 +010055}