blob: 076ec4b54701c17ffa9a11e28ceea5c3a9f682bb [file] [log] [blame]
Lukacs T. Berki3b730c42021-04-08 13:21:13 +02001#!/bin/bash -eu
2
Rupert Shuttleworth2a4fc3e2021-04-21 07:10:09 -04003set -o pipefail
4
Lukacs T. Berki3b730c42021-04-08 13:21:13 +02005# This test exercises mixed builds where Soong and Bazel cooperate in building
6# Android.
7#
8# When the execroot is deleted, the Bazel server process will automatically
9# terminate itself.
10
11source "$(dirname "$0")/lib.sh"
12
Lukacs T. Berki3b730c42021-04-08 13:21:13 +020013function test_bazel_smoke {
14 setup
Lukacs T. Berki686965b2021-04-14 16:40:03 +020015 create_mock_bazel
Lukacs T. Berki3b730c42021-04-08 13:21:13 +020016
Sam Delmerico73d6bcc2022-09-20 15:31:37 -040017 run_soong bp2build
18
19 run_bazel info --config=bp2build
Lukacs T. Berki3b730c42021-04-08 13:21:13 +020020}
21
Lukacs T. Berkic541cd22022-10-26 07:26:50 +000022function test_add_irrelevant_file {
23 setup
24 create_mock_bazel
25
26 mkdir -p soong_tests/a/b
27 touch soong_tests/a/b/c.txt
28 cat > soong_tests/a/b/Android.bp <<'EOF'
29filegroup {
30 name: "c",
31 srcs: ["c.txt"],
32 bazel_module: { bp2build_available: true },
33}
34EOF
35
36 run_soong --bazel-mode nothing
37
38 if [[ ! -e out/soong/bp2build/soong_tests/a/b/BUILD.bazel ]]; then
39 fail "BUILD.bazel not created"
40 fi
41
42 if [[ ! -e out/soong/build.ninja ]]; then
43 fail "build.ninja not created"
44 fi
45
46 local mtime_build1=$(stat -c "%y" out/soong/bp2build/soong_tests/a/b/BUILD.bazel)
47 local mtime_ninja1=$(stat -c "%y" out/soong/build.ninja)
48
49 touch soong_tests/a/irrelevant.txt
50
51 run_soong --bazel-mode nothing
52 local mtime_build2=$(stat -c "%y" out/soong/bp2build/soong_tests/a/b/BUILD.bazel)
53 local mtime_ninja2=$(stat -c "%y" out/soong/build.ninja)
54
55 if [[ "$mtime_build1" != "$mtime_build2" ]]; then
56 fail "BUILD.bazel was generated"
57 fi
58
59 if [[ "$mtime_ninja1" != "$mtime_ninja2" ]]; then
60 fail "build.ninja was regenerated"
61 fi
62
63 if [[ ! -e out/soong/workspace/soong_tests/a/irrelevant.txt ]]; then
64 fail "new file was not symlinked"
65 fi
66}
67
68test_add_irrelevant_file
Lukacs T. Berki3b730c42021-04-08 13:21:13 +020069test_bazel_smoke