Nextest is a next-generation test runner for Rust.

Overview

nextest

Nextest is a next-generation test runner for Rust. For more, check out the website.

This repository contains the source code for:

  • cargo-nextest: a new, faster Cargo test runner Documentation (main)
  • libraries used by cargo-nextest:
  • quick-junit: a data model, serializer (and in the future deserializer) for JUnit/XUnit XML quick-junit on crates.io Documentation (latest release) Documentation (main)

Minimum supported Rust version

The minimum supported Rust version is Rust 1.54.

While a crate is pre-release status (0.x.x) it may have its MSRV bumped in a patch release. Once a crate has reached 1.x, any MSRV bump will be accompanied with a new minor version.

Contributing

See the CONTRIBUTING file for how to help out.

License

This project is available under the terms of either the Apache 2.0 license or the MIT license.

This project is derived from diem-devtools. Upstream source code is used under the terms of the Apache 2.0 license and the MIT license.

Comments
  • No such file or directory when trying to run tests in another docker container than it was built in

    No such file or directory when trying to run tests in another docker container than it was built in

    Hey

    I build the tests in a docker stage and execute them in the next. I run into

    │ Running tests in sequence                                                                                                                                                                                                  │
    │   Extracting 1 binaries to /tmp/nextest-archive-bb9dDJ                                                                                                                                                                     │
    │    Extracted 3 files to /tmp/nextest-archive-bb9dDJ in 1.58s                                                                                                                                                               │
    │ Error:                                                                                                                                                                                                                     │
    │    0: error building test list                                                                                                                                                                                             │
    │    1: running ''/tmp/nextest-archive-bb9dDJ/target/debug/deps/integration_tests-9cdfa58268cee69f --list --format terse'' failed                                                                                            │
    │    2: No such file or directory (os error 2)                                                                                                                                                                               │
    │                                                                                                                                                                                                                            │
    │   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                                                                                                                         │
    │                                 ⋮ 3 frames hidden ⋮                                                                                                                                                                        │
    │    4: cargo_nextest::dispatch::App::build_test_list::h0b139060a3d7e2cb                                                                                                                                                     │
    │       at <unknown source file>:<unknown line>                                                                                                                                                                              │
    │    5: cargo_nextest::dispatch::CargoNextestApp::exec::hc26ab86754cfce02                                                                                                                                                    │
    │       at <unknown source file>:<unknown line>                                                                                                                                                                              │
    │    6: cargo_nextest::main::h1c3419e2de29e9b3                                                                                                                                                                               │
    │       at <unknown source file>:<unknown line>                                                                                                                                                                              │
    │    7: std::sys_common::backtrace::__rust_begin_short_backtrace::h29484de5e2a0cf31                                                                                                                                          │
    │       at <unknown source file>:<unknown line>                                                                                                                                                                              │
    │    8: std::rt::lang_start::{{closure}}::ha37d78b2499ee6c9                                                                                                                                                                  │
    │       at <unknown source file>:<unknown line>                                                                                                                                                                              │
    │    9: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::had4f69b3aefb47a8                                                                                                               │
    │       at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/core/src/ops/function.rs:259                                                                                                                              │
    │   10: std::panicking::try::do_call::hf2ad5355fcafe775                                                                                                                                                                      │
    │       at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/std/src/panicking.rs:492                                                                                                                                  │
    │   11: std::panicking::try::h0a63ac363423e61e                                                                                                                                                                               │
    │       at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/std/src/panicking.rs:456                                                                                                                                  │
    │   12: std::panic::catch_unwind::h18088edcecb8693a                                                                                                                                                                          │
    │       at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/std/src/panic.rs:137                                                                                                                                      │
    │   13: std::rt::lang_start_internal::{{closure}}::ha7dad166dc711761                                                                                                                                                         │
    │       at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/std/src/rt.rs:128                                                                                                                                         │
    │   14: std::panicking::try::do_call::hda0c61bf3a57d6e6                                                                                                                                                                      │
    │       at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/std/src/panicking.rs:492                                                                                                                                  │
    │   15: std::panicking::try::hbc940e68560040a9                                                                                                                                                                               │
    │       at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/std/src/panicking.rs:456                                                                                                                                  │
    │   16: std::panic::catch_unwind::haed0df2aeb3fa368                                                                                                                                                                          │
    │       at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/std/src/panic.rs:137                                                                                                                                      │
    │   17: std::rt::lang_start_internal::h9c06694362b5b80c                                                                                                                                                                      │
    │       at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/std/src/rt.rs:128                                                                                                                                         │
    │   18: main<unknown>                                                                                                                                                                                                        │
    │       at <unknown source file>:<unknown line>                                                                                                                                                                              │
    │   19: __libc_start_main<unknown>                                                                                                                                                                                           │
    │       at <unknown source file>:<unknown line>                                                                                                                                                                              │
    │   20: _start<unknown>                                                                                                                                                                                                      │
    │       at <unknown source file>:<unknown line>
    

    I dug around the code and think the default runner is not found. But I did not understand what the default runner actually is. I tried overriding it but to no avail. Do you have any hints how to get it to run? When I just run /tmp/nextest-archive-bb9dDJ/target/debug/deps/integration_tests-9cdfa58268cee69f --list --format terse i get the list of tests successfully :)

    Thanks, Noah

    question 
    opened by Yatekii 22
  • Adds support for separated build and run

    Adds support for separated build and run

    Implements https://github.com/nextest-rs/nextest/issues/44

    This is still work in progress, but I just wanted to be sure I was on the right tracks from your point of view.

    I have the basic feature working:

    # builds and list binaries
    > cargo nextest list-bins --message-format json > binaries.json
    # runs without building
    > cargo nextest run --test-list binaries.json
    

    Still to do:

    • [x] add path remapping
    • [x] add tests

    At the moment, I'm still creating the graph when running, I'm wondering if I should save it (or at least the needed part). This could allow me to use the runner without cargo installed (which could be great for my use case, but not indispensable for the moment).

    opened by Guiguiprim 19
  • Add expression based test filtering

    Add expression based test filtering

    As you are up apparently, I push this to open the discussion.

    Following what you said, I was thinking maybe something along the line of:

    DSL

    • package(name)
    • deps(package_name)
    • rdeps(package_name)
    • test(partial_name)
    • not(expr)
    • expr && expr / expr and expr
    • expr || expr / expr or expr
    • (expr)

    Like -E "package(driver) or test(use_driver_)", -E "package(utility_package) and rdeps(utility_package)"

    A-filter-expressions 
    opened by Guiguiprim 13
  • Reduce the binary size needed for build reusing

    Reduce the binary size needed for build reusing

    Currently the entire target directory is needed when reusing build on another machine. This is quite a setback for us because previously we only need to transfer a specific test binary under target/debug/deps/ generated by cargo test --no-run.

    I'm wondering if it's possible to reduce the binaries that must be shared between two machines, and make this information easy enough to use. Or better yet, package the necessary test artifacts by nextest itself.

    This would be especially useful for test partitioning. For our use case, test cases from one large repo are sharded to tens of partitions. With this feature, each partition wouldn't have to download all the test binaries.

    question 
    opened by tabokie 12
  • Add homebrew/binstall/quickinstall support

    Add homebrew/binstall/quickinstall support

    Currently, the only way to install cargo-nextest is with the pre-built binaries, or by using cargo install. It would be nice to add other binary installation mechanisms as well.

    To consider:

    • [x] ~Release signing~ (now tracked at https://github.com/nextest-rs/nextest/issues/369)
    • [x] Integrate into cargo binstall
    • [x] ~Point people to cargo quickinstall~ (we already do our own binary releases now)
    • [x] Homebrew?
    opened by sunshowers 11
  • Tracking issue for reuse build options

    Tracking issue for reuse build options

    cargo-nextest 0.9.10 introduces experimental support for reusing the build across machines and invocations. This issue tracks stabilizing this option:

    • [x] How does this interact with #82?
    • [x] Verify option names.
    • [x] Ensure that the "cargo present on destination" and "cargo not present on destination" scenarios both work well.
    • [x] Is the current path remapping support sufficient?

    cc @Guiguiprim

    A-reuse-build 
    opened by sunshowers 10
  • Add partition operator to filter expressions?

    Add partition operator to filter expressions?

    Consider adding a partition() operator to filter expressions, and possibly deprecating the current --partition flag.

    This is in principle possible to do, since (assuming a specific state of source code) all partition assignments for tests are completely deterministic. However, the current partition scheme for count: uses mutable state, which is too complicated -- instead, we can simply give each test a numeric ID and simply use modulo N for the count partition operator.

    Strictly speaking, this doesn't block the release of filter expressions. However, if we do it before releasing filter expressions, we can ban using --partition and -E simultaneously. If we implement this after the release, we'll have to scan the query to look for partition operators, raising the complexity of the implementation -- so there's some advantages to doing it now.

    A-filter-expressions 
    opened by sunshowers 9
  • Add support for running tests without building them

    Add support for running tests without building them

    This might be a weird request, but:

    To optimize CI resources, improve build reproducibility and other things, I have the following setup:

    • One CI step: cross compilation for windows from a linux CI runner (using nix-docker image)
    • An other CI step: run the tests in a windows VM

    Currently I build the tests with cargo test --no-run and then execute them without cargo test in the VMs (with an ugly script).

    If it was possible to:

    • cargo nixtest --no-run in the CI runner
    • copy the target folder (or at least the relevant part) in the VM
    • cargo nixtest --no-build in the VM

    It would be really awesome.

    As is, I don't know if it would be easily doable. If it is not to complex and an acceptable feature, I might be open in doing it under mentoring.

    enhancement help wanted 
    opened by Guiguiprim 9
  • --recursive to test an entire workspace?

    --recursive to test an entire workspace?

    Hi, first of all awesome crate! :D On just a dual core system it seems to be 10-15% faster than default cargo test. :)

    While playing around with it, I wondered if it would be useful to have some kind of --recursive flag that does not only run test in the current directory but also on all other crates of the current workspace.

    opened by matthiaskrgr 9
  • Run test parallely  when `--no-capture` flag is enabled

    Run test parallely when `--no-capture` flag is enabled

    I just noticed there is a Runner option:

    --no-capture              Run tests serially and do not capture output
    

    Why tests run serially when --no-capture flag is enabled? I think it would be more convenient if nextest can run tests parallely when --no-capture is specified. And the --nocapture for cargo test is parallelism.

    Can I do some work to make nextest run parallely when --no-capture flags is enabled?

    opened by eval-exec 8
  • Implement backoff on retries

    Implement backoff on retries

    Implement fixed and exponential backoffs between retries. Sample configuration:

    retries = { count = 5, backoff = "exponential", delay = "1s", max-delay = "10s", jitter = true }
    

    The code was heavily inspired by the again crate, but the iterator is not public so I had to copy it. There are no tests yet and no good documentation. Reporting: adds the delay as follows: 1/3 RETRY in 1s. The jitter currently picks a random number from the interval (0, calculated_delay), which might not be ideal.

    opened by tomasol 8
  • [nextest-runner] add a way to show configuration for test groups

    [nextest-runner] add a way to show configuration for test groups

    Add a way to display test groups as they currently apply to tests.

    In the future we'll add support for displaying other kinds of configuration, but hopefully this will be useful for now.

    opened by sunshowers 1
  • Bump self_update from 0.32.0 to 0.34.0

    Bump self_update from 0.32.0 to 0.34.0

    Bumps self_update from 0.32.0 to 0.34.0.

    Changelog

    Sourced from self_update's changelog.

    [0.34.0]

    Added

    • Add with_url method to UpdateBuilder

    Changed

    Removed

    [0.33.0]

    Added

    • Support for Gitea / Forgejo

    Changed

    Removed

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump quick-xml from 0.26.0 to 0.27.1

    Bump quick-xml from 0.26.0 to 0.27.1

    Bumps quick-xml from 0.26.0 to 0.27.1.

    Release notes

    Sourced from quick-xml's releases.

    Fix an infinite loop in some circumstates

    What's Changed

    Bug Fixes

    • #530: Fix an infinite loop leading to unbounded memory consumption that occurs when skipping events on malformed XML with the overlapped-lists feature active.
    • #530: Fix an error in the Deserializer::read_to_end when overlapped-lists feature is active and malformed XML is parsed

    #530: tafia/quick-xml#530

    Full Changelog: https://github.com/tafia/quick-xml/compare/v0.27.0...v0.27.1

    Improvements in serde deserializer and MSRV bumped to 1.52

    What's Changed

    MSRV was increased from 1.46 to 1.52 in #521.

    New Features

    • #521: Implement Clone for all error types. This required changing Error::Io to contain Arc<std::io::Error> instead of std::io::Error since std::io::Error does not implement Clone.

    Bug Fixes

    • #490: Ensure that serialization of map keys always produces valid XML names. In particular, that means that maps with numeric and numeric-like keys (for example, "42") no longer can be serialized because [XML name] cannot start from a digit
    • #500: Fix deserialization of top-level sequences of enums, like
      <?xml version="1.0" encoding="UTF-8"?>
      <!-- list of enum Enum { A, B, С } -->
      <A/>
      <B/>
      <C/>
      
    • #514: Fix wrong reporting Error::EndEventMismatch after disabling and enabling .check_end_names
    • #517: Fix swapped codes for \r and \n characters when escaping them
    • #523: Fix incorrect skipping text and CDATA content before any map-like structures in serde deserializer, like
      unwanted text<struct>...</struct>
      
    • #523: Fix incorrect handling of xs:lists with encoded spaces: they still act as delimiters, which is confirmed also by mature XmlBeans Java library
    • #473: Fix a hidden requirement to enable serde's derive feature to get

    ... (truncated)

    Changelog

    Sourced from quick-xml's changelog.

    0.27.1 -- 2022-12-28

    Bug Fixes

    • #530: Fix an infinite loop leading to unbounded memory consumption that occurs when skipping events on malformed XML with the overlapped-lists feature active.
    • #530: Fix an error in the Deserializer::read_to_end when overlapped-lists feature is active and malformed XML is parsed

    #530: tafia/quick-xml#530

    0.27.0 -- 2022-12-25

    New Features

    • #521: Implement Clone for all error types. This required changing Error::Io to contain Arc<std::io::Error> instead of std::io::Error since std::io::Error does not implement Clone.

    Bug Fixes

    • #490: Ensure that serialization of map keys always produces valid XML names. In particular, that means that maps with numeric and numeric-like keys (for example, "42") no longer can be serialized because [XML name] cannot start from a digit
    • #500: Fix deserialization of top-level sequences of enums, like
      <?xml version="1.0" encoding="UTF-8"?>
      <!-- list of enum Enum { A, B, С } -->
      <A/>
      <B/>
      <C/>
      
    • #514: Fix wrong reporting Error::EndEventMismatch after disabling and enabling .check_end_names
    • #517: Fix swapped codes for \r and \n characters when escaping them
    • #523: Fix incorrect skipping text and CDATA content before any map-like structures in serde deserializer, like
      unwanted text<struct>...</struct>
      
    • #523: Fix incorrect handling of xs:lists with encoded spaces: they still act as delimiters, which is confirmed also by mature XmlBeans Java library
    • #473: Fix a hidden requirement to enable serde's derive feature to get quick-xml's serialize feature for edition = 2021 or resolver = 2 crates

    Misc Changes

    • #490: Removed $unflatten= special prefix for fields for serde (de)serializer, because:
      • it is useless for deserializer

    ... (truncated)

    Commits
    • 89fa620 Release 0.27.1 - fix for #530
    • b99adec Remove excess test. That test is duplicated by read_to_end::complex
    • 88455b4 Fix an error in the Deserializer::read_to_end when feature "overlapped-list...
    • 75ae6c7 Add test for reading invalid XML to the end
    • 85eeb2e Fix infinity loop in skip when parsing malformed XML
    • f63910d Release 0.27.0
    • d1908e6 Merge pull request #528 from Mingun/doc
    • 66275cc Add an example for deserializing wrapped lists
    • c521a2f Add documentation for mapping from XML to Rust used by deserializer
    • 44a4c69 Merge pull request #524 from Mingun/serde
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Support for showing the slowest N tests

    Support for showing the slowest N tests

    I see that here https://nexte.st/book/slow-tests.html - it is possible to set a limit for what is marked as slow. I think it would also be nice to show the slowest N (10?) tests without having to know the limit up front. This would be pretty easy to implement externally after #20 (just pipe to sort), but I bet it would look a lot nicer if internal.

    opened by nipunn1313 1
  • Bump console from 0.15.2 to 0.15.3

    Bump console from 0.15.2 to 0.15.3

    Bumps console from 0.15.2 to 0.15.3.

    Changelog

    Sourced from console's changelog.

    0.15.3

    Enhancements

    • Dropped terminal_size dependency.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • [WIP] warn if default-members is active

    [WIP] warn if default-members is active

    This is quite tricky to do because there are a number of different permutations involved. Putting up this WIP to get back to at some point in the future (or if someone else would like to take it from there).

    TODO:

    • [ ] Work out all the permutations (make a table for a methodical approach)
    • [ ] Figure out if symlinks impact this
    • [ ] Add tests

    Fixes #695.

    opened by sunshowers 0
