Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Do recursive shrinking without recursive function calls #1

Open
wants to merge 25 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
bf2d5b7
ci: use latest OS versions
BurntSushi May 23, 2023
2493aff
ci: fix it
BurntSushi Oct 6, 2023
db3cb66
ci: bump pinned version to 1.61
BurntSushi Oct 6, 2023
aa968a9
ci: bump pinned to Rust 1.65
BurntSushi Oct 10, 2023
88f1eca
Shut up non_fmt_panic warning (#284)
neithernut Mar 5, 2025
1cb1a4a
feat: support arbitrary arrays (#319)
aatifsyed Mar 5, 2025
f8800ca
Use SPDX license format, remove outdated Travis CI reference, and fix…
atouchet Mar 5, 2025
2ca2724
Explain what the crate does in lib.rs docs (#313)
lynn Mar 5, 2025
84acaec
only build debug representations of arguments even on failing tests (…
davidrusu Mar 6, 2025
f34179b
Avoid some warnings from Clippy
schneiderfelipe Aug 24, 2021
5319250
Merge branch 'schneiderfelipe-clippy-complains'
jhpratt Mar 6, 2025
d75e67c
Implement the From<bool> trait for TestResult
schneiderfelipe Aug 24, 2021
44cbd0b
Merge branch 'schneiderfelipe-from-bool'
jhpratt Mar 6, 2025
004d197
Clippy & markdown linting
jhpratt Mar 6, 2025
44b81be
deps: update to env_logger 0.11 (#327)
jayvdb Mar 6, 2025
32d7bc4
Upgrade to 2021 edition
jhpratt Mar 6, 2025
238f340
Bump MSRV to 1.71
jhpratt Mar 6, 2025
9ddbbd6
deps: update to syn 2.0 (#317)
davidpdrsn Mar 6, 2025
2c2cd21
Update to rand 0.9
jhpratt Mar 6, 2025
a0216c9
Revert `Gen` renaming, rename `gen` method
jhpratt Mar 8, 2025
87b46b9
Update some links (#332)
atouchet Mar 8, 2025
826f10b
Add shrinking support for arrays (#330)
Mathspy Mar 8, 2025
03ab585
Fix README examples
jhpratt Mar 8, 2025
473b6a0
impl: do recursive shrinking without recursive fn call
neithernut Jun 12, 2021
d930487
impl: move shrinking logic out of inline function
neithernut Jun 12, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 39 additions & 29 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,76 +1,86 @@
name: ci
on:
pull_request:
branches:
- master
push:
branches:
- master
schedule:
- cron: '00 01 * * *'

# The section is needed to drop write-all permissions that are granted on
# `schedule` event. By specifying any permission explicitly all others are set
# to none. By using the principle of least privilege the damage a compromised
# workflow can do (because of an injection or compromised third party tool or
# action) is restricted. Currently the worklow doesn't need any additional
# permission except for pulling the code. Adding labels to issues, commenting
# on pull-requests, etc. may need additional permissions:
#
# Syntax for this section:
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
#
# Reference for how to assign permissions on a job-by-job basis:
# https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs
#
# Reference for available permissions that we can enable if needed:
# https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token
permissions:
# to fetch code (actions/checkout)
contents: read

jobs:
test:
name: test
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
build:
- pinned
- stable
- beta
- nightly
- macos
- win-msvc
- win-gnu
include:
- build: pinned
os: ubuntu-18.04
rust: 1.46.0
os: ubuntu-latest
rust: 1.71.0
- build: stable
os: ubuntu-18.04
os: ubuntu-latest
rust: stable
- build: beta
os: ubuntu-18.04
os: ubuntu-latest
rust: beta
- build: nightly
os: ubuntu-18.04
os: ubuntu-latest
rust: nightly
- build: macos
os: macos-latest
rust: stable
- build: win-msvc
os: windows-2019
os: windows-latest
rust: stable
- build: win-gnu
os: windows-2019
os: windows-latest
rust: stable-x86_64-gnu
steps:
- name: Checkout repository
uses: actions/checkout@v1
with:
fetch-depth: 1
uses: actions/checkout@v4
- name: Install Rust
uses: hecrj/setup-rust-action@v1
uses: dtolnay/rust-toolchain@master
with:
rust-version: ${{ matrix.rust }}
toolchain: ${{ matrix.rust }}
- run: cargo build --verbose
- run: cargo doc --verbose
- run: cargo test --verbose
- run: cargo build --verbose --manifest-path quickcheck_macros/Cargo.toml
- run: cargo test --verbose --manifest-path quickcheck_macros/Cargo.toml

rustfmt:
name: rustfmt
runs-on: ubuntu-18.04
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v1
with:
fetch-depth: 1
uses: actions/checkout@v4
- name: Install Rust
uses: hecrj/setup-rust-action@v1
uses: dtolnay/rust-toolchain@master
with:
rust-version: stable
- name: Install rustfmt
run: rustup component add rustfmt
toolchain: stable
components: rustfmt
- name: Check formatting
run: |
cargo fmt --all -- --check
10 changes: 5 additions & 5 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ repository = "https://github.com/BurntSushi/quickcheck"
readme = "README.md"
keywords = ["testing", "quickcheck", "property", "shrinking", "fuzz"]
categories = ["development-tools::testing"]
license = "Unlicense/MIT"
exclude = ["/.travis.yml", "/Makefile", "/ctags.rust", "/session.vim"]
edition = "2018"
license = "Unlicense OR MIT"
exclude = ["/Makefile", "/ctags.rust", "/session.vim"]
edition = "2021"

[workspace]
members = ["quickcheck_macros"]
Expand All @@ -25,6 +25,6 @@ regex = ["env_logger/regex"]
name = "quickcheck"

[dependencies]
env_logger = { version = "0.8.2", default-features = false, optional = true }
env_logger = { version = "0.11", default-features = false, optional = true }
log = { version = "0.4", optional = true }
rand = { version = "0.8", default-features = false, features = ["getrandom", "small_rng"] }
rand = { version = "0.9", default-features = false, features = ["os_rng", "small_rng"] }
Loading