diff --git a/ci/test-checks.sh b/ci/test-checks.sh index 9d60586e8a..03ddeea0c4 100755 --- a/ci/test-checks.sh +++ b/ci/test-checks.sh @@ -79,7 +79,6 @@ _ ci/do-audit.sh cd "$project" _ "$cargo" nightly clippy -- --deny=warnings --allow=clippy::missing_safety_doc _ "$cargo" stable fmt -- --check - _ "$cargo" nightly test ) done } diff --git a/ci/test-stable.sh b/ci/test-stable.sh index 17f4e0802a..1d7cbc1bce 100755 --- a/ci/test-stable.sh +++ b/ci/test-stable.sh @@ -43,7 +43,11 @@ test-stable-perf) # BPF solana-sdk legacy compile test ./cargo-build-bpf --manifest-path sdk/Cargo.toml - # BPF program tests + # BPF Program unit tests + "$cargo" stable test --manifest-path programs/bpf/Cargo.toml + cargo-build-bpf --manifest-path programs/bpf/Cargo.toml --bpf-sdk sdk/bpf + + # BPF program system tests _ make -C programs/bpf/c tests _ "$cargo" stable test \ --manifest-path programs/bpf/Cargo.toml \ diff --git a/sdk/cargo-build-bpf/src/main.rs b/sdk/cargo-build-bpf/src/main.rs index 1a2580922e..9ea688a9b7 100644 --- a/sdk/cargo-build-bpf/src/main.rs +++ b/sdk/cargo-build-bpf/src/main.rs @@ -401,8 +401,14 @@ fn build_bpf(config: Config, manifest_path: Option) { .packages .iter() .filter(|package| { - package.manifest_path.with_file_name("Xargo.toml").exists() - && metadata.workspace_members.contains(&package.id) + if metadata.workspace_members.contains(&package.id) { + for target in package.targets.iter() { + if target.kind.contains(&"cdylib".to_string()) { + return true; + } + } + } + false }) .collect::>(); diff --git a/sdk/cargo-test-bpf/src/main.rs b/sdk/cargo-test-bpf/src/main.rs index 209b956498..fa0bb3c166 100644 --- a/sdk/cargo-test-bpf/src/main.rs +++ b/sdk/cargo-test-bpf/src/main.rs @@ -152,8 +152,14 @@ fn test_bpf(config: Config, manifest_path: Option) { .packages .iter() .filter(|package| { - package.manifest_path.with_file_name("Xargo.toml").exists() - && metadata.workspace_members.contains(&package.id) + if metadata.workspace_members.contains(&package.id) { + for target in package.targets.iter() { + if target.kind.contains(&"cdylib".to_string()) { + return true; + } + } + } + false }) .collect::>();