summaryrefslogtreecommitdiff
path: root/rust/project_json_test.go
diff options
context:
space:
mode:
authorThiƩbaud Weksteen <tweek@google.com>2021-03-25 09:26:07 +0100
committerThiƩbaud Weksteen <tweek@google.com>2021-03-25 09:59:49 +0100
commite8b0ee73f4c2545aa0597a270cf6c56fdb60b1ab (patch)
tree25a74b647725038762e9b41b03f3241e0ec9c836 /rust/project_json_test.go
parenta1063c09f6f47b68d946ff61cef71692b19d48e5 (diff)
rust: Add features list to rust_project.json
Bug: 183679729 Test: SOONG_GEN_RUST_PROJECT=1 m nothing Test: manually check v1 feature resolution for libprofcollectd Change-Id: Ib59b63372865f7f4545fe327e92d1642d76ce9c9
Diffstat (limited to 'rust/project_json_test.go')
-rw-r--r--rust/project_json_test.go36
1 files changed, 36 insertions, 0 deletions
diff --git a/rust/project_json_test.go b/rust/project_json_test.go
index 8f64f56e2..7af463528 100644
--- a/rust/project_json_test.go
+++ b/rust/project_json_test.go
@@ -18,6 +18,7 @@ import (
"encoding/json"
"io/ioutil"
"path/filepath"
+ "sort"
"strings"
"testing"
@@ -115,6 +116,41 @@ func TestProjectJsonDep(t *testing.T) {
validateJsonCrates(t, jsonContent)
}
+func TestProjectJsonFeature(t *testing.T) {
+ bp := `
+ rust_library {
+ name: "liba",
+ srcs: ["a/src/lib.rs"],
+ crate_name: "a",
+ features: ["f1", "f2"]
+ }
+ `
+ jsonContent := testProjectJson(t, bp)
+ crates := validateJsonCrates(t, jsonContent)
+ for _, c := range crates {
+ crate := validateCrate(t, c)
+ cfgs, ok := crate["cfg"].([]interface{})
+ if !ok {
+ t.Fatalf("Unexpected type for cfgs: %v", crate)
+ }
+ expectedCfgs := []string{"feature=\"f1\"", "feature=\"f2\""}
+ foundCfgs := []string{}
+ for _, cfg := range cfgs {
+ cfg, ok := cfg.(string)
+ if !ok {
+ t.Fatalf("Unexpected type for cfg: %v", cfg)
+ }
+ foundCfgs = append(foundCfgs, cfg)
+ }
+ sort.Strings(foundCfgs)
+ for i, foundCfg := range foundCfgs {
+ if foundCfg != expectedCfgs[i] {
+ t.Errorf("Incorrect features: got %v; want %v", foundCfg, expectedCfgs[i])
+ }
+ }
+ }
+}
+
func TestProjectJsonBinary(t *testing.T) {
bp := `
rust_binary {