summaryrefslogtreecommitdiff
path: root/rust/testing.go
diff options
context:
space:
mode:
author Sam Delmerico <delmerico@google.com> 2023-06-16 10:28:04 -0400
committer Sam Delmerico <delmerico@google.com> 2023-09-15 22:46:56 +0000
commita588d153c85485336e0509f475a4eec653be339b (patch)
treef95a13945dd147c12c7ae5323763b8e14a2172f0 /rust/testing.go
parentd96a60685a3147d6d6f15daf4a5cad419e737430 (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.go326
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",