Merge "Flag an error on empty rust module srcs"

This commit is contained in:
Seth Moore
2021-10-14 15:25:17 +00:00
committed by Gerrit Code Review
2 changed files with 39 additions and 0 deletions

View File

@@ -449,6 +449,10 @@ func (compiler *baseCompiler) relativeInstallPath() string {
// Returns the Path for the main source file along with Paths for generated source files from modules listed in srcs.
func srcPathFromModuleSrcs(ctx ModuleContext, srcs []string) (android.Path, android.Paths) {
if len(srcs) == 0 {
ctx.PropertyErrorf("srcs", "srcs must not be empty")
}
// The srcs can contain strings with prefix ":".
// They are dependent modules of this module, with android.SourceDepTag.
// They are not the main source file compiled by rustc.

View File

@@ -98,6 +98,41 @@ func TestEnforceSingleSourceFile(t *testing.T) {
}`)
}
// Test that we reject _no_ source files.
func TestEnforceMissingSourceFiles(t *testing.T) {
singleSrcError := "srcs must not be empty"
// Test libraries
testRustError(t, singleSrcError, `
rust_library_host {
name: "foo-bar-library",
crate_name: "foo",
}`)
// Test binaries
testRustError(t, singleSrcError, `
rust_binary_host {
name: "foo-bar-binary",
crate_name: "foo",
}`)
// Test proc_macros
testRustError(t, singleSrcError, `
rust_proc_macro {
name: "foo-bar-proc-macro",
crate_name: "foo",
}`)
// Test prebuilts
testRustError(t, singleSrcError, `
rust_prebuilt_dylib {
name: "foo-bar-prebuilt",
crate_name: "foo",
host_supported: true,
}`)
}
// Test environment vars for Cargo compat are set.
func TestCargoCompat(t *testing.T) {
ctx := testRust(t, `