Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions crates/apr-cli/src/commands_enum.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1067,3 +1067,7 @@ pub enum DebugCommands {
#[cfg(all(test, feature = "training"))]
#[path = "code_output_format_help_tests.rs"]
mod code_output_format_help_tests;

#[cfg(test)]
#[path = "ptx_help_marker_tests.rs"]
mod ptx_help_marker_tests;
3 changes: 2 additions & 1 deletion crates/apr-cli/src/extended_commands.rs
Original file line number Diff line number Diff line change
Expand Up @@ -400,7 +400,8 @@ pub enum ExtendedCommands {
not(feature = "trueno-explain"),
command(
name = "ptx",
about = "PTX analysis and bug detection [unavailable in this build: cargo install aprender --features ptx; `apr ptx-debug` is always built]"
about = "PTX analysis and bug detection [unavailable in this build: cargo install aprender --features ptx; `apr ptx-debug` is always built]",
long_about = "PTX analysis and bug detection [unavailable in this build: cargo install aprender --features ptx; `apr ptx-debug` is always built]"
)
)]
Ptx {
Expand Down
40 changes: 40 additions & 0 deletions crates/apr-cli/src/ptx_help_marker_tests.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
//! `apr ptx --help` must carry the "unavailable in this build" marker (#4474, #2399 finding 1).
//!
//! Clap derives `long_about` from the doc comment unless it is set explicitly, so
//! overriding only `about` left `--help` (the long form) without the marker.

const MARKER: &str = "unavailable in this build";

/// Clap's recursive build of the full `Commands` enum overflows the default
/// test-thread stack in debug builds, as in code_output_format_help_tests.rs.
#[test]
fn ptx_help_says_when_the_analyzer_is_not_built_in() {
std::thread::Builder::new()
.stack_size(16 * 1024 * 1024)
.spawn(ptx_help_body)
.expect("spawn")
.join()
.expect("ptx help row panicked");
}

fn ptx_help_body() {
use clap::CommandFactory;
let cmd = crate::Cli::command();
let ptx = cmd.find_subcommand("ptx").expect("ptx subcommand");
let short = ptx.get_about().map(ToString::to_string).unwrap_or_default();
let long = ptx
.get_long_about()
.or_else(|| ptx.get_about())
.map(ToString::to_string)
.unwrap_or_default();
let built = cfg!(feature = "trueno-explain");
for (what, text) in [("about", &short), ("long_about", &long)] {
assert_eq!(
text.contains(MARKER),
!built,
"apr ptx {what} marker presence must be {} when trueno-explain is {}: {text}",
!built,
if built { "on" } else { "off" }
);
}
}
4 changes: 2 additions & 2 deletions docs/audits/surface_audit.csv
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ apr,apr pretrain,6,x86_64-linux,pytorch,yes,1,apr-lint-diag,crates/apr-cli/src/e
apr,apr profile,3,x86_64-linux;nvidia-cuda,llama.cpp,yes,9,profiling,crates/apr-cli/src/extended_commands.rs:186,high
apr,apr prometheus-lint,1,x86_64-linux,NONE,yes,1,apr-lint-diag,crates/apr-cli/src/extended_commands.rs:1138,high
apr,apr prune,4,x86_64-linux,unsloth,yes,10,apr-core-commands,crates/apr-cli/src/model_ops_commands.rs:113,high
apr,apr ptx,4,x86_64-linux,NONE,yes,1,apr-lint-diag,crates/apr-cli/src/extended_commands.rs:387,high
apr,apr ptx,4,x86_64-linux,NONE,yes,1,apr-lint-diag,crates/apr-cli/src/extended_commands.rs:407,high
apr,apr ptx-map,6,x86_64-linux,NONE,yes,1,apr-lint-diag,crates/apr-cli/src/extended_commands.rs:355,high
apr,apr publish,6,x86_64-linux,llama.cpp,yes,10,apr-core-commands,crates/apr-cli/src/tool_commands.rs:46,high
apr,apr pull,4,x86_64-linux,llama.cpp,yes,10,apr-core-commands,crates/apr-cli/src/commands_enum.rs:552,high
Expand Down Expand Up @@ -453,7 +453,7 @@ apr,apr train sweep,6,x86_64-linux,pytorch,no,10,apr-core-commands,crates/apr-cl
apr,apr train watch,6,x86_64-linux,pytorch,no,10,apr-core-commands,crates/apr-cli/src/train_commands.rs:172,low
apr,apr tree,4,x86_64-linux,NONE,yes,1,apr-lint-diag,crates/apr-cli/src/extended_commands.rs:691,high
apr,apr tui,9,x86_64-linux,NONE,yes,10,apr-core-commands,crates/apr-cli/src/commands_enum.rs:820,medium
apr,apr tune,4,x86_64-linux,pytorch,yes,1,apr-lint-diag,crates/apr-cli/src/extended_commands.rs:409,high
apr,apr tune,4,x86_64-linux,pytorch,yes,1,apr-lint-diag,crates/apr-cli/src/extended_commands.rs:429,high
apr,apr typical-p-lint,1,x86_64-linux,NONE,yes,1,apr-lint-diag,crates/apr-cli/src/extended_commands.rs:1162,high
apr,apr unified-search-lint,1,x86_64-linux,NONE,yes,1,apr-lint-diag,crates/apr-cli/src/extended_commands.rs:1215,high
apr,apr unshard,9,x86_64-linux,llama.cpp,yes,1,apr-lint-diag,crates/apr-cli/src/extended_commands.rs:1254,medium
Expand Down
Loading