diff options
author | Ivan Lozano <ivanlozano@google.com> | 2019-10-31 19:38:29 -0700 |
---|---|---|
committer | Ivan Lozano <ivanlozano@google.com> | 2019-11-04 09:20:08 -0800 |
commit | ad8b18b87260a83aeadb28d637f77474158fcdb1 (patch) | |
tree | 0362797ca4b2cf0d34eb14ad3cfd0ed61ad67dc0 /rust/library_test.go | |
parent | 5d0b3b7195e35199f48bc8cd685f0b5786487cfe (diff) |
Enforce correct rust library file names.
rustc expects libraries and proc_macro filenames to conform to
a particular format, alphanumeric with underscores and lib${crate_name}.*.
Enforce this with a check when getStem() is called.
This makes the crate_name property required for proc_macros and
libraries. This also removes the notion of a default crate name derived
from the module name. It's not needed for binaries, so this won't impact
them.
Bug: 143579265
Test: m -j crosvm.experimental
Change-Id: I2770cf7d02dd4291c3d240d58d242b940098dcee
Diffstat (limited to 'rust/library_test.go')
-rw-r--r-- | rust/library_test.go | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/rust/library_test.go b/rust/library_test.go index 66bcd20fb..9f9f374b9 100644 --- a/rust/library_test.go +++ b/rust/library_test.go @@ -77,3 +77,40 @@ func TestDylibPreferDynamic(t *testing.T) { t.Errorf("missing prefer-dynamic flag for libfoo dylib, rustcFlags: %#v", libfooDylib.Args["rustcFlags"]) } } + +func TestValidateLibraryStem(t *testing.T) { + testRustError(t, "crate_name must be defined.", ` + rust_library_host { + name: "libfoo", + srcs: ["foo.rs"], + }`) + + testRustError(t, "library crate_names must be alphanumeric with underscores allowed", ` + rust_library_host { + name: "libfoo-bar", + srcs: ["foo.rs"], + crate_name: "foo-bar" + }`) + + testRustError(t, "Invalid name or stem property; library filenames must start with lib<crate_name>", ` + rust_library_host { + name: "foobar", + srcs: ["foo.rs"], + crate_name: "foo_bar" + }`) + testRustError(t, "Invalid name or stem property; library filenames must start with lib<crate_name>", ` + rust_library_host { + name: "foobar", + stem: "libfoo", + srcs: ["foo.rs"], + crate_name: "foo_bar" + }`) + testRustError(t, "Invalid name or stem property; library filenames must start with lib<crate_name>", ` + rust_library_host { + name: "foobar", + stem: "foo_bar", + srcs: ["foo.rs"], + crate_name: "foo_bar" + }`) + +} |