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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 1887 additions and 104 deletions

30
Cargo.lock generated
View File

@ -312,11 +312,6 @@ name = "byte-tools"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "byteorder"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "byteorder"
version = "1.3.2"
@ -844,14 +839,6 @@ name = "either"
version = "1.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "elf"
version = "0.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "elfkit"
version = "0.0.6"
@ -2906,21 +2893,6 @@ dependencies = [
"solana-sdk 0.19.0-pre0",
]
[[package]]
name = "solana-bpf-programs"
version = "0.19.0-pre0"
dependencies = [
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"elf 0.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-bpf-loader-api 0.19.0-pre0",
"solana-logger 0.19.0-pre0",
"solana-runtime 0.19.0-pre0",
"solana-sdk 0.19.0-pre0",
"solana_rbpf 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "solana-btc-spv-api"
version = "0.19.0-pre0"
@ -5061,7 +5033,6 @@ dependencies = [
"checksum bv 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6cd4ae9e585e783756cd14b0ea21863acdfbb6383664ac2f7c9ef8d180a14727"
"checksum byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40"
"checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
"checksum byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0fc10e8cc6b2580fda3f36eb6dc5316657f812a3df879a44a66fc9f0fdbc4855"
"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
"checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
"checksum bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b"
@ -5121,7 +5092,6 @@ dependencies = [
"checksum dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e"
"checksum ed25519-dalek 1.0.0-pre.1 (registry+https://github.com/rust-lang/crates.io-index)" = "81956bcf7ef761fb4e1d88de3fa181358a0d26cbcb9755b587a08f9119824b86"
"checksum either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5527cfe0d098f36e3f8839852688e63c8fff1c90b2b405aef730615f9a7bcf7b"
"checksum elf 0.0.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4841de15dbe0e49b9b62a417589299e3be0d557e0900d36acb87e6dae47197f5"
"checksum elfkit 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "02f182eda16a7360c80a2f8638d0726e9d5478173058f1505c42536ca666ecd2"
"checksum ena 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f56c93cc076508c549d9bb747f79aa9b4eb098be7b8cad8830c3137ef52d1e00"
"checksum encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "90b2c9496c001e8cb61827acdefad780795c42264c137744cae6f7d9e3450abd"

View File

@ -21,7 +21,6 @@ members = [
"merkle-tree",
"measure",
"metrics",
"programs/bpf",
"programs/bpf_loader_api",
"programs/bpf_loader_program",
"programs/budget_api",
@ -58,7 +57,6 @@ members = [
"vote-signer",
"cli",
]
exclude = [
"programs/bpf/rust/noop",
"programs/bpf",
]

View File

@ -24,16 +24,19 @@ _ ci/nits.sh
_ ci/order-crates-for-publishing.py
_ book/build.sh
for project in programs/bpf/rust/*/ ; do
echo "+++ do_bpf_check $project"
(
cd "$project"
_ cargo +"$rust_stable" fmt --all -- --check
_ cargo +"$rust_nightly" test --all
_ cargo +"$rust_nightly" clippy --version
_ cargo +"$rust_nightly" clippy --all -- --deny=warnings
_ cargo +"$rust_stable" audit
)
done
{
cd programs/bpf
_ cargo +"$rust_stable" audit
for project in rust/*/ ; do
echo "+++ do_bpf_checks $project"
(
cd "$project"
_ cargo +"$rust_stable" fmt -- --check
_ cargo +"$rust_nightly" test
_ cargo +"$rust_nightly" clippy --version
_ cargo +"$rust_nightly" clippy -- --deny=warnings
)
done
}
echo --- ok

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"