ci: unbreak Windows tests; sharpen Linux loader-crash forensics
oakcodec: gate find_ffmpeg_searches_path to unix (chmod 0755 + shebang fixture) and make find_ffmpeg_missing_returns_empty assert absoluteness instead of a '/' prefix so the tests compile and pass on Windows. ci (Windows): export RUSTFLAGS=-C link-args=-lmsvcrt in the build and test steps. mingw-w64 (Nov 2025) forwards _assert to __msvcrt_assert inside libmingwex.a, and rustc's link order leaves -lmingwex last, so binaries that pull _assert.o (oakcommon's real_ocio test) fail to link; a trailing -lmsvcrt re-scans the CRT import lib afterwards. ci (Linux): copier_test dies inside ld.so before printing anything. Replace the LD_DEBUG probe with stronger forensics: exported dynsyms (interposition suspects), strace tail, valgrind tail, and siginfo (si_code/si_addr) from the gdb run.
This commit is contained in:
@@ -657,7 +657,10 @@ mod tests {
|
||||
let found = ProxyManager::find_ffmpeg("/definitely/not/a/real/ffmpeg");
|
||||
// Either an absolute configured/installed match or empty; never a raw
|
||||
// unresolved path.
|
||||
assert!(found.is_empty() || found.starts_with('/'));
|
||||
assert!(
|
||||
found.is_empty() || std::path::Path::new(&found).is_absolute(),
|
||||
"found: {found}"
|
||||
);
|
||||
}
|
||||
|
||||
/// `oakcodec_proxy_params` byte-level layout lock against
|
||||
@@ -683,6 +686,9 @@ mod tests {
|
||||
mod tests_extra {
|
||||
use super::*;
|
||||
|
||||
/// Unix-only: builds a fake `ffmpeg` shell script with a mode-0755
|
||||
/// chmod; Windows has no permission bits and searches for `ffmpeg.exe`.
|
||||
#[cfg(unix)]
|
||||
#[test]
|
||||
fn find_ffmpeg_searches_path() {
|
||||
// Create a fake executable in a temp dir and prepend it to PATH.
|
||||
|
||||
Reference in New Issue
Block a user