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

Commit 661edbb3 authored by Jiyong Park's avatar Jiyong Park Committed by Gerrit Code Review
Browse files

Merge "Don't allow using framework and SDK at the same time."

parents 93d65fb6 3c306f3d
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ func init() {
	AddNeverAllowRules(createUncompressDexRules()...)
	AddNeverAllowRules(createMakefileGoalRules()...)
	AddNeverAllowRules(createInitFirstStageRules()...)
	AddNeverAllowRules(createProhibitFrameworkAccessRules()...)
}

// Add a NeverAllow rule to the set of rules to apply.
@@ -228,6 +229,15 @@ func createInitFirstStageRules() []Rule {
	}
}

func createProhibitFrameworkAccessRules() []Rule {
	return []Rule{
		NeverAllow().
			With("libs", "framework").
			WithoutMatcher("sdk_version", Regexp("(core_.*|^$)")).
			Because("framework can't be used when building against SDK"),
	}
}

func neverallowMutator(ctx BottomUpMutatorContext) {
	m, ok := ctx.Module().(Module)
	if !ok {
+15 −0
Original line number Diff line number Diff line
@@ -327,6 +327,21 @@ var neverallowTests = []struct {
			"Only boot images may be imported as a makefile goal.",
		},
	},
	// Tests for the rule prohibiting the use of framework
	{
		name: "prohibit framework",
		fs: map[string][]byte{
			"Android.bp": []byte(`
				java_library {
					name: "foo",
					libs: ["framework"],
					sdk_version: "current",
				}`),
		},
		expectedErrors: []string{
			"framework can't be used when building against SDK",
		},
	},
}

var prepareForNeverAllowTest = GroupFixturePreparers(