From 777342a1eff0fd291392d0fdd304b63d5e8e2519 Mon Sep 17 00:00:00 2001 From: Jack May Date: Tue, 29 Sep 2020 17:25:51 -0700 Subject: [PATCH] Add rand dependency test (#12566) * Add rand dependency test * nudge --- programs/bpf/Cargo.lock | 9 +++++++++ programs/bpf/Cargo.toml | 1 + programs/bpf/build.rs | 1 + programs/bpf/rust/rand/Cargo.toml | 28 ++++++++++++++++++++++++++++ programs/bpf/rust/rand/Xargo.toml | 2 ++ programs/bpf/rust/rand/src/lib.rs | 18 ++++++++++++++++++ programs/bpf/tests/programs.rs | 1 + 7 files changed, 60 insertions(+) create mode 100644 programs/bpf/rust/rand/Cargo.toml create mode 100644 programs/bpf/rust/rand/Xargo.toml create mode 100644 programs/bpf/rust/rand/src/lib.rs diff --git a/programs/bpf/Cargo.lock b/programs/bpf/Cargo.lock index 50075014f..90ad25af3 100644 --- a/programs/bpf/Cargo.lock +++ b/programs/bpf/Cargo.lock @@ -1896,6 +1896,15 @@ dependencies = [ "solana-sdk", ] +[[package]] +name = "solana-bpf-rust-rand" +version = "1.4.0" +dependencies = [ + "getrandom", + "rand", + "solana-sdk", +] + [[package]] name = "solana-bpf-rust-sanity" version = "1.4.0" diff --git a/programs/bpf/Cargo.toml b/programs/bpf/Cargo.toml index 359983db3..4887866e6 100644 --- a/programs/bpf/Cargo.toml +++ b/programs/bpf/Cargo.toml @@ -52,6 +52,7 @@ members = [ "rust/panic", "rust/param_passing", "rust/param_passing_dep", + "rust/rand", "rust/sanity", "rust/sysval", ] diff --git a/programs/bpf/build.rs b/programs/bpf/build.rs index 292606211..85c018837 100644 --- a/programs/bpf/build.rs +++ b/programs/bpf/build.rs @@ -80,6 +80,7 @@ fn main() { "noop", "panic", "param_passing", + "rand", "sanity", "sysval", ]; diff --git a/programs/bpf/rust/rand/Cargo.toml b/programs/bpf/rust/rand/Cargo.toml new file mode 100644 index 000000000..f4309c1db --- /dev/null +++ b/programs/bpf/rust/rand/Cargo.toml @@ -0,0 +1,28 @@ + +# Note: This crate must be built using do.sh + +[package] +name = "solana-bpf-rust-rand" +version = "1.4.0" +description = "Solana BPF test program written in Rust" +authors = ["Solana Maintainers "] +repository = "https://github.com/solana-labs/solana" +license = "Apache-2.0" +homepage = "https://solana.com/" +edition = "2018" + +[dependencies] +getrandom = { version = "0.1.14", features = ["dummy"] } +rand = "0.7" +solana-sdk = { path = "../../../../sdk/", version = "1.4.0", default-features = false } + +[features] +program = ["solana-sdk/program"] +default = ["program", "solana-sdk/default"] + +[lib] +name = "solana_bpf_rust_rand" +crate-type = ["cdylib"] + +[package.metadata.docs.rs] +targets = ["x86_64-unknown-linux-gnu"] diff --git a/programs/bpf/rust/rand/Xargo.toml b/programs/bpf/rust/rand/Xargo.toml new file mode 100644 index 000000000..1744f098a --- /dev/null +++ b/programs/bpf/rust/rand/Xargo.toml @@ -0,0 +1,2 @@ +[target.bpfel-unknown-unknown.dependencies.std] +features = [] \ No newline at end of file diff --git a/programs/bpf/rust/rand/src/lib.rs b/programs/bpf/rust/rand/src/lib.rs new file mode 100644 index 000000000..4424f3ad4 --- /dev/null +++ b/programs/bpf/rust/rand/src/lib.rs @@ -0,0 +1,18 @@ +//! @brief Example Rust-based BPF program that tests rand behavior + +#![allow(unreachable_code)] + +extern crate solana_sdk; +use solana_sdk::{ + account_info::AccountInfo, entrypoint, entrypoint::ProgramResult, info, pubkey::Pubkey, +}; + +entrypoint!(process_instruction); +fn process_instruction( + _program_id: &Pubkey, + _accounts: &[AccountInfo], + _instruction_data: &[u8], +) -> ProgramResult { + info!("rand"); + Ok(()) +} diff --git a/programs/bpf/tests/programs.rs b/programs/bpf/tests/programs.rs index 5d0c18e14..ba4df7f22 100644 --- a/programs/bpf/tests/programs.rs +++ b/programs/bpf/tests/programs.rs @@ -152,6 +152,7 @@ fn test_program_bpf_sanity() { ("solana_bpf_rust_noop", true), ("solana_bpf_rust_panic", false), ("solana_bpf_rust_param_passing", true), + ("solana_bpf_rust_rand", true), ("solana_bpf_rust_sanity", true), ("solana_bpf_rust_sysval", true), ]);