diff options
author | 2023-06-16 10:28:04 -0400 | |
---|---|---|
committer | 2023-09-15 22:46:56 +0000 | |
commit | a588d153c85485336e0509f475a4eec653be339b (patch) | |
tree | f95a13945dd147c12c7ae5323763b8e14a2172f0 /rust/testing.go | |
parent | d96a60685a3147d6d6f15daf4a5cad419e737430 (diff) |
support sandboxed rust rules
This commit adds support for compiling rust rules inside the sbox
sandbox. To compile a rust module with sandboxing enabled, the entry
point to the crate must be specified via the `crate_root` property, and
all input sources and compile-time data must be specified via the `srcs`
and `compile_data` properties.
Bug: 286077158
Change-Id: I8c9dc5cf7578037a583b4be2e2f73cf20ffd4408
Diffstat (limited to 'rust/testing.go')
-rw-r--r-- | rust/testing.go | 326 |
1 files changed, 326 insertions, 0 deletions
diff --git a/rust/testing.go b/rust/testing.go index 3fe751e17..9951937be 100644 --- a/rust/testing.go +++ b/rust/testing.go @@ -52,6 +52,22 @@ var PrepareForTestWithRustIncludeVndk = android.GroupFixturePreparers( func GatherRequiredDepsForTest() string { bp := ` + prebuilt_build_tool { + name: "rustc", + src: "linux-x86/1.69.0/bin/rustc", + deps: [ + "linux-x86/1.69.0/lib/libstd.so", + "linux-x86/1.69.0/lib64/libc++.so.1", + ], + } + prebuilt_build_tool { + name: "clippy-driver", + src: "linux-x86/1.69.0/bin/clippy-driver", + } + prebuilt_build_tool { + name: "rustdoc", + src: "linux-x86/1.69.0/bin/rustdoc", + } rust_prebuilt_library { name: "libstd", crate_name: "std", @@ -63,6 +79,25 @@ func GatherRequiredDepsForTest() string { }, host_supported: true, sysroot: true, + rlibs: [ + "libaddr2line", + "libadler", + "liballoc", + "libcfg_if", + "libcompiler_builtins", + "libcore", + "libgimli", + "libhashbrown", + "liblibc", + "libmemchr", + "libminiz_oxide", + "libobject", + "libpanic_unwind", + "librustc_demangle", + "librustc_std_workspace_alloc", + "librustc_std_workspace_core", + "libstd_detect", + ], } ////////////////////////////// // Device module requirements @@ -99,6 +134,278 @@ func GatherRequiredDepsForTest() string { nocrt: true, system_shared_libs: [], } + rust_library_rlib { + name: "libaddr2line", + crate_name: "addr2line", + enabled:true, + srcs: ["foo.rs"], + no_stdlibs: true, + product_available: true, + host_supported: true, + vendor_available: true, + vendor_ramdisk_available: true, + recovery_available: true, + native_coverage: false, + sysroot: true, + apex_available: ["//apex_available:platform", "//apex_available:anyapex"], + min_sdk_version: "29", + } + rust_library_rlib { + name: "libadler", + crate_name: "adler", + enabled:true, + srcs: ["foo.rs"], + no_stdlibs: true, + product_available: true, + host_supported: true, + vendor_available: true, + vendor_ramdisk_available: true, + recovery_available: true, + native_coverage: false, + sysroot: true, + apex_available: ["//apex_available:platform", "//apex_available:anyapex"], + min_sdk_version: "29", + } + rust_library_rlib { + name: "liballoc", + crate_name: "alloc", + enabled:true, + srcs: ["foo.rs"], + no_stdlibs: true, + product_available: true, + host_supported: true, + vendor_available: true, + vendor_ramdisk_available: true, + recovery_available: true, + native_coverage: false, + sysroot: true, + apex_available: ["//apex_available:platform", "//apex_available:anyapex"], + min_sdk_version: "29", + } + rust_library_rlib { + name: "libcfg_if", + crate_name: "cfg_if", + enabled:true, + srcs: ["foo.rs"], + no_stdlibs: true, + product_available: true, + host_supported: true, + vendor_available: true, + vendor_ramdisk_available: true, + recovery_available: true, + native_coverage: false, + sysroot: true, + apex_available: ["//apex_available:platform", "//apex_available:anyapex"], + min_sdk_version: "29", + } + rust_library_rlib { + name: "libcompiler_builtins", + crate_name: "compiler_builtins", + enabled:true, + srcs: ["foo.rs"], + no_stdlibs: true, + product_available: true, + host_supported: true, + vendor_available: true, + vendor_ramdisk_available: true, + recovery_available: true, + native_coverage: false, + sysroot: true, + apex_available: ["//apex_available:platform", "//apex_available:anyapex"], + min_sdk_version: "29", + } + rust_library_rlib { + name: "libcore", + crate_name: "core", + enabled:true, + srcs: ["foo.rs"], + no_stdlibs: true, + product_available: true, + host_supported: true, + vendor_available: true, + vendor_ramdisk_available: true, + recovery_available: true, + native_coverage: false, + sysroot: true, + apex_available: ["//apex_available:platform", "//apex_available:anyapex"], + min_sdk_version: "29", + } + rust_library_rlib { + name: "libgimli", + crate_name: "gimli", + enabled:true, + srcs: ["foo.rs"], + no_stdlibs: true, + product_available: true, + host_supported: true, + vendor_available: true, + vendor_ramdisk_available: true, + recovery_available: true, + native_coverage: false, + sysroot: true, + apex_available: ["//apex_available:platform", "//apex_available:anyapex"], + min_sdk_version: "29", + } + rust_library_rlib { + name: "libhashbrown", + crate_name: "hashbrown", + enabled:true, + srcs: ["foo.rs"], + no_stdlibs: true, + product_available: true, + host_supported: true, + vendor_available: true, + vendor_ramdisk_available: true, + recovery_available: true, + native_coverage: false, + sysroot: true, + apex_available: ["//apex_available:platform", "//apex_available:anyapex"], + min_sdk_version: "29", + } + rust_library_rlib { + name: "liblibc", + crate_name: "libc", + enabled:true, + srcs: ["foo.rs"], + no_stdlibs: true, + product_available: true, + host_supported: true, + vendor_available: true, + vendor_ramdisk_available: true, + recovery_available: true, + native_coverage: false, + sysroot: true, + apex_available: ["//apex_available:platform", "//apex_available:anyapex"], + min_sdk_version: "29", + } + rust_library_rlib { + name: "libmemchr", + crate_name: "memchr", + enabled:true, + srcs: ["foo.rs"], + no_stdlibs: true, + product_available: true, + host_supported: true, + vendor_available: true, + vendor_ramdisk_available: true, + recovery_available: true, + native_coverage: false, + sysroot: true, + apex_available: ["//apex_available:platform", "//apex_available:anyapex"], + min_sdk_version: "29", + } + rust_library_rlib { + name: "libminiz_oxide", + crate_name: "miniz_oxide", + enabled:true, + srcs: ["foo.rs"], + no_stdlibs: true, + product_available: true, + host_supported: true, + vendor_available: true, + vendor_ramdisk_available: true, + recovery_available: true, + native_coverage: false, + sysroot: true, + apex_available: ["//apex_available:platform", "//apex_available:anyapex"], + min_sdk_version: "29", + } + rust_library_rlib { + name: "libobject", + crate_name: "object", + enabled:true, + srcs: ["foo.rs"], + no_stdlibs: true, + product_available: true, + host_supported: true, + vendor_available: true, + vendor_ramdisk_available: true, + recovery_available: true, + native_coverage: false, + sysroot: true, + apex_available: ["//apex_available:platform", "//apex_available:anyapex"], + min_sdk_version: "29", + } + rust_library_rlib { + name: "libpanic_unwind", + crate_name: "panic_unwind", + enabled:true, + srcs: ["foo.rs"], + no_stdlibs: true, + product_available: true, + host_supported: true, + vendor_available: true, + vendor_ramdisk_available: true, + recovery_available: true, + native_coverage: false, + sysroot: true, + apex_available: ["//apex_available:platform", "//apex_available:anyapex"], + min_sdk_version: "29", + } + rust_library_rlib { + name: "librustc_demangle", + crate_name: "rustc_demangle", + enabled:true, + srcs: ["foo.rs"], + no_stdlibs: true, + product_available: true, + host_supported: true, + vendor_available: true, + vendor_ramdisk_available: true, + recovery_available: true, + native_coverage: false, + sysroot: true, + apex_available: ["//apex_available:platform", "//apex_available:anyapex"], + min_sdk_version: "29", + } + rust_library_rlib { + name: "librustc_std_workspace_alloc", + crate_name: "rustc_std_workspace_alloc", + enabled:true, + srcs: ["foo.rs"], + no_stdlibs: true, + product_available: true, + host_supported: true, + vendor_available: true, + vendor_ramdisk_available: true, + recovery_available: true, + native_coverage: false, + sysroot: true, + apex_available: ["//apex_available:platform", "//apex_available:anyapex"], + min_sdk_version: "29", + } + rust_library_rlib { + name: "librustc_std_workspace_core", + crate_name: "rustc_std_workspace_core", + enabled:true, + srcs: ["foo.rs"], + no_stdlibs: true, + product_available: true, + host_supported: true, + vendor_available: true, + vendor_ramdisk_available: true, + recovery_available: true, + native_coverage: false, + sysroot: true, + apex_available: ["//apex_available:platform", "//apex_available:anyapex"], + min_sdk_version: "29", + } + rust_library_rlib { + name: "libstd_detect", + crate_name: "std_detect", + enabled:true, + srcs: ["foo.rs"], + no_stdlibs: true, + product_available: true, + host_supported: true, + vendor_available: true, + vendor_ramdisk_available: true, + recovery_available: true, + native_coverage: false, + sysroot: true, + apex_available: ["//apex_available:platform", "//apex_available:anyapex"], + min_sdk_version: "29", + } rust_library { name: "libstd", crate_name: "std", @@ -113,6 +420,25 @@ func GatherRequiredDepsForTest() string { sysroot: true, apex_available: ["//apex_available:platform", "//apex_available:anyapex"], min_sdk_version: "29", + rlibs: [ + "libaddr2line", + "libadler", + "liballoc", + "libcfg_if", + "libcompiler_builtins", + "libcore", + "libgimli", + "libhashbrown", + "liblibc", + "libmemchr", + "libminiz_oxide", + "libobject", + "libpanic_unwind", + "librustc_demangle", + "librustc_std_workspace_alloc", + "librustc_std_workspace_core", + "libstd_detect", + ], } rust_library { name: "libtest", |