blob: eb0d8c8f701a9a86bd8ac2c7e2ccee897a2f27fc [file] [log] [blame]
Jaewoong Jung5f3fb4b2018-12-13 15:01:46 -08001// Copyright 2018 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 bpf
16
17import (
18 "io/ioutil"
19 "os"
20 "testing"
21
22 "android/soong/android"
Colin Cross815daf92019-05-14 16:05:20 -070023 "android/soong/cc"
Jaewoong Jung5f3fb4b2018-12-13 15:01:46 -080024)
25
26var buildDir string
27
28func setUp() {
29 var err error
30 buildDir, err = ioutil.TempDir("", "genrule_test")
31 if err != nil {
32 panic(err)
33 }
34}
35
36func tearDown() {
37 os.RemoveAll(buildDir)
38}
39
40func TestMain(m *testing.M) {
41 run := func() int {
42 setUp()
43 defer tearDown()
44
45 return m.Run()
46 }
47
48 os.Exit(run())
Paul Duffin12c7eb82021-02-24 18:51:54 +000049
Jaewoong Jung5f3fb4b2018-12-13 15:01:46 -080050}
51
Paul Duffin12c7eb82021-02-24 18:51:54 +000052var bpfFactory = android.NewFixtureFactory(
53 &buildDir,
54 cc.PrepareForTestWithCcDefaultModules,
55 android.FixtureMergeMockFs(
56 map[string][]byte{
57 "bpf.c": nil,
58 "BpfTest.cpp": nil,
59 },
60 ),
61 PrepareForTestWithBpf,
62)
Jaewoong Jung5f3fb4b2018-12-13 15:01:46 -080063
64func TestBpfDataDependency(t *testing.T) {
Jaewoong Jung5f3fb4b2018-12-13 15:01:46 -080065 bp := `
66 bpf {
67 name: "bpf.o",
68 srcs: ["bpf.c"],
69 }
70
71 cc_test {
72 name: "vts_test_binary_bpf_module",
73 srcs: ["BpfTest.cpp"],
74 data: [":bpf.o"],
Colin Cross815daf92019-05-14 16:05:20 -070075 gtest: false,
Jaewoong Jung5f3fb4b2018-12-13 15:01:46 -080076 }
77 `
78
Paul Duffin12c7eb82021-02-24 18:51:54 +000079 bpfFactory.RunTestWithBp(t, bp)
Jaewoong Jung5f3fb4b2018-12-13 15:01:46 -080080
81 // We only verify the above BP configuration is processed successfully since the data property
82 // value is not available for testing from this package.
83 // TODO(jungjw): Add a check for data or move this test to the cc package.
84}