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

Commit 4e37219e authored by Mark Dacek's avatar Mark Dacek Committed by Gerrit Code Review
Browse files

Merge "Fix issue where bazel-force-enabled-modules aren't actually analyzed."

parents 9e1117bf 9c094ca1
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -84,8 +84,12 @@ func RegisterMixedBuildsMutator(ctx RegistrationContext) {
func mixedBuildsPrepareMutator(ctx BottomUpMutatorContext) {
	if m := ctx.Module(); m.Enabled() {
		if mixedBuildMod, ok := m.(MixedBuildBuildable); ok {
			if mixedBuildMod.IsMixedBuildSupported(ctx) && MixedBuildsEnabled(ctx) {
			queueMixedBuild := mixedBuildMod.IsMixedBuildSupported(ctx) && MixedBuildsEnabled(ctx)
			if queueMixedBuild {
				mixedBuildMod.QueueBazelCall(ctx)
			} else if _, ok := ctx.Config().bazelForceEnabledModules[m.Name()]; ok {
				// TODO(b/273910287) - remove this once --ensure_allowlist_integrity is added
				ctx.ModuleErrorf("Attempted to force enable an unready module: %s. Did you forget to Bp2BuildDefaultTrue its directory?\n", m.Name())
			}
		}
	}
+7 −3
Original line number Diff line number Diff line
@@ -592,12 +592,11 @@ func NewConfig(cmdArgs CmdArgs, availableEnv map[string]string) (Config, error)
	setBazelMode(cmdArgs.BazelMode, "--bazel-mode", BazelProdMode)
	setBazelMode(cmdArgs.BazelModeStaging, "--bazel-mode-staging", BazelStagingMode)

	config.BazelContext, err = NewBazelContext(config)
	config.Bp2buildPackageConfig = GetBp2BuildAllowList()

	for _, module := range strings.Split(cmdArgs.BazelForceEnabledModules, ",") {
		config.bazelForceEnabledModules[module] = struct{}{}
	}
	config.BazelContext, err = NewBazelContext(config)
	config.Bp2buildPackageConfig = GetBp2BuildAllowList()

	return Config{config}, err
}
@@ -1934,3 +1933,8 @@ func (c *config) BuildFromTextStub() bool {
func (c *config) SetBuildFromTextStub(b bool) {
	c.buildFromTextStub = b
}
func (c *config) AddForceEnabledModules(forceEnabled []string) {
	for _, forceEnabledModule := range forceEnabled {
		c.bazelForceEnabledModules[forceEnabledModule] = struct{}{}
	}
}
+1 −0
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ func TestConfig(buildDir string, env map[string]string, bp string, fs map[string
		BuildMode:                 BazelProdMode,
		mixedBuildDisabledModules: make(map[string]struct{}),
		mixedBuildEnabledModules:  make(map[string]struct{}),
		bazelForceEnabledModules:  make(map[string]struct{}),
	}
	config.deviceConfig = &deviceConfig{
		config: config,
+3 −0
Original line number Diff line number Diff line
@@ -321,6 +321,9 @@ func GenerateBazelTargets(ctx *CodegenContext, generateFilegroups bool) (convers
					// target, each of a different rule class.
					metrics.IncrementRuleClassCount(t.ruleClass)
				}
			} else if _, ok := ctx.Config().BazelModulesForceEnabledByFlag()[m.Name()]; ok && m.Name() != "" {
				err := fmt.Errorf("Force Enabled Module %s not converted", m.Name())
				errs = append(errs, err)
			} else {
				metrics.AddUnconvertedModule(moduleType)
				return
+22 −1
Original line number Diff line number Diff line
@@ -1175,6 +1175,8 @@ func TestAllowlistingBp2buildTargetsWithConfig(t *testing.T) {
		bp2buildConfig             allowlists.Bp2BuildConfig
		checkDir                   string
		fs                         map[string]string
		forceEnabledModules        []string
		expectedErrorMessages      []string
	}{
		{
			description:                "test bp2build config package and subpackages config",
@@ -1237,6 +1239,24 @@ filegroup { name: "opt-out-h", bazel_module: { bp2build_available: false } }
`,
			},
		},
		{
			description:                "test force-enabled errors out",
			moduleTypeUnderTest:        "filegroup",
			moduleTypeUnderTestFactory: android.FileGroupFactory,
			expectedCount: map[string]int{
				"migrated":     0,
				"not_migrated": 0,
			},
			bp2buildConfig: allowlists.Bp2BuildConfig{
				"migrated/but_not_really": allowlists.Bp2BuildDefaultFalse,
				"not_migrated":            allowlists.Bp2BuildDefaultFalse,
			},
			fs: map[string]string{
				"migrated/Android.bp": `filegroup { name: "a" }`,
			},
			forceEnabledModules:   []string{"a"},
			expectedErrorMessages: []string{"Force Enabled Module a not converted"},
		},
	}

	dir := "."
@@ -1252,6 +1272,7 @@ filegroup { name: "opt-out-h", bazel_module: { bp2build_available: false } }
			fs[f] = []byte(content)
		}
		config := android.TestConfig(buildDir, nil, "", fs)
		config.AddForceEnabledModules(testCase.forceEnabledModules)
		ctx := android.NewTestContext(config)
		ctx.RegisterModuleType(testCase.moduleTypeUnderTest, testCase.moduleTypeUnderTestFactory)
		allowlist := android.NewBp2BuildAllowlist().SetDefaultConfig(testCase.bp2buildConfig)
@@ -1268,7 +1289,7 @@ filegroup { name: "opt-out-h", bazel_module: { bp2build_available: false } }
		// For each directory, test that the expected number of generated targets is correct.
		for dir, expectedCount := range testCase.expectedCount {
			bazelTargets, err := generateBazelTargetsForDir(codegenCtx, dir)
			android.FailIfErrored(t, err)
			android.CheckErrorsAgainstExpectations(t, err, testCase.expectedErrorMessages)
			if actualCount := len(bazelTargets); actualCount != expectedCount {
				t.Fatalf(
					"%s: Expected %d bazel target for %s package, got %d",
Loading