mutagen
cargo-mutants
Our great sponsors
mutagen | cargo-mutants | |
---|---|---|
8 | 8 | |
616 | 423 | |
- | - | |
0.0 | 9.7 | |
11 months ago | 7 days ago | |
Rust | Rust | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
mutagen
-
Rust Tests Itself (Kind of!)
There are two testing techniques you didn't mention: Snapshot tests (which are greatly simplified using the insta crate and mutation testing (which can be done on nightly with my mutagen crate.
-
What's everyone working on this week (6/2022)?
How does this compare to mutagen?
-
Hey Rustaceans! Got an easy question? Ask here (52/2021)!
Do you mean as part of build.rs? Yes, that's certainly doable, and has been done in the past. You can use env!("OUT_DIR") for that. Examples you may want to refer to include my mutagen crate and criterion.
-
Uncovered Intermediate Topics
Would be great if this could include mutation testing.
-
Question for experienced Rustaceans
I wrote a good number of macros though, both macro_rules! and various proc_macros. The latest iteration of overflower has both, for example. mutagen is a mutation testing tool built as a proc macro, and it's helper library has a bunch of macros, too. compact_arena uses macros to tie unique lifetime tags to arenas.
-
Make Your Tests Bulletproof With Mutation Testing
Also there are far more mutation testing frameworks. I maintain the rust-based mutagen one. There are also LLVM-based ones (etc. mull) that can cover multiple languages (but may yield mutations not expressible in your preferred one).
-
Mutable Arguments Considered Harmful | micouy.github.io
Cargo (and Rust) makes it so easy to write test cases that you should really use it to find these kinds of bugs. And there are other good test crates available: mutagen, quickcheck, etc.
-
Project Ideas
I had a student completely reachitecture my mutagen tool, and saw some working on various clippy contributions.
cargo-mutants
-
Distcc: A fast, free distributed C/C++ compiler
Hi Rusty!
For a later hack in the same vein, check out https://github.com/sourcefrog/cargo-mutants
- cargo-mutants 0.2.9 finds poorly-tested code faster
-
What's everyone working on this week (13/2022)?
cargo-mutants got a couple of releases over the weekend, fixing some environment-triggered bugs on Windows and Linux ecryptfs, and adding a better overall progress indicator (demo: https://asciinema.org/a/481375). It is getting better at avoiding uninteresting or pointless mutations, although there's a lot more to do there, and at printing function name paths well.
-
What’s everyone working on this week (9/2022)?
While working on Conserve and cargo-mutants I felt that existing Rust progress-bar libraries like Indicatif didn't give me enough control of how the bar was drawn, or at least I was working around them to insert my own text. For example, I wanted to draw several counters into a single line, and it seems like the only way to do that is to just push in a text string.
-
What's everyone working on this week (7/2022)?
Continuing with some fast-follow enhancements in cargo-mutants in response to user feedback: for example doctests are typically slow and in some trees not important for coverage, so you can now skip them.
- cargo-mutants 0.2: a new mutation testing tool
-
What's everyone working on this week (6/2022)?
I got cargo-mutants to a state where I felt I could announce it and ask for public feedback.
What are some alternatives?
ClippyCloud - Easy way to upload and share files quickly.
conserve - 🌲 Robust file backup tool in Rust
cargo-fuzz - Command line helpers for fuzzing
cargo-public-api - List and diff the public API of Rust library crates between releases and commits. Detect breaking API changes and semver violations via CI or a CLI.
tokio - A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...
elitetopy - elite -> python3 converter
rust - Empowering everyone to build reliable and efficient software.
strop - Stochastically generates machine code
alacritty - A cross-platform, OpenGL terminal emulator.
elite - Fegeya Elitebuild, small, powerful build system. Written in Rust.
rumqtt - The MQTT ecosystem in rust
comic-shanns - a classy font