.gitea | ||
examples/musicbrainz_api | ||
src | ||
tests | ||
.gitignore | ||
build.rs | ||
Cargo.lock | ||
Cargo.toml | ||
README.md |
Music Hoard
Developing
Pre-requisites
musicbrainz-api
This feature requires the openssl
system library.
On Fedora:
sudo dnf install openssl-devel
Usage notes
Text selection
To select and copy text use the terminal-specific modifier key (on Linux this is usually the Shift key).
Code Coverage
Pre-requisites
rustup component add llvm-tools-preview
cargo install grcov
Generating Code Coverage
env CARGO_TARGET_DIR=codecov \
rm -rf ./codecov/debug/{coverage,profraw}
env CARGO_TARGET_DIR=codecov \
cargo clean -p musichoard
env RUSTFLAGS="-C instrument-coverage" \
LLVM_PROFILE_FILE="codecov/debug/profraw/musichoard-%p-%m.profraw" \
CARGO_TARGET_DIR=codecov \
BEETSDIR=./ \
cargo test --all-features --all-targets
grcov codecov/debug/profraw \
--binary-path ./codecov/debug/ \
--output-types html \
--source-dir . \
--ignore-not-existing \
--ignore "build.rs" \
--ignore "examples/*" \
--ignore "tests/*" \
--ignore "src/main.rs" \
--ignore "src/bin/musichoard-edit.rs" \
--excl-line "^#\[derive|unimplemented\!\(\)" \
--excl-start "GRCOV_EXCL_START|mod tests \{" \
--excl-stop "GRCOV_EXCL_STOP" \
--output-path ./codecov/debug/coverage/
xdg-open codecov/debug/coverage/index.html
Note that some changes may not be visible until codecov/debug/coverage
is removed and the grcov
command is rerun.
For most cases cargo clean
can be replaced with rm -rf ./codecov/debug/{coverage,profraw}
.
Benchmarks
Pre-requisites
rustup toolchain install nightly
Running benchmarks
env BEETSDIR=./ rustup run nightly cargo bench --all-features --all-targets