Pull all the Rust BPF tests into a single workspace so they share dependencies (#5878)

This commit is contained in:
Jack May
2019-09-11 14:55:58 -07:00
committed by GitHub
parent a85604b2ba
commit 176c7d8b13
20 changed files with 1887 additions and 104 deletions

1835
programs/bpf/Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -30,3 +30,20 @@ solana_rbpf = "=0.1.16"
[[bench]]
name = "bpf_loader"
[workspace]
members = [
"rust/128bit",
"rust/128bit_dep",
"rust/alloc",
"rust/dep_crate",
"rust/external_spend",
"rust/iter",
"rust/many_args",
"rust/many_args_dep",
"rust/noop",
"rust/panic",
"rust/param_passing",
"rust/param_passing_dep",
"rust/sysval",
]

View File

@ -39,7 +39,7 @@ fn rerun_if_changed(files: &[&str], directories: &[&str], excludes: &[&str]) {
fn main() {
let bpf_c = !env::var("CARGO_FEATURE_BPF_C").is_err();
if bpf_c {
let install_dir = "OUT_DIR=../../../target/".to_string()
let install_dir = "OUT_DIR=../target/".to_string()
+ &env::var("PROFILE").unwrap()
+ &"/bpf".to_string();
@ -58,7 +58,7 @@ fn main() {
let bpf_rust = !env::var("CARGO_FEATURE_BPF_RUST").is_err();
if bpf_rust {
let install_dir =
"../../target/".to_string() + &env::var("PROFILE").unwrap() + &"/bpf".to_string();
"target/".to_string() + &env::var("PROFILE").unwrap() + &"/bpf".to_string();
assert!(Command::new("mkdir")
.arg("-p")
@ -95,8 +95,8 @@ fn main() {
))
.success());
let src = format!(
"rust/{}/target/bpfel-unknown-unknown/release/solana_bpf_rust_{}.so",
program, program,
"target/bpfel-unknown-unknown/release/solana_bpf_rust_{}.so",
program,
);
assert!(Command::new("cp")
.arg(&src)

View File

@ -19,9 +19,6 @@ solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "0.19.0-pre0" }
program = ["solana-sdk/program"]
default = ["program"]
[workspace]
members = []
[lib]
crate-type = ["cdylib"]
name = "solana_bpf_rust_128bit"

View File

@ -16,7 +16,4 @@ solana-sdk = { path = "../../../../sdk/", version = "0.19.0-pre0", default-featu
[features]
program = ["solana-sdk/program"]
default = ["program"]
[workspace]
members = []
default = ["program"]

View File

@ -18,9 +18,6 @@ solana-sdk = { path = "../../../../sdk/", version = "0.19.0-pre0", default-featu
program = ["solana-sdk/program"]
default = ["program"]
[workspace]
members = []
[lib]
crate-type = ["cdylib"]
name = "solana_bpf_rust_alloc"

View File

@ -19,9 +19,6 @@ solana-sdk = { path = "../../../../sdk/", version = "0.19.0-pre0", default-featu
program = ["solana-sdk/program"]
default = ["program"]
[workspace]
members = []
[lib]
crate-type = ["cdylib"]
name = "solana_bpf_rust_dep_crate"

View File

@ -20,14 +20,18 @@ Supported actions:
EOF
}
sdkDir=../../..
targetDir=../../target
profile=bpfel-unknown-unknown/release
perform_action() {
set -e
case "$1" in
build)
./../../../sdk/bpf/rust/build.sh "$2"
"$sdkDir"/sdk/bpf/rust/build.sh "$2"
;;
clean)
./../../../sdk/bpf/rust/clean.sh "$2"
"$sdkDir"/sdk/bpf/rust/clean.sh "$2"
;;
test)
(
@ -57,34 +61,29 @@ perform_action() {
# - rustfilt
(
pwd
./do.sh clean "$3"
./do.sh build "$3"
cd "$3"
set +e
cp ./target/dump.txt ./targetdump-last.txt 2>/dev/null
set -e
ls \
-la \
./target/bpfel-unknown-unknown/release/solana_bpf_rust_"${3%/}".so \
> ./target/dump_mangled.txt
"$targetDir"/"$profile"/solana_bpf_rust_"${3%/}".so \
> "$targetDir"/"${3%/}"-dump-mangled.txt
greadelf \
-aW \
./target/bpfel-unknown-unknown/release/solana_bpf_rust_"${3%/}".so \
>> ./target/dump_mangled.txt
"$targetDir"/"$profile"/solana_bpf_rust_"${3%/}".so \
>> "$targetDir"/"${3%/}"-dump-mangled.txt
llvm-objdump \
-print-imm-hex \
--source \
--disassemble \
./target/bpfel-unknown-unknown/release/solana_bpf_rust_"${3%/}".so \
>> ./target/dump_mangled.txt
"$targetDir"/"$profile"/solana_bpf_rust_"${3%/}".so \
>> "$targetDir"/"${3%/}"-dump-mangled.txt
sed \
s/://g \
< ./target/dump_mangled.txt \
< "$targetDir"/"${3%/}"-dump-mangled.txt \
| rustfilt \
> ./target/dump.txt
> "$targetDir"/"${3%/}"-dump.txt
)
;;
help)

View File

@ -18,9 +18,6 @@ solana-sdk = { path = "../../../../sdk/", version = "0.19.0-pre0", default-featu
program = ["solana-sdk/program"]
default = ["program"]
[workspace]
members = []
[lib]
crate-type = ["cdylib"]
name = "solana_bpf_rust_external_spend"

View File

@ -18,9 +18,6 @@ solana-sdk = { path = "../../../../sdk/", version = "0.19.0-pre0", default-featu
program = ["solana-sdk/program"]
default = ["program"]
[workspace]
members = []
[lib]
crate-type = ["cdylib"]
name = "solana_bpf_rust_iter"

View File

@ -19,9 +19,6 @@ solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "0.19.0-p
program = ["solana-sdk/program"]
default = ["program"]
[workspace]
members = []
[lib]
crate-type = ["cdylib"]
name = "solana_bpf_rust_many_args"

View File

@ -16,7 +16,4 @@ solana-sdk = { path = "../../../../sdk/", version = "0.19.0-pre0", default-featu
[features]
program = ["solana-sdk/program"]
default = ["program"]
[workspace]
members = []
default = ["program"]

View File

@ -18,9 +18,6 @@ solana-sdk = { path = "../../../../sdk/", version = "0.19.0-pre0", default-featu
program = ["solana-sdk/program"]
default = ["program"]
[workspace]
members = []
[lib]
crate-type = ["cdylib"]
name = "solana_bpf_rust_noop"

View File

@ -18,9 +18,6 @@ solana-sdk = { path = "../../../../sdk/", version = "0.19.0-pre0", default-featu
program = ["solana-sdk/program"]
default = ["program"]
[workspace]
members = []
[lib]
name = "solana_bpf_rust_panic"
crate-type = ["cdylib"]

View File

@ -19,9 +19,6 @@ solana-bpf-rust-param-passing-dep = { path = "../param_passing_dep", version = "
program = ["solana-sdk/program"]
default = ["program"]
[workspace]
members = []
[lib]
crate-type = ["cdylib"]
name = "solana_bpf_rust_param_passing"

View File

@ -17,6 +17,3 @@ solana-sdk = { path = "../../../../sdk/", version = "0.19.0-pre0", default-featu
[features]
program = ["solana-sdk/program"]
default = ["program"]
[workspace]
members = []

View File

@ -18,9 +18,6 @@ solana-sdk = { path = "../../../../sdk/", version = "0.19.0-pre0", default-featu
program = ["solana-sdk/program"]
default = ["program"]
[workspace]
members = []
[lib]
crate-type = ["cdylib"]
name = "solana_bpf_rust_sysval"