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
This commit is contained in:
Thiébaud Weksteen
2021-03-25 09:26:07 +01:00
parent a1063c09f6
commit e8b0ee73f4
2 changed files with 42 additions and 2 deletions

View File

@@ -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 {