Revert "rust: validate existence of library source"
Revert submission 1391076
Reason for revert: Broken downstream Darwin build (b/162975597)
Reverted Changes:
I275f04639:rust: handle modules with same crate_name
Ie736d7ebb:rust: validate existence of library source
Change-Id: I1732d50a08546864f17cd826c8af574c1064c670
diff --git a/rust/project_json_test.go b/rust/project_json_test.go
index 89ba8d3..6786e72 100644
--- a/rust/project_json_test.go
+++ b/rust/project_json_test.go
@@ -15,7 +15,6 @@
package rust
import (
- "encoding/json"
"io/ioutil"
"path/filepath"
"testing"
@@ -24,12 +23,20 @@
"android/soong/cc"
)
-// testProjectJson run the generation of rust-project.json. It returns the raw
-// content of the generated file.
-func testProjectJson(t *testing.T, bp string, fs map[string][]byte) []byte {
+func TestProjectJson(t *testing.T) {
+ bp := `rust_library {
+ name: "liba",
+ srcs: ["src/lib.rs"],
+ crate_name: "a"
+ }` + GatherRequiredDepsForTest()
+ env := map[string]string{"SOONG_GEN_RUST_PROJECT": "1"}
+ fs := map[string][]byte{
+ "foo.rs": nil,
+ "src/lib.rs": nil,
+ }
+
cc.GatherRequiredFilesForTest(fs)
- env := map[string]string{"SOONG_GEN_RUST_PROJECT": "1"}
config := android.TestArchConfig(buildDir, env, bp, fs)
ctx := CreateTestContext()
ctx.Register(config)
@@ -41,79 +48,8 @@
// The JSON file is generated via WriteFileToOutputDir. Therefore, it
// won't appear in the Output of the TestingSingleton. Manually verify
// it exists.
- content, err := ioutil.ReadFile(filepath.Join(buildDir, rustProjectJsonFileName))
+ _, err := ioutil.ReadFile(filepath.Join(buildDir, "rust-project.json"))
if err != nil {
t.Errorf("rust-project.json has not been generated")
}
- return content
-}
-
-// validateJsonCrates validates that content follows the basic structure of
-// rust-project.json. It returns the crates attribute if the validation
-// succeeded.
-// It uses an empty interface instead of relying on a defined structure to
-// avoid a strong dependency on our implementation.
-func validateJsonCrates(t *testing.T, rawContent []byte) []interface{} {
- var content interface{}
- err := json.Unmarshal(rawContent, &content)
- if err != nil {
- t.Errorf("Unable to parse the rust-project.json as JSON: %v", err)
- }
- root, ok := content.(map[string]interface{})
- if !ok {
- t.Errorf("Unexpected JSON format: %v", content)
- }
- if _, ok = root["crates"]; !ok {
- t.Errorf("No crates attribute in rust-project.json: %v", root)
- }
- crates, ok := root["crates"].([]interface{})
- if !ok {
- t.Errorf("Unexpected crates format: %v", root["crates"])
- }
- return crates
-}
-
-func TestProjectJsonDep(t *testing.T) {
- bp := `
- rust_library {
- name: "liba",
- srcs: ["a/src/lib.rs"],
- crate_name: "a"
- }
- rust_library {
- name: "libb",
- srcs: ["b/src/lib.rs"],
- crate_name: "b",
- rlibs: ["liba"],
- }
- ` + GatherRequiredDepsForTest()
- fs := map[string][]byte{
- "a/src/lib.rs": nil,
- "b/src/lib.rs": nil,
- }
- jsonContent := testProjectJson(t, bp, fs)
- validateJsonCrates(t, jsonContent)
-}
-
-func TestProjectJsonBindGen(t *testing.T) {
- bp := `
- rust_library {
- name: "liba",
- srcs: ["src/lib.rs"],
- rlibs: ["libbindings"],
- crate_name: "a"
- }
- rust_bindgen {
- name: "libbindings",
- crate_name: "bindings",
- source_stem: "bindings",
- host_supported: true,
- wrapper_src: "src/any.h",
- }
- ` + GatherRequiredDepsForTest()
- fs := map[string][]byte{
- "src/lib.rs": nil,
- }
- jsonContent := testProjectJson(t, bp, fs)
- validateJsonCrates(t, jsonContent)
}