Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1deadca3 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Have bp2build generate BUILD.bazel instead of generating BUILD."

parents fe027e0e 413a7a97
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -19,7 +19,10 @@ var (
	// be preferred for use within a Bazel build.

	// The file name used for automatically generated files.
	GeneratedBuildFileName = "BUILD"
	GeneratedBuildFileName = "BUILD.bazel"

	// The file name used for hand-crafted build targets.
	// NOTE: It is okay that this matches GeneratedBuildFileName, since we generate BUILD files in a different directory to source files
	// FIXME: Because there are hundreds of existing BUILD.bazel files in the AOSP tree, we should pick another name here, like BUILD.android
	HandcraftedBuildFileName = "BUILD.bazel"
)
+3 −3
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ func TestCreateBazelFiles_QueryView_AddsTopLevelFiles(t *testing.T) {
	expectedFilePaths := []bazelFilepath{
		{
			dir:      "",
			basename: "BUILD",
			basename: "BUILD.bazel",
		},
		{
			dir:      "",
@@ -37,7 +37,7 @@ func TestCreateBazelFiles_QueryView_AddsTopLevelFiles(t *testing.T) {
		},
		{
			dir:      bazelRulesSubDir,
			basename: "BUILD",
			basename: "BUILD.bazel",
		},
		{
			dir:      bazelRulesSubDir,
@@ -69,7 +69,7 @@ func TestCreateBazelFiles_QueryView_AddsTopLevelFiles(t *testing.T) {

		if actualFile.Dir != expectedFile.dir || actualFile.Basename != expectedFile.basename {
			t.Errorf("Did not find expected file %s/%s", actualFile.Dir, actualFile.Basename)
		} else if actualFile.Basename == "BUILD" || actualFile.Basename == "WORKSPACE" {
		} else if actualFile.Basename == "BUILD.bazel" || actualFile.Basename == "WORKSPACE" {
			if actualFile.Contents != "" {
				t.Errorf("Expected %s to have no content.", actualFile)
			}
+18 −16
Original line number Diff line number Diff line
@@ -7,6 +7,8 @@ set -o pipefail

source "$(dirname "$0")/lib.sh"

readonly GENERATED_BUILD_FILE_NAME="BUILD.bazel"

function test_smoke {
  setup
  run_soong
@@ -505,8 +507,8 @@ filegroup {
EOF

  GENERATE_BAZEL_FILES=1 run_soong
  [[ -e out/soong/bp2build/a/BUILD ]] || fail "a/BUILD not created"
  [[ -L out/soong/workspace/a/BUILD ]] || fail "a/BUILD not symlinked"
  [[ -e out/soong/bp2build/a/${GENERATED_BUILD_FILE_NAME} ]] || fail "a/${GENERATED_BUILD_FILE_NAME} not created"
  [[ -L out/soong/workspace/a/${GENERATED_BUILD_FILE_NAME} ]] || fail "a/${GENERATED_BUILD_FILE_NAME} not symlinked"

  mkdir -p b
  touch b/b.txt
@@ -519,8 +521,8 @@ filegroup {
EOF

  GENERATE_BAZEL_FILES=1 run_soong
  [[ -e out/soong/bp2build/b/BUILD ]] || fail "a/BUILD not created"
  [[ -L out/soong/workspace/b/BUILD ]] || fail "a/BUILD not symlinked"
  [[ -e out/soong/bp2build/b/${GENERATED_BUILD_FILE_NAME} ]] || fail "a/${GENERATED_BUILD_FILE_NAME} not created"
  [[ -L out/soong/workspace/b/${GENERATED_BUILD_FILE_NAME} ]] || fail "a/${GENERATED_BUILD_FILE_NAME} not symlinked"
}

function test_bp2build_null_build {
@@ -551,11 +553,11 @@ filegroup {
EOF

  GENERATE_BAZEL_FILES=1 run_soong
  grep -q a1.txt out/soong/bp2build/a/BUILD || fail "a1.txt not in BUILD file"
  grep -q a1.txt "out/soong/bp2build/a/${GENERATED_BUILD_FILE_NAME}" || fail "a1.txt not in ${GENERATED_BUILD_FILE_NAME} file"

  touch a/a2.txt
  GENERATE_BAZEL_FILES=1 run_soong
  grep -q a2.txt out/soong/bp2build/a/BUILD || fail "a2.txt not in BUILD file"
  grep -q a2.txt "out/soong/bp2build/a/${GENERATED_BUILD_FILE_NAME}" || fail "a2.txt not in ${GENERATED_BUILD_FILE_NAME} file"
}

function test_dump_json_module_graph() {
@@ -583,8 +585,8 @@ EOF
  GENERATE_BAZEL_FILES=1 run_soong
  [[ -e out/soong/workspace ]] || fail "Bazel workspace not created"
  [[ -d out/soong/workspace/a/b ]] || fail "module directory not a directory"
  [[ -L out/soong/workspace/a/b/BUILD ]] || fail "BUILD file not symlinked"
  [[ "$(readlink -f out/soong/workspace/a/b/BUILD)" =~ bp2build/a/b/BUILD$ ]] \
  [[ -L "out/soong/workspace/a/b/${GENERATED_BUILD_FILE_NAME}" ]] || fail "${GENERATED_BUILD_FILE_NAME} file not symlinked"
  [[ "$(readlink -f out/soong/workspace/a/b/${GENERATED_BUILD_FILE_NAME})" =~ "bp2build/a/b/${GENERATED_BUILD_FILE_NAME}"$ ]] \
    || fail "BUILD files symlinked at the wrong place"
  [[ -L out/soong/workspace/a/b/b.txt ]] || fail "a/b/b.txt not symlinked"
  [[ -L out/soong/workspace/a/a.txt ]] || fail "a/b/a.txt not symlinked"
@@ -616,7 +618,7 @@ function test_bp2build_build_file_precedence {

  mkdir -p a
  touch a/a.txt
  touch a/BUILD
  touch a/${GENERATED_BUILD_FILE_NAME}
  cat > a/Android.bp <<EOF
filegroup {
  name: "a",
@@ -626,15 +628,15 @@ filegroup {
EOF

  GENERATE_BAZEL_FILES=1 run_soong
  [[ -L out/soong/workspace/a/BUILD ]] || fail "BUILD file not symlinked"
  [[ "$(readlink -f out/soong/workspace/a/BUILD)" =~ bp2build/a/BUILD$ ]] \
    || fail "BUILD files symlinked to the wrong place"
  [[ -L "out/soong/workspace/a/${GENERATED_BUILD_FILE_NAME}" ]] || fail "${GENERATED_BUILD_FILE_NAME} file not symlinked"
  [[ "$(readlink -f out/soong/workspace/a/${GENERATED_BUILD_FILE_NAME})" =~ "bp2build/a/${GENERATED_BUILD_FILE_NAME}"$ ]] \
    || fail "${GENERATED_BUILD_FILE_NAME} files symlinked to the wrong place"
}

function test_bp2build_reports_multiple_errors {
  setup

  mkdir -p a/BUILD
  mkdir -p "a/${GENERATED_BUILD_FILE_NAME}"
  touch a/a.txt
  cat > a/Android.bp <<EOF
filegroup {
@@ -644,7 +646,7 @@ filegroup {
}
EOF

  mkdir -p b/BUILD
  mkdir -p "b/${GENERATED_BUILD_FILE_NAME}"
  touch b/b.txt
  cat > b/Android.bp <<EOF
filegroup {
@@ -658,8 +660,8 @@ EOF
    fail "Build should have failed"
  fi

  grep -q "a/BUILD' exist" "$MOCK_TOP/errors" || fail "Error for a/BUILD not found"
  grep -q "b/BUILD' exist" "$MOCK_TOP/errors" || fail "Error for b/BUILD not found"
  grep -q "a/${GENERATED_BUILD_FILE_NAME}' exist" "$MOCK_TOP/errors" || fail "Error for a/${GENERATED_BUILD_FILE_NAME} not found"
  grep -q "b/${GENERATED_BUILD_FILE_NAME}' exist" "$MOCK_TOP/errors" || fail "Error for b/${GENERATED_BUILD_FILE_NAME} not found"
}

test_smoke
+12 −10
Original line number Diff line number Diff line
@@ -6,6 +6,8 @@ set -o pipefail

source "$(dirname "$0")/lib.sh"

readonly GENERATED_BUILD_FILE_NAME="BUILD.bazel"

function test_bp2build_generates_all_buildfiles {
  setup
  create_mock_bazel
@@ -40,24 +42,24 @@ EOF

  run_bp2build

  if [[ ! -f "./out/soong/workspace/foo/convertible_soong_module/BUILD" ]]; then
    fail "./out/soong/workspace/foo/convertible_soong_module/BUILD was not generated"
  if [[ ! -f "./out/soong/workspace/foo/convertible_soong_module/${GENERATED_BUILD_FILE_NAME}" ]]; then
    fail "./out/soong/workspace/foo/convertible_soong_module/${GENERATED_BUILD_FILE_NAME} was not generated"
  fi

  if [[ ! -f "./out/soong/workspace/foo/unconvertible_soong_module/BUILD" ]]; then
    fail "./out/soong/workspace/foo/unconvertible_soong_module/BUILD was not generated"
  if [[ ! -f "./out/soong/workspace/foo/unconvertible_soong_module/${GENERATED_BUILD_FILE_NAME}" ]]; then
    fail "./out/soong/workspace/foo/unconvertible_soong_module/${GENERATED_BUILD_FILE_NAME} was not generated"
  fi

  if ! grep "the_answer" "./out/soong/workspace/foo/convertible_soong_module/BUILD"; then
    fail "missing BUILD target the_answer in convertible_soong_module/BUILD"
  if ! grep "the_answer" "./out/soong/workspace/foo/convertible_soong_module/${GENERATED_BUILD_FILE_NAME}"; then
    fail "missing BUILD target the_answer in convertible_soong_module/${GENERATED_BUILD_FILE_NAME}"
  fi

  if grep "not_the_answer" "./out/soong/workspace/foo/unconvertible_soong_module/BUILD"; then
    fail "found unexpected BUILD target not_the_answer in unconvertible_soong_module/BUILD"
  if grep "not_the_answer" "./out/soong/workspace/foo/unconvertible_soong_module/${GENERATED_BUILD_FILE_NAME}"; then
    fail "found unexpected BUILD target not_the_answer in unconvertible_soong_module/${GENERATED_BUILD_FILE_NAME}"
  fi

  if ! grep "filegroup" "./out/soong/workspace/foo/unconvertible_soong_module/BUILD"; then
    fail "missing filegroup in unconvertible_soong_module/BUILD"
  if ! grep "filegroup" "./out/soong/workspace/foo/unconvertible_soong_module/${GENERATED_BUILD_FILE_NAME}"; then
    fail "missing filegroup in unconvertible_soong_module/${GENERATED_BUILD_FILE_NAME}"
  fi

  # NOTE: We don't actually use the extra BUILD file for anything here