mirror of
https://github.com/lotabout/skim.git
synced 2026-09-10 07:16:23 -04:00
* wip: windows support * feat: windows support * feat: add windows target to CI * chore: generate completions & manpage * Update src/util.rs Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * chore: cleanup & doc * chore: generate completions & manpage * chore: generate dist * fix: reduplicate default test * chore: regate tmux * chore: remove useless test-utils feature * fix(windows): ignore dirs in default_command * docs: update shell docs for windows * chore: generate completions & manpage * chore(justfile): do not ignore failed tests * fix: upload correct junit after profile change * fix: always execute exit commands * fix: windows-specific ctrl-c handling * chore: misc docs & other updates Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * chore: generate completions & manpage * chore: include license in MSI installer --------- Co-authored-by: Skim bot <skim-bot@skim-rs.github.io> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Your Name <you@example.com>
74 lines
2.3 KiB
TOML
74 lines
2.3 KiB
TOML
experimental = ["setup-scripts", "wrapper-scripts"]
|
|
|
|
[scripts.setup.stop-tmux]
|
|
command = "sh -c 'tmux kill-session -t skim_e2e || true'"
|
|
[scripts.setup.start-tmux]
|
|
command = "tmux new-session -d -s skim_e2e -n skim_e2e"
|
|
|
|
# Valgrind wrapper for memory leak detection
|
|
[scripts.wrapper.valgrind]
|
|
command = [
|
|
"valgrind",
|
|
"--leak-check=full",
|
|
"--show-leak-kinds=all",
|
|
"--track-origins=yes",
|
|
"--error-exitcode=1",
|
|
"--suppressions=.config/valgrind.supp"
|
|
]
|
|
|
|
[profile.default]
|
|
fail-fast = false
|
|
retries = 2
|
|
[[profile.default.scripts]]
|
|
platform = "cfg(unix)"
|
|
setup = ["stop-tmux", "start-tmux"]
|
|
[profile.default.junit]
|
|
path = "junit.xml"
|
|
|
|
[profile.ci]
|
|
retries = 9
|
|
|
|
# Valgrind profile for memory leak detection
|
|
# Usage: cargo nextest run --profile valgrind
|
|
#
|
|
# Note: Valgrind can detect memory leaks but does NOT detect dangling threads.
|
|
# For thread leak detection, use ThreadSanitizer instead (see below).
|
|
[profile.valgrind]
|
|
fail-fast = false
|
|
retries = 2
|
|
test-threads = 1 # Run tests serially to avoid interleaved valgrind output
|
|
[[profile.valgrind.scripts]]
|
|
platform = "cfg(unix)"
|
|
setup = ["stop-tmux", "start-tmux"]
|
|
run-wrapper = "valgrind"
|
|
|
|
# ThreadSanitizer profile for detecting data races and thread issues
|
|
# Usage:
|
|
# 1. First build with sanitizer (rebuilds stdlib and all deps):
|
|
# RUSTFLAGS="-Zsanitizer=thread" cargo +nightly build --tests -Zbuild-std --target x86_64-unknown-linux-gnu
|
|
# 2. Then run tests:
|
|
# TSAN_OPTIONS="detect_deadlocks=1" cargo +nightly nextest run --profile tsan --target x86_64-unknown-linux-gnu
|
|
#
|
|
# Note: ThreadSanitizer can detect:
|
|
# - Data races (concurrent unsynchronized access to memory)
|
|
# - Deadlocks (with TSAN_OPTIONS=detect_deadlocks=1)
|
|
# - Thread leaks (threads not joined before program exit)
|
|
#
|
|
# Requirements:
|
|
# - Rust nightly (for -Zsanitizer and -Zbuild-std flags)
|
|
# - The -Zbuild-std flag rebuilds the standard library with ThreadSanitizer
|
|
# instrumentation to avoid ABI mismatch errors
|
|
#
|
|
# Important: This takes a long time on first build as it recompiles everything
|
|
# including the standard library with ThreadSanitizer instrumentation.
|
|
#
|
|
# Environment variables:
|
|
# TSAN_OPTIONS="detect_deadlocks=1 second_deadlock_stack=1"
|
|
[profile.tsan]
|
|
fail-fast = false
|
|
retries = 3
|
|
test-threads = 1 # TSan requires running tests serially
|
|
[[profile.tsan.scripts]]
|
|
platform = "cfg(unix)"
|
|
setup = ["stop-tmux", "start-tmux"]
|