Releases(nextest-runner-0.33.0)
Cucumber testing framework for Rust. Fully native, no external test runners or dependencies.

An implementation of the Cucumber testing framework for Rust. Fully native, no external test runners or dependencies.

Brendan Molloy 394 Jan 1, 2023
Fluent test assertions for Rust.

This is a fork the unmaintained crate spectral. Spectral as not changed for five years and yet is still very usable, the goal of this fork is to add n

Paul Delafosse 24 Dec 20, 2022
A series of test cases to evaluate async Rust on the nrf52840 in terms of power usage and ergonomics.

A series of test cases to evaluate async Rust on the nrf52840 in terms of power usage and ergonomics. This is an experiment that uses unstable features only available on nightly rust.

Tweede golf 1 Oct 15, 2021
Test for rust-based plugin system for swc

rust-dylib-test Steps Run cargo build in plugin_a Ensure that plugin_a dynamically links to runtime/common by otool -L plugin_a/target/debug/libplugin

Donny/강동윤 1 Apr 6, 2022
Fixture-based test framework for Rust

Fixture-based test framework for Rust Introduction rstest uses procedural macros to help you on writing fixtures and table-based tests. To use it, add

Michele d'Amico 567 Dec 24, 2022
Verdun is a HTTP stress-test/benchmark tool written in Rust.

