summaryrefslogtreecommitdiff
path: root/rust/project_json_test.go
diff options
context:
space:
mode:
authorThiƩbaud Weksteen <tweek@google.com>2020-09-29 09:53:21 +0200
committerThiƩbaud Weksteen <tweek@google.com>2020-09-29 20:23:49 +0200
commita6351caf1220538a61d03ab17efa8d85572d4bf9 (patch)
treee3f0a4caac014981cd018382762ccb787cdf4b5b /rust/project_json_test.go
parent3805f5cd2e0a2e6b5cfc1dfa14931b99af6bdcab (diff)
rust: Add ref to generated sources (aidl, bindgen)
Test: SOONG_GEN_RUST_PROJECT=1 m nothing; Edit system/security/keystore2/selinux/src/lib.rs; Check name resolution in IDE. Bug: 168263887 Change-Id: Icbbf176c4355c3043807ce3fe0c3967c4a1374e2
Diffstat (limited to 'rust/project_json_test.go')
-rw-r--r--rust/project_json_test.go39
1 files changed, 34 insertions, 5 deletions
diff --git a/rust/project_json_test.go b/rust/project_json_test.go
index 85219404a..8c1c43623 100644
--- a/rust/project_json_test.go
+++ b/rust/project_json_test.go
@@ -18,6 +18,7 @@ import (
"encoding/json"
"io/ioutil"
"path/filepath"
+ "strings"
"testing"
"android/soong/android"
@@ -100,22 +101,50 @@ func TestProjectJsonBindGen(t *testing.T) {
rust_library {
name: "liba",
srcs: ["src/lib.rs"],
- rlibs: ["libbindings"],
+ rlibs: ["libbindings1"],
crate_name: "a"
}
rust_bindgen {
- name: "libbindings",
- crate_name: "bindings",
- source_stem: "bindings",
+ name: "libbindings1",
+ crate_name: "bindings1",
+ source_stem: "bindings1",
host_supported: true,
wrapper_src: "src/any.h",
}
+ rust_library_host {
+ name: "libb",
+ srcs: ["src/lib.rs"],
+ rustlibs: ["libbindings2"],
+ crate_name: "b"
+ }
+ rust_bindgen_host {
+ name: "libbindings2",
+ crate_name: "bindings2",
+ source_stem: "bindings2",
+ wrapper_src: "src/any.h",
+ }
` + GatherRequiredDepsForTest()
fs := map[string][]byte{
"src/lib.rs": nil,
}
jsonContent := testProjectJson(t, bp, fs)
- validateJsonCrates(t, jsonContent)
+ crates := validateJsonCrates(t, jsonContent)
+ for _, c := range crates {
+ crate, ok := c.(map[string]interface{})
+ if !ok {
+ t.Fatalf("Unexpected type for crate: %v", c)
+ }
+ rootModule, ok := crate["root_module"].(string)
+ if !ok {
+ t.Fatalf("Unexpected type for root_module: %v", crate["root_module"])
+ }
+ if strings.Contains(rootModule, "libbindings1") && !strings.Contains(rootModule, "android_arm64") {
+ t.Errorf("The source for libbindings1 does not contain android_arm64, got %v", rootModule)
+ }
+ if strings.Contains(rootModule, "libbindings2") && !strings.Contains(rootModule, "linux_glibc") {
+ t.Errorf("The source for libbindings2 does not contain linux_glibc, got %v", rootModule)
+ }
+ }
}
func TestProjectJsonMultiVersion(t *testing.T) {