resolve merge conflicts of a73ffc21e0 to rvc-dev-plus-aosp

Test: I solemnly swear I tested this conflict resolution.
Bug: None
Change-Id: Ie8ad8a9e91bf4a86c90060b15dc88f9860539637
This commit is contained in:
Colin Cross 2020-06-11 12:12:30 -07:00
commit 300b266264
7 changed files with 127 additions and 84 deletions

View file

@ -111,6 +111,10 @@ type config struct {
fs pathtools.FileSystem
mockBpList string
// If testAllowNonExistentPaths is true then PathForSource and PathForModuleSrc won't error
// in tests when a path doesn't exist.
testAllowNonExistentPaths bool
OncePer
}
@ -230,6 +234,10 @@ func TestConfig(buildDir string, env map[string]string, bp string, fs map[string
buildDir: buildDir,
captureBuild: true,
env: envCopy,
// Set testAllowNonExistentPaths so that test contexts don't need to specify every path
// passed to PathForSource or PathForModuleSrc.
testAllowNonExistentPaths: true,
}
config.deviceConfig = &deviceConfig{
config: config,

View file

@ -405,7 +405,7 @@ func expandOneSrcPath(ctx ModuleContext, s string, expandedExcludes []string) (P
p := pathForModuleSrc(ctx, s)
if exists, _, err := ctx.Config().fs.Exists(p.String()); err != nil {
reportPathErrorf(ctx, "%s: %s", p, err.Error())
} else if !exists {
} else if !exists && !ctx.Config().testAllowNonExistentPaths {
reportPathErrorf(ctx, "module source path %q does not exist", p)
}
@ -798,7 +798,7 @@ func PathForSource(ctx PathContext, pathComponents ...string) SourcePath {
}
} else if exists, _, err := ctx.Config().fs.Exists(path.String()); err != nil {
reportPathErrorf(ctx, "%s: %s", path, err.Error())
} else if !exists {
} else if !exists && !ctx.Config().testAllowNonExistentPaths {
reportPathErrorf(ctx, "source path %q does not exist", path)
}
return path

View file

@ -2719,7 +2719,7 @@ func TestCodelessApp(t *testing.T) {
}
func TestEmbedNotice(t *testing.T) {
ctx, _ := testJava(t, cc.GatherRequiredDepsForTest(android.Android)+`
ctx, _ := testJavaWithFS(t, cc.GatherRequiredDepsForTest(android.Android)+`
android_app {
name: "foo",
srcs: ["a.java"],
@ -2775,7 +2775,12 @@ func TestEmbedNotice(t *testing.T) {
srcs: ["b.java"],
notice: "TOOL_NOTICE",
}
`)
`, map[string][]byte{
"APP_NOTICE": nil,
"GENRULE_NOTICE": nil,
"LIB_NOTICE": nil,
"TOOL_NOTICE": nil,
})
// foo has NOTICE files to process, and embed_notices is true.
foo := ctx.ModuleForTests("foo", "android_common")

View file

@ -1470,7 +1470,7 @@ func metalavaCmd(ctx android.ModuleContext, rule *android.RuleBuilder, javaVersi
FlagWithInput("@", srcJarList).
FlagWithOutput("--strict-input-files:warn ", android.PathForModuleOut(ctx, ctx.ModuleName()+"-"+"violations.txt"))
if implicitsRsp.String() != "" {
if implicitsRsp != nil {
cmd.FlagWithArg("--strict-input-files-exempt ", "@"+implicitsRsp.String())
}

View file

@ -142,9 +142,14 @@ func testJavaErrorWithConfig(t *testing.T, pattern string, config android.Config
return ctx, config
}
func testJavaWithFS(t *testing.T, bp string, fs map[string][]byte) (*android.TestContext, android.Config) {
t.Helper()
return testJavaWithConfig(t, testConfig(nil, bp, fs))
}
func testJava(t *testing.T, bp string) (*android.TestContext, android.Config) {
t.Helper()
return testJavaWithConfig(t, testConfig(nil, bp, nil))
return testJavaWithFS(t, bp, nil)
}
func testJavaWithConfig(t *testing.T, config android.Config) (*android.TestContext, android.Config) {
@ -740,7 +745,7 @@ func TestResources(t *testing.T) {
for _, test := range table {
t.Run(test.name, func(t *testing.T) {
ctx, _ := testJava(t, `
ctx, _ := testJavaWithFS(t, `
java_library {
name: "foo",
srcs: [
@ -750,7 +755,13 @@ func TestResources(t *testing.T) {
],
`+test.prop+`,
}
`+test.extra)
`+test.extra,
map[string][]byte{
"java-res/a/a": nil,
"java-res/b/b": nil,
"java-res2/a": nil,
},
)
foo := ctx.ModuleForTests("foo", "android_common").Output("withres/foo.jar")
fooRes := ctx.ModuleForTests("foo", "android_common").Output("res/foo.jar")
@ -769,7 +780,7 @@ func TestResources(t *testing.T) {
}
func TestIncludeSrcs(t *testing.T) {
ctx, _ := testJava(t, `
ctx, _ := testJavaWithFS(t, `
java_library {
name: "foo",
srcs: [
@ -790,7 +801,11 @@ func TestIncludeSrcs(t *testing.T) {
java_resource_dirs: ["java-res"],
include_srcs: true,
}
`)
`, map[string][]byte{
"java-res/a/a": nil,
"java-res/b/b": nil,
"java-res2/a": nil,
})
// Test a library with include_srcs: true
foo := ctx.ModuleForTests("foo", "android_common").Output("withres/foo.jar")
@ -832,7 +847,7 @@ func TestIncludeSrcs(t *testing.T) {
}
func TestGeneratedSources(t *testing.T) {
ctx, _ := testJava(t, `
ctx, _ := testJavaWithFS(t, `
java_library {
name: "foo",
srcs: [
@ -847,7 +862,10 @@ func TestGeneratedSources(t *testing.T) {
tool_files: ["java-res/a"],
out: ["gen.java"],
}
`)
`, map[string][]byte{
"a.java": nil,
"b.java": nil,
})
javac := ctx.ModuleForTests("foo", "android_common").Rule("javac")
genrule := ctx.ModuleForTests("gen", "").Rule("generator")
@ -932,7 +950,7 @@ func TestSharding(t *testing.T) {
}
func TestDroiddoc(t *testing.T) {
ctx, _ := testJava(t, `
ctx, _ := testJavaWithFS(t, `
droiddoc_exported_dir {
name: "droiddoc-templates-sdk",
path: ".",
@ -945,7 +963,7 @@ func TestDroiddoc(t *testing.T) {
droiddoc {
name: "bar-doc",
srcs: [
"bar-doc/*.java",
"bar-doc/a.java",
"bar-doc/IFoo.aidl",
":bar-doc-aidl-srcs",
],
@ -963,7 +981,11 @@ func TestDroiddoc(t *testing.T) {
todo_file: "libcore-docs-todo.html",
args: "-offlinemode -title \"libcore\"",
}
`)
`,
map[string][]byte{
"bar-doc/a.java": nil,
"bar-doc/b.java": nil,
})
barDoc := ctx.ModuleForTests("bar-doc", "android_common").Rule("javadoc")
var javaSrcs []string
@ -989,7 +1011,7 @@ func TestDroidstubsWithSystemModules(t *testing.T) {
droidstubs {
name: "stubs-source-system-modules",
srcs: [
"bar-doc/*.java",
"bar-doc/a.java",
],
sdk_version: "none",
system_modules: "source-system-modules",
@ -1010,7 +1032,7 @@ func TestDroidstubsWithSystemModules(t *testing.T) {
droidstubs {
name: "stubs-prebuilt-system-modules",
srcs: [
"bar-doc/*.java",
"bar-doc/a.java",
],
sdk_version: "none",
system_modules: "prebuilt-system-modules",

71
java/lint_defaults.txt Normal file
View file

@ -0,0 +1,71 @@
# Treat LintError as fatal to catch invocation errors
--fatal_check LintError
# Downgrade existing errors to warnings
--warning_check AppCompatResource
--warning_check AppLinkUrlError
--warning_check ByteOrderMark
--warning_check DuplicateActivity
--warning_check DuplicateDefinition
--warning_check DuplicateIds
--warning_check EllipsizeMaxLines
--warning_check ExtraTranslation
--warning_check FontValidationError
--warning_check FullBackupContent
--warning_check GetContentDescriptionOverride
--warning_check HardcodedDebugMode
--warning_check ImpliedQuantity
--warning_check ImpliedTouchscreenHardware
--warning_check IncludeLayoutParam
--warning_check Instantiatable
--warning_check InvalidPermission
--warning_check InvalidUsesTagAttribute
--warning_check InvalidWakeLockTag
--warning_check LibraryCustomView
--warning_check LogTagMismatch
--warning_check LongLogTag
--warning_check MenuTitle
--warning_check MissingClass
--warning_check MissingConstraints
--warning_check MissingDefaultResource
--warning_check MissingIntentFilterForMediaSearch
--warning_check MissingLeanbackLauncher
--warning_check MissingLeanbackSupport
--warning_check MissingOnPlayFromSearch
--warning_check MissingPrefix
--warning_check MissingQuantity
--warning_check MissingSuperCall
--warning_check MissingTvBanner
--warning_check NamespaceTypo
--warning_check NetworkSecurityConfig
--warning_check NotSibling
--warning_check ObjectAnimatorBinding
--warning_check OnClick
--warning_check Orientation
--warning_check OverrideAbstract
--warning_check ParcelCreator
--warning_check ProtectedPermissions
--warning_check RecyclerView
--warning_check ReferenceType
--warning_check RequiredSize
--warning_check ResAuto
--warning_check ResourceCycle
--warning_check ResourceType
--warning_check RestrictedApi
--warning_check RtlCompat
--warning_check ServiceCast
--warning_check StringFormatInvalid
--warning_check StringFormatMatches
--warning_check UnknownId
--warning_check ValidFragment
--warning_check ValidRestrictions
--warning_check WebViewLayout
--warning_check WifiManagerLeak
--warning_check WrongCall
--warning_check WrongConstant
--warning_check WrongManifestParent
--warning_check WrongThread
--warning_check WrongViewCast
# TODO(158390965): remove this when lint doesn't crash
#--disable_check HardcodedDebugMode

View file

@ -25,35 +25,12 @@ func TestConfig(buildDir string, env map[string]string, bp string, fs map[string
bp += GatherRequiredDepsForTest()
mockFS := map[string][]byte{
"a.java": nil,
"b.java": nil,
"c.java": nil,
"b.kt": nil,
"a.jar": nil,
"b.jar": nil,
"c.jar": nil,
"APP_NOTICE": nil,
"GENRULE_NOTICE": nil,
"LIB_NOTICE": nil,
"TOOL_NOTICE": nil,
"AndroidTest.xml": nil,
"java-res/a/a": nil,
"java-res/b/b": nil,
"java-res2/a": nil,
"java-fg/a.java": nil,
"java-fg/b.java": nil,
"java-fg/c.java": nil,
"api/current.txt": nil,
"api/removed.txt": nil,
"api/system-current.txt": nil,
"api/system-removed.txt": nil,
"api/test-current.txt": nil,
"api/test-removed.txt": nil,
"framework/aidl/a.aidl": nil,
"aidl/foo/IFoo.aidl": nil,
"aidl/bar/IBar.aidl": nil,
"assets_a/a": nil,
"assets_b/b": nil,
"prebuilts/sdk/14/public/android.jar": nil,
"prebuilts/sdk/14/public/framework.aidl": nil,
@ -104,51 +81,11 @@ func TestConfig(buildDir string, env map[string]string, bp string, fs map[string
"prebuilts/sdk/tools/core-lambda-stubs.jar": nil,
"prebuilts/sdk/Android.bp": []byte(`prebuilt_apis { name: "sdk", api_dirs: ["14", "28", "30", "current"],}`),
"prebuilts/apk/app.apk": nil,
"prebuilts/apk/app_arm.apk": nil,
"prebuilts/apk/app_arm64.apk": nil,
"prebuilts/apk/app_xhdpi.apk": nil,
"prebuilts/apk/app_xxhdpi.apk": nil,
"prebuilts/apks/app.apks": nil,
// For framework-res, which is an implicit dependency for framework
"AndroidManifest.xml": nil,
"build/make/target/product/security/testkey": nil,
"build/soong/scripts/jar-wrapper.sh": nil,
"build/make/core/verify_uses_libraries.sh": nil,
"build/make/core/proguard.flags": nil,
"build/make/core/proguard_basic_keeps.flags": nil,
"jdk8/jre/lib/jce.jar": nil,
"jdk8/jre/lib/rt.jar": nil,
"jdk8/lib/tools.jar": nil,
"bar-doc/a.java": nil,
"bar-doc/b.java": nil,
"bar-doc/IFoo.aidl": nil,
"bar-doc/IBar.aidl": nil,
"bar-doc/known_oj_tags.txt": nil,
"external/doclava/templates-sdk": nil,
"cert/new_cert.x509.pem": nil,
"cert/new_cert.pk8": nil,
"lineage.bin": nil,
"testdata/data": nil,
"stubs-sources/foo/Foo.java": nil,
"stubs/sources/foo/Foo.java": nil,
// For java_sdk_library
"api/module-lib-current.txt": nil,
"api/module-lib-removed.txt": nil,
"api/system-server-current.txt": nil,
"api/system-server-removed.txt": nil,
"build/soong/scripts/gen-java-current-api-files.sh": nil,
"api/module-lib-current.txt": nil,
"api/module-lib-removed.txt": nil,
"api/system-server-current.txt": nil,
"api/system-server-removed.txt": nil,
}
cc.GatherRequiredFilesForTest(mockFS)