Verdun is a HTTP stress-test/benchmark tool written in Rust. ?? It supports testing a single URL, loading multiples URLs from a file or automatically navigating a website (auto discovery)

Alex Hortopan 2 Feb 23, 2022
Test social media cards locally

Share Preview Test social media cards locally Description Preview and debug websites metadata tags for social media share. Third Party Packages Distri

Rafael Mardojai CM 65 Dec 25, 2022
Competitive Programming Stress Test Tools

Competitive Programming Stress Test Tools 競技プログラミング用 ストレステストツール このプログラムの役割 のプログラムに対して,それより実行時間がかかるが確実に できる愚直プログラムと比較することで, となるテストケースを探し出す 最大コーナーケースに対し

Ryusei Ishikawa 7 Aug 28, 2021
A heckin small test generator

heckcheck A heckin small test generator API Docs | Releases | Contributing Installation $ cargo add heckcheck Safety This crate uses #![deny(unsafe_co

Yoshua Wuyts 18 Mar 20, 2022
atttribute macro for running a flaky test multiple times

flaky_test This attribute macro will register and run a test 3 times, erroring only if all three times fail. Useful for situations when a test is flak

Deno Land 23 Mar 23, 2022
Test for crate delay_timer

delay_timer-test some test for crate delay_timer crate link: https://github.com/BinChengZhao/delay-timer here some test for delay_timer,also used for

null 1 Nov 22, 2021
a test harness for embedded devices

defmt-test a test harness for embedded devices This crate has been moved to the defmt repository Support defmt-test is part of the Knurling project, F

Knurling 8 Aug 27, 2022
Test cargo crates in different envs & via different methods

Test cargo crates in different envs & via different methods

@Vlad@ 2 Mar 22, 2022
Hopper is a tool for generating fuzzing test cases for libraries automatically using interpretative fuzzing.

Hopper Hopper is an tool for generating fuzzing test cases for libraries automatically using interpretative fuzzing. It transforms the problem of libr

FuzzAnything 118 Nov 15, 2023
Hopper is a tool for generating fuzzing test cases for libraries automatically using interpretative fuzzing.

Hopper Hopper is an tool for generating fuzzing test cases for libraries automatically using interpretative fuzzing. It transforms the problem of libr

FuzzAnything 124 Nov 24, 2023
Handle some lichess.org/tournament load with Rust, while learning Rust

lila-http Take some of the HTTP load away from lila. WIP! Arena tournaments Clients connected to a tournament page request new data about the tourname

Lichess 22 Jan 2, 2023
HTTP mocking library for Rust.

httpmock HTTP mocking library for Rust. Documentation · Crate · Report Bug · Request Feature · Changelog Features Simple, expressive, fluent API. Many

Alexander Liesenfeld 320 Dec 21, 2022
Testing Framework for Rust

Polish Polish is Test-Driven Development done right Getting Started Installing the Package The crates.io package is kept up-to-date with all the major

Fadi Hanna Al-Kass 49 Dec 18, 2022
🐇 Fuzzing Rust code with American Fuzzy Lop

afl.rs Fuzzing Rust code with AFLplusplus What is it? Fuzz testing is a software testing technique used to find security and stability issues by provi

Rust Fuzzing Authority 1.3k Jan 5, 2023