blob: 90b09c81464879dbd3f53ffa8c26b6cdc9d2ac76 [file] [log] [blame]
Vinh Tran457ddef2023-08-02 13:50:26 -04001package aconfig
2
3import (
4 "android/soong/android"
5 "android/soong/rust"
6 "fmt"
7 "testing"
8)
9
10func TestRustAconfigLibrary(t *testing.T) {
11 result := android.GroupFixturePreparers(
12 PrepareForTestWithAconfigBuildComponents,
13 rust.PrepareForTestWithRustIncludeVndk,
14 android.PrepareForTestWithArchMutator,
15 android.PrepareForTestWithDefaults,
16 android.PrepareForTestWithPrebuilts,
17 ).
18 ExtendWithErrorHandler(android.FixtureExpectsNoErrors).
19 RunTestWithBp(t, fmt.Sprintf(`
20 rust_library {
21 name: "libflags_rust", // test mock
22 crate_name: "flags_rust",
23 srcs: ["lib.rs"],
24 }
25 aconfig_declarations {
26 name: "my_aconfig_declarations",
27 package: "com.example.package",
28 srcs: ["foo.aconfig"],
29 }
30
31 rust_aconfig_library {
32 name: "libmy_rust_aconfig_library",
33 crate_name: "my_rust_aconfig_library",
34 aconfig_declarations: "my_aconfig_declarations",
35 }
36 `))
37
38 sourceVariant := result.ModuleForTests("libmy_rust_aconfig_library", "android_arm64_armv8-a_source")
39 rule := sourceVariant.Rule("rust_aconfig_library")
40 android.AssertStringEquals(t, "rule must contain production mode", rule.Args["mode"], "production")
41
42 dylibVariant := result.ModuleForTests("libmy_rust_aconfig_library", "android_arm64_armv8-a_dylib")
43 rlibRlibStdVariant := result.ModuleForTests("libmy_rust_aconfig_library", "android_arm64_armv8-a_rlib_rlib-std")
44 rlibDylibStdVariant := result.ModuleForTests("libmy_rust_aconfig_library", "android_arm64_armv8-a_rlib_dylib-std")
45
46 variants := []android.TestingModule{
47 dylibVariant,
48 rlibDylibStdVariant,
49 rlibRlibStdVariant,
50 }
51
52 for _, variant := range variants {
Sam Delmerico521eb202023-09-20 19:30:47 +000053 android.AssertStringListContains(
Vinh Tran457ddef2023-08-02 13:50:26 -040054 t,
55 "dylib variant builds from generated rust code",
Sam Delmerico521eb202023-09-20 19:30:47 +000056 variant.Rule("rustc").Implicits.RelativeToTop().Strings(),
Vinh Tran457ddef2023-08-02 13:50:26 -040057 "out/soong/.intermediates/libmy_rust_aconfig_library/android_arm64_armv8-a_source/gen/src/lib.rs",
Vinh Tran457ddef2023-08-02 13:50:26 -040058 )
59 }
60}