From 868a399b0a6a55c840aa1b8689b1444cc121ee7f Mon Sep 17 00:00:00 2001 From: Cameron Bytheway Date: Sat, 9 Sep 2023 18:25:03 -0600 Subject: [PATCH] ci: fix msrv runs (#175) --- .github/workflows/main.yml | 74 ++---- Cargo.toml | 16 +- Makefile | 217 ------------------ bin/Cargo.toml | 5 + {cargo-bolero => bin/cargo-bolero}/Cargo.toml | 8 +- {cargo-bolero => bin/cargo-bolero}/README.md | 0 {cargo-bolero => bin/cargo-bolero}/build.rs | 0 {cargo-bolero => bin/cargo-bolero}/src/afl.rs | 0 .../cargo-bolero}/src/engine.rs | 0 .../cargo-bolero}/src/honggfuzz.rs | 0 .../cargo-bolero}/src/kani.rs | 0 .../cargo-bolero}/src/libfuzzer.rs | 0 .../cargo-bolero}/src/list.rs | 0 .../cargo-bolero}/src/main.rs | 0 .../cargo-bolero}/src/manifest.rs | 0 {cargo-bolero => bin/cargo-bolero}/src/new.rs | 0 .../cargo-bolero}/src/project.rs | 0 .../cargo-bolero}/src/reduce.rs | 0 .../cargo-bolero}/src/selection.rs | 0 .../cargo-bolero}/src/test.rs | 0 .../cargo-bolero}/src/test_target.rs | 0 .../tests/fuzz_bytes/fuzz_target.rs | 0 .../tests/fuzz_generator/fuzz_target.rs | 0 bin/rust-toolchain | 3 + examples/basic/Cargo.toml | 2 +- examples/basic/src/lib.rs | 21 +- .../basic/tests/fuzz_bytes/crashes/.gitkeep | 0 .../basic/tests/fuzz_bytes/fuzz_target.rs | 4 +- .../tests/fuzz_generator/crashes/.gitkeep | 0 .../basic/tests/fuzz_generator/fuzz_target.rs | 4 +- .../tests/fuzz_operations/fuzz_target.rs | 7 +- examples/workspace/crate_a/Cargo.toml | 2 +- examples/workspace/crate_b/Cargo.toml | 2 +- lib/Cargo.toml | 17 ++ {bolero-afl => lib/bolero-afl}/Cargo.toml | 0 {bolero-afl => lib/bolero-afl}/afl/LICENSE | 0 .../bolero-afl}/afl/afl-analyze.c | 0 {bolero-afl => lib/bolero-afl}/afl/afl-as.c | 0 {bolero-afl => lib/bolero-afl}/afl/afl-as.h | 0 {bolero-afl => lib/bolero-afl}/afl/afl-fuzz.c | 0 {bolero-afl => lib/bolero-afl}/afl/afl-gcc.c | 0 .../bolero-afl}/afl/afl-gotcpu.c | 0 .../bolero-afl}/afl/afl-showmap.c | 0 {bolero-afl => lib/bolero-afl}/afl/afl-tmin.c | 0 .../bolero-afl}/afl/alloc-inl.h | 0 .../bolero-afl}/afl/android-ashmem.h | 0 {bolero-afl => lib/bolero-afl}/afl/config.h | 0 {bolero-afl => lib/bolero-afl}/afl/debug.h | 0 {bolero-afl => lib/bolero-afl}/afl/hash.h | 0 .../bolero-afl}/afl/llvm_mode/afl-llvm-rt.o.c | 0 .../bolero-afl}/afl/test-instr.c | 0 .../bolero-afl}/afl/test-libfuzzer-target.c | 0 {bolero-afl => lib/bolero-afl}/afl/types.h | 0 {bolero-afl => lib/bolero-afl}/build.rs | 0 .../bolero-afl}/src/bolero-afl-util.h | 0 {bolero-afl => lib/bolero-afl}/src/lib.rs | 0 {bolero-afl => lib/bolero-afl}/update.sh | 0 .../bolero-engine}/Cargo.toml | 3 +- .../bolero-engine}/src/lib.rs | 0 .../bolero-engine}/src/noop/panic.rs | 0 .../bolero-engine}/src/panic.rs | 0 .../bolero-engine}/src/rng.rs | 0 .../bolero-engine}/src/shrink.rs | 0 .../bolero-engine}/src/target_location.rs | 0 .../bolero-engine}/src/test.rs | 0 .../bolero-engine}/src/test_failure.rs | 0 .../bolero-engine}/src/test_input.rs | 0 .../bolero-engine}/src/test_result.rs | 0 .../bolero-generator-derive}/Cargo.toml | 0 .../src/generator_attr.rs | 0 .../bolero-generator-derive}/src/lib.rs | 0 .../bolero-generator}/Cargo.toml | 1 + .../bolero-generator}/README.md | 0 .../bolero-generator}/src/alloc/boxed.rs | 0 .../src/alloc/collections.rs | 0 .../bolero-generator}/src/alloc/mod.rs | 0 .../bolero-generator}/src/alloc/string.rs | 0 .../bolero-generator}/src/alloc/sync.rs | 0 .../bolero-generator}/src/arbitrary.rs | 0 .../bolero-generator}/src/array.rs | 0 .../bolero-generator}/src/atomic.rs | 0 .../bolero-generator}/src/bool.rs | 0 .../bolero-generator}/src/bounded.rs | 0 .../bolero-generator}/src/char.rs | 0 .../bolero-generator}/src/combinator.rs | 0 .../bolero-generator}/src/driver.rs | 0 .../bolero-generator}/src/driver/bytes.rs | 0 .../bolero-generator}/src/driver/macros.rs | 0 .../bolero-generator}/src/driver/rng.rs | 0 .../bolero-generator}/src/lib.rs | 0 .../bolero-generator}/src/num.rs | 0 .../bolero-generator}/src/one_of.rs | 0 .../bolero-generator}/src/range.rs | 0 .../bolero-generator}/src/result.rs | 0 .../bolero-generator}/src/std/mod.rs | 0 .../bolero-generator}/src/testing.rs | 0 .../bolero-generator}/src/time.rs | 0 .../bolero-generator}/src/tuple.rs | 0 .../bolero-generator}/src/uniform.rs | 0 .../bolero-generator}/tests/derive_test.rs | 0 .../bolero-honggfuzz}/Cargo.toml | 0 .../bolero-honggfuzz}/build.rs | 0 .../bolero-honggfuzz}/honggfuzz/Android.mk | 0 .../bolero-honggfuzz}/honggfuzz/COPYING | 0 .../bolero-honggfuzz}/honggfuzz/Makefile | 0 .../bolero-honggfuzz}/honggfuzz/arch.h | 0 .../bolero-honggfuzz}/honggfuzz/cmdline.c | 0 .../bolero-honggfuzz}/honggfuzz/cmdline.h | 0 .../bolero-honggfuzz}/honggfuzz/display.c | 0 .../bolero-honggfuzz}/honggfuzz/display.h | 0 .../bolero-honggfuzz}/honggfuzz/fuzz.c | 0 .../bolero-honggfuzz}/honggfuzz/fuzz.h | 0 .../bolero-honggfuzz}/honggfuzz/honggfuzz.c | 0 .../bolero-honggfuzz}/honggfuzz/honggfuzz.h | 0 .../honggfuzz/includes/libhfcommon | 0 .../honggfuzz/includes/libhfnetdriver | 0 .../honggfuzz/includes/libhfuzz | 0 .../bolero-honggfuzz}/honggfuzz/input.c | 0 .../bolero-honggfuzz}/honggfuzz/input.h | 0 .../honggfuzz/libhfcommon/common.h | 0 .../honggfuzz/libhfcommon/files.c | 0 .../honggfuzz/libhfcommon/files.h | 0 .../honggfuzz/libhfcommon/log.c | 0 .../honggfuzz/libhfcommon/log.h | 0 .../honggfuzz/libhfcommon/ns.c | 0 .../honggfuzz/libhfcommon/ns.h | 0 .../honggfuzz/libhfcommon/util.c | 0 .../honggfuzz/libhfcommon/util.h | 0 .../honggfuzz/libhfnetdriver/netdriver.c | 0 .../honggfuzz/libhfnetdriver/netdriver.h | 0 .../honggfuzz/libhfuzz/fetch.c | 0 .../honggfuzz/libhfuzz/fetch.h | 0 .../honggfuzz/libhfuzz/instrument.c | 0 .../honggfuzz/libhfuzz/instrument.h | 0 .../honggfuzz/libhfuzz/libhfuzz.h | 0 .../honggfuzz/libhfuzz/linux.c | 0 .../honggfuzz/libhfuzz/memorycmp.c | 0 .../honggfuzz/libhfuzz/performance.c | 0 .../honggfuzz/libhfuzz/performance.h | 0 .../honggfuzz/libhfuzz/persistent.c | 0 .../honggfuzz/libhfuzz/persistent.h | 0 .../bolero-honggfuzz}/honggfuzz/linux/arch.c | 0 .../bolero-honggfuzz}/honggfuzz/linux/bfd.c | 0 .../bolero-honggfuzz}/honggfuzz/linux/bfd.h | 0 .../bolero-honggfuzz}/honggfuzz/linux/perf.c | 0 .../bolero-honggfuzz}/honggfuzz/linux/perf.h | 0 .../bolero-honggfuzz}/honggfuzz/linux/pt.c | 0 .../bolero-honggfuzz}/honggfuzz/linux/pt.h | 0 .../bolero-honggfuzz}/honggfuzz/linux/trace.c | 0 .../bolero-honggfuzz}/honggfuzz/linux/trace.h | 0 .../honggfuzz/linux/unwind.c | 0 .../honggfuzz/linux/unwind.h | 0 .../bolero-honggfuzz}/honggfuzz/mac/arch.c | 0 .../bolero-honggfuzz}/honggfuzz/mangle.c | 0 .../bolero-honggfuzz}/honggfuzz/mangle.h | 0 .../bolero-honggfuzz}/honggfuzz/netbsd/arch.c | 0 .../honggfuzz/netbsd/trace.c | 0 .../honggfuzz/netbsd/trace.h | 0 .../honggfuzz/netbsd/unwind.c | 0 .../honggfuzz/netbsd/unwind.h | 0 .../bolero-honggfuzz}/honggfuzz/posix/arch.c | 0 .../bolero-honggfuzz}/honggfuzz/report.c | 0 .../bolero-honggfuzz}/honggfuzz/report.h | 0 .../bolero-honggfuzz}/honggfuzz/sanitizers.c | 0 .../bolero-honggfuzz}/honggfuzz/sanitizers.h | 0 .../honggfuzz/socketfuzzer.c | 0 .../honggfuzz/socketfuzzer.h | 0 .../bolero-honggfuzz}/honggfuzz/subproc.c | 0 .../bolero-honggfuzz}/honggfuzz/subproc.h | 0 .../android/libBlocksRuntime/.gitignore | 0 .../android/libBlocksRuntime/Android.mk | 0 .../android/libBlocksRuntime/Block.h | 0 .../android/libBlocksRuntime/Block_private.h | 0 .../android/libBlocksRuntime/README.txt | 0 .../android/libBlocksRuntime/data.c | 0 .../android/libBlocksRuntime/runtime.c | 0 .../android/patches/libunwind.patch | 0 .../android/scripts/compile-capstone.sh | 0 .../scripts/compile-libBlocksRuntime.sh | 0 .../android/scripts/compile-libunwind.sh | 0 .../honggfuzz/third_party/mac/.gitignore | 0 .../third_party/mac/CrashReport_Mavericks.o | Bin .../mac/CrashReport_Mountain_Lion.o | Bin .../third_party/mac/CrashReport_Sierra.o | Bin .../third_party/mac/CrashReport_Yosemite.o | Bin .../honggfuzz/third_party/mac/README | 0 .../bolero-honggfuzz}/src/lib.rs | 0 .../bolero-honggfuzz}/update.sh | 0 {bolero-kani => lib/bolero-kani}/Cargo.toml | 0 {bolero-kani => lib/bolero-kani}/src/lib.rs | 0 .../bolero-libfuzzer}/Cargo.toml | 0 .../bolero-libfuzzer}/build.rs | 0 .../libfuzzer/CMakeLists.txt | 0 .../libfuzzer/FuzzerBuiltins.h | 0 .../libfuzzer/FuzzerBuiltinsMsvc.h | 0 .../libfuzzer/FuzzerCommand.h | 0 .../libfuzzer/FuzzerCorpus.h | 0 .../libfuzzer/FuzzerCrossOver.cpp | 0 .../libfuzzer/FuzzerDataFlowTrace.cpp | 0 .../libfuzzer/FuzzerDataFlowTrace.h | 0 .../bolero-libfuzzer}/libfuzzer/FuzzerDefs.h | 0 .../libfuzzer/FuzzerDictionary.h | 0 .../libfuzzer/FuzzerDriver.cpp | 0 .../libfuzzer/FuzzerExtFunctions.def | 0 .../libfuzzer/FuzzerExtFunctions.h | 0 .../libfuzzer/FuzzerExtFunctionsDlsym.cpp | 0 .../libfuzzer/FuzzerExtFunctionsWeak.cpp | 0 .../libfuzzer/FuzzerExtFunctionsWindows.cpp | 0 .../libfuzzer/FuzzerExtraCounters.cpp | 0 .../libfuzzer/FuzzerExtraCountersDarwin.cpp | 0 .../libfuzzer/FuzzerExtraCountersWindows.cpp | 0 .../libfuzzer/FuzzerFlags.def | 0 .../libfuzzer/FuzzerFork.cpp | 0 .../bolero-libfuzzer}/libfuzzer/FuzzerFork.h | 0 .../bolero-libfuzzer}/libfuzzer/FuzzerIO.cpp | 0 .../bolero-libfuzzer}/libfuzzer/FuzzerIO.h | 0 .../libfuzzer/FuzzerIOPosix.cpp | 0 .../libfuzzer/FuzzerIOWindows.cpp | 0 .../libfuzzer/FuzzerInterceptors.cpp | 0 .../libfuzzer/FuzzerInterface.h | 0 .../libfuzzer/FuzzerInternal.h | 0 .../libfuzzer/FuzzerLoop.cpp | 0 .../libfuzzer/FuzzerMain.cpp | 0 .../libfuzzer/FuzzerMerge.cpp | 0 .../bolero-libfuzzer}/libfuzzer/FuzzerMerge.h | 0 .../libfuzzer/FuzzerMutate.cpp | 0 .../libfuzzer/FuzzerMutate.h | 0 .../libfuzzer/FuzzerOptions.h | 0 .../libfuzzer/FuzzerPlatform.h | 0 .../libfuzzer/FuzzerRandom.h | 0 .../libfuzzer/FuzzerSHA1.cpp | 0 .../bolero-libfuzzer}/libfuzzer/FuzzerSHA1.h | 0 .../libfuzzer/FuzzerTracePC.cpp | 0 .../libfuzzer/FuzzerTracePC.h | 0 .../libfuzzer/FuzzerUtil.cpp | 0 .../bolero-libfuzzer}/libfuzzer/FuzzerUtil.h | 0 .../libfuzzer/FuzzerUtilDarwin.cpp | 0 .../libfuzzer/FuzzerUtilFuchsia.cpp | 0 .../libfuzzer/FuzzerUtilLinux.cpp | 0 .../libfuzzer/FuzzerUtilPosix.cpp | 0 .../libfuzzer/FuzzerUtilWindows.cpp | 0 .../libfuzzer/FuzzerValueBitMap.h | 0 .../bolero-libfuzzer}/libfuzzer/LICENSE.TXT | 0 .../bolero-libfuzzer}/libfuzzer/README.txt | 0 .../libfuzzer/afl/afl_driver.cpp | 0 .../bolero-libfuzzer}/libfuzzer/build.sh | 0 .../libfuzzer/dataflow/DataFlow.cpp | 0 .../libfuzzer/dataflow/DataFlow.h | 0 .../libfuzzer/dataflow/DataFlowCallbacks.cpp | 0 .../libfuzzer/scripts/unbalanced_allocs.py | 0 .../standalone/StandaloneFuzzTargetMain.c | 0 .../libfuzzer/tests/CMakeLists.txt | 0 .../tests/FuzzedDataProviderUnittest.cpp | 0 .../libfuzzer/tests/FuzzerUnittest.cpp | 0 .../bolero-libfuzzer}/src/FuzzerAPI.cpp | 0 .../bolero-libfuzzer}/src/lib.rs | 0 .../bolero-libfuzzer}/update.sh | 0 {bolero => lib/bolero}/Cargo.toml | 1 + {bolero => lib/bolero}/src/lib.rs | 0 {bolero => lib/bolero}/src/test/input.rs | 0 {bolero => lib/bolero}/src/test/mod.rs | 0 lib/rust-toolchain | 3 + rust-toolchain | 1 - tests/Cargo.toml | 9 + tests/src/bolero.rs | 53 +++++ tests/src/cargo_bolero.rs | 37 +++ tests/src/cmd.rs | 26 +++ tests/src/engines.rs | 127 ++++++++++ tests/src/env.rs | 29 +++ tests/src/examples.rs | 37 +++ tests/src/main.rs | 16 ++ 271 files changed, 420 insertions(+), 305 deletions(-) delete mode 100644 Makefile create mode 100644 bin/Cargo.toml rename {cargo-bolero => bin/cargo-bolero}/Cargo.toml (72%) rename {cargo-bolero => bin/cargo-bolero}/README.md (100%) rename {cargo-bolero => bin/cargo-bolero}/build.rs (100%) rename {cargo-bolero => bin/cargo-bolero}/src/afl.rs (100%) rename {cargo-bolero => bin/cargo-bolero}/src/engine.rs (100%) rename {cargo-bolero => bin/cargo-bolero}/src/honggfuzz.rs (100%) rename {cargo-bolero => bin/cargo-bolero}/src/kani.rs (100%) rename {cargo-bolero => bin/cargo-bolero}/src/libfuzzer.rs (100%) rename {cargo-bolero => bin/cargo-bolero}/src/list.rs (100%) rename {cargo-bolero => bin/cargo-bolero}/src/main.rs (100%) rename {cargo-bolero => bin/cargo-bolero}/src/manifest.rs (100%) rename {cargo-bolero => bin/cargo-bolero}/src/new.rs (100%) rename {cargo-bolero => bin/cargo-bolero}/src/project.rs (100%) rename {cargo-bolero => bin/cargo-bolero}/src/reduce.rs (100%) rename {cargo-bolero => bin/cargo-bolero}/src/selection.rs (100%) rename {cargo-bolero => bin/cargo-bolero}/src/test.rs (100%) rename {cargo-bolero => bin/cargo-bolero}/src/test_target.rs (100%) rename {cargo-bolero => bin/cargo-bolero}/tests/fuzz_bytes/fuzz_target.rs (100%) rename {cargo-bolero => bin/cargo-bolero}/tests/fuzz_generator/fuzz_target.rs (100%) create mode 100644 bin/rust-toolchain delete mode 100644 examples/basic/tests/fuzz_bytes/crashes/.gitkeep delete mode 100644 examples/basic/tests/fuzz_generator/crashes/.gitkeep create mode 100644 lib/Cargo.toml rename {bolero-afl => lib/bolero-afl}/Cargo.toml (100%) rename {bolero-afl => lib/bolero-afl}/afl/LICENSE (100%) rename {bolero-afl => lib/bolero-afl}/afl/afl-analyze.c (100%) rename {bolero-afl => lib/bolero-afl}/afl/afl-as.c (100%) rename {bolero-afl => lib/bolero-afl}/afl/afl-as.h (100%) rename {bolero-afl => lib/bolero-afl}/afl/afl-fuzz.c (100%) rename {bolero-afl => lib/bolero-afl}/afl/afl-gcc.c (100%) rename {bolero-afl => lib/bolero-afl}/afl/afl-gotcpu.c (100%) rename {bolero-afl => lib/bolero-afl}/afl/afl-showmap.c (100%) rename {bolero-afl => lib/bolero-afl}/afl/afl-tmin.c (100%) rename {bolero-afl => lib/bolero-afl}/afl/alloc-inl.h (100%) rename {bolero-afl => lib/bolero-afl}/afl/android-ashmem.h (100%) rename {bolero-afl => lib/bolero-afl}/afl/config.h (100%) rename {bolero-afl => lib/bolero-afl}/afl/debug.h (100%) rename {bolero-afl => lib/bolero-afl}/afl/hash.h (100%) rename {bolero-afl => lib/bolero-afl}/afl/llvm_mode/afl-llvm-rt.o.c (100%) rename {bolero-afl => lib/bolero-afl}/afl/test-instr.c (100%) rename {bolero-afl => lib/bolero-afl}/afl/test-libfuzzer-target.c (100%) rename {bolero-afl => lib/bolero-afl}/afl/types.h (100%) rename {bolero-afl => lib/bolero-afl}/build.rs (100%) rename {bolero-afl => lib/bolero-afl}/src/bolero-afl-util.h (100%) rename {bolero-afl => lib/bolero-afl}/src/lib.rs (100%) rename {bolero-afl => lib/bolero-afl}/update.sh (100%) rename {bolero-engine => lib/bolero-engine}/Cargo.toml (88%) rename {bolero-engine => lib/bolero-engine}/src/lib.rs (100%) rename {bolero-engine => lib/bolero-engine}/src/noop/panic.rs (100%) rename {bolero-engine => lib/bolero-engine}/src/panic.rs (100%) rename {bolero-engine => lib/bolero-engine}/src/rng.rs (100%) rename {bolero-engine => lib/bolero-engine}/src/shrink.rs (100%) rename {bolero-engine => lib/bolero-engine}/src/target_location.rs (100%) rename {bolero-engine => lib/bolero-engine}/src/test.rs (100%) rename {bolero-engine => lib/bolero-engine}/src/test_failure.rs (100%) rename {bolero-engine => lib/bolero-engine}/src/test_input.rs (100%) rename {bolero-engine => lib/bolero-engine}/src/test_result.rs (100%) rename {bolero-generator-derive => lib/bolero-generator-derive}/Cargo.toml (100%) rename {bolero-generator-derive => lib/bolero-generator-derive}/src/generator_attr.rs (100%) rename {bolero-generator-derive => lib/bolero-generator-derive}/src/lib.rs (100%) rename {bolero-generator => lib/bolero-generator}/Cargo.toml (97%) rename {bolero-generator => lib/bolero-generator}/README.md (100%) rename {bolero-generator => lib/bolero-generator}/src/alloc/boxed.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/alloc/collections.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/alloc/mod.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/alloc/string.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/alloc/sync.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/arbitrary.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/array.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/atomic.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/bool.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/bounded.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/char.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/combinator.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/driver.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/driver/bytes.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/driver/macros.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/driver/rng.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/lib.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/num.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/one_of.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/range.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/result.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/std/mod.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/testing.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/time.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/tuple.rs (100%) rename {bolero-generator => lib/bolero-generator}/src/uniform.rs (100%) rename {bolero-generator => lib/bolero-generator}/tests/derive_test.rs (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/Cargo.toml (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/build.rs (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/Android.mk (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/COPYING (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/Makefile (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/arch.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/cmdline.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/cmdline.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/display.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/display.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/fuzz.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/fuzz.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/honggfuzz.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/honggfuzz.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/includes/libhfcommon (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/includes/libhfnetdriver (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/includes/libhfuzz (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/input.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/input.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfcommon/common.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfcommon/files.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfcommon/files.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfcommon/log.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfcommon/log.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfcommon/ns.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfcommon/ns.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfcommon/util.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfcommon/util.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfnetdriver/netdriver.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfnetdriver/netdriver.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfuzz/fetch.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfuzz/fetch.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfuzz/instrument.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfuzz/instrument.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfuzz/libhfuzz.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfuzz/linux.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfuzz/memorycmp.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfuzz/performance.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfuzz/performance.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfuzz/persistent.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/libhfuzz/persistent.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/linux/arch.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/linux/bfd.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/linux/bfd.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/linux/perf.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/linux/perf.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/linux/pt.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/linux/pt.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/linux/trace.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/linux/trace.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/linux/unwind.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/linux/unwind.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/mac/arch.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/mangle.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/mangle.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/netbsd/arch.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/netbsd/trace.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/netbsd/trace.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/netbsd/unwind.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/netbsd/unwind.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/posix/arch.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/report.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/report.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/sanitizers.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/sanitizers.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/socketfuzzer.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/socketfuzzer.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/subproc.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/subproc.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/third_party/android/libBlocksRuntime/.gitignore (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/third_party/android/libBlocksRuntime/Android.mk (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/third_party/android/libBlocksRuntime/Block.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/third_party/android/libBlocksRuntime/Block_private.h (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/third_party/android/libBlocksRuntime/README.txt (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/third_party/android/libBlocksRuntime/data.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/third_party/android/libBlocksRuntime/runtime.c (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/third_party/android/patches/libunwind.patch (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/third_party/android/scripts/compile-capstone.sh (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/third_party/android/scripts/compile-libBlocksRuntime.sh (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/third_party/android/scripts/compile-libunwind.sh (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/third_party/mac/.gitignore (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/third_party/mac/CrashReport_Mavericks.o (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/third_party/mac/CrashReport_Mountain_Lion.o (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/third_party/mac/CrashReport_Sierra.o (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/third_party/mac/CrashReport_Yosemite.o (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/honggfuzz/third_party/mac/README (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/src/lib.rs (100%) rename {bolero-honggfuzz => lib/bolero-honggfuzz}/update.sh (100%) rename {bolero-kani => lib/bolero-kani}/Cargo.toml (100%) rename {bolero-kani => lib/bolero-kani}/src/lib.rs (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/Cargo.toml (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/build.rs (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/CMakeLists.txt (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerBuiltins.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerBuiltinsMsvc.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerCommand.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerCorpus.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerCrossOver.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerDataFlowTrace.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerDataFlowTrace.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerDefs.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerDictionary.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerDriver.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerExtFunctions.def (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerExtFunctions.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerExtFunctionsDlsym.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerExtFunctionsWeak.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerExtFunctionsWindows.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerExtraCounters.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerExtraCountersDarwin.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerExtraCountersWindows.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerFlags.def (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerFork.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerFork.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerIO.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerIO.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerIOPosix.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerIOWindows.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerInterceptors.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerInterface.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerInternal.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerLoop.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerMain.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerMerge.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerMerge.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerMutate.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerMutate.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerOptions.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerPlatform.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerRandom.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerSHA1.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerSHA1.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerTracePC.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerTracePC.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerUtil.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerUtil.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerUtilDarwin.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerUtilFuchsia.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerUtilLinux.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerUtilPosix.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerUtilWindows.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/FuzzerValueBitMap.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/LICENSE.TXT (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/README.txt (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/afl/afl_driver.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/build.sh (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/dataflow/DataFlow.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/dataflow/DataFlow.h (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/dataflow/DataFlowCallbacks.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/scripts/unbalanced_allocs.py (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/standalone/StandaloneFuzzTargetMain.c (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/tests/CMakeLists.txt (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/tests/FuzzedDataProviderUnittest.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/libfuzzer/tests/FuzzerUnittest.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/src/FuzzerAPI.cpp (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/src/lib.rs (100%) rename {bolero-libfuzzer => lib/bolero-libfuzzer}/update.sh (100%) rename {bolero => lib/bolero}/Cargo.toml (98%) rename {bolero => lib/bolero}/src/lib.rs (100%) rename {bolero => lib/bolero}/src/test/input.rs (100%) rename {bolero => lib/bolero}/src/test/mod.rs (100%) create mode 100644 lib/rust-toolchain delete mode 100644 rust-toolchain create mode 100644 tests/Cargo.toml create mode 100644 tests/src/bolero.rs create mode 100644 tests/src/cargo_bolero.rs create mode 100644 tests/src/cmd.rs create mode 100644 tests/src/engines.rs create mode 100644 tests/src/env.rs create mode 100644 tests/src/examples.rs create mode 100644 tests/src/main.rs diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index adafe0c5..facf1dbf 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -44,44 +44,8 @@ jobs: strategy: fail-fast: false matrix: - rust: [1.57.0, 1.64.0, stable, nightly] + rust: [1.57.0, stable, nightly] os: [ubuntu-latest, macOS-latest] - # TODO add honggfuzz back - test: [unit-tests, unit-tests-no-1.57, build-no-default-features, libfuzzer, afl, examples-tests] - sanitizer: [NONE] - exclude: - - rust: 1.57.0 - test: unit-tests-no-1.57 - # honggfuzz is broken on macOS - - os: macos-latest - test: honggfuzz - include: - - rust: nightly - os: ubuntu-latest - test: libfuzzer - sanitizer: address - # - rust: nightly - # os: ubuntu-latest - # test: honggfuzz - # sanitizer: address - # TODO fix this - # - rust: nightly - # os: ubuntu-latest - # test: afl - # sanitizer: address - - rust: nightly - os: macOS-latest - test: libfuzzer - sanitizer: address - # - rust: nightly - # os: macOS-latest - # test: honggfuzz - # sanitizer: address - # TODO fix this - # - rust: nightly - # os: macOS-latest - # test: afl - # sanitizer: address steps: - name: Ubuntu setup @@ -101,23 +65,33 @@ jobs: - uses: actions/checkout@v3.5.3 + # install stable for kani, cargo-bolero and test runner + - uses: actions-rs/toolchain@v1.0.7 + with: + toolchain: stable + profile: minimal + + - name: Install kani + run: | + cargo install --locked kani-verifier + cargo kani setup + - uses: actions-rs/toolchain@v1.0.7 - id: toolchain with: toolchain: ${{ matrix.rust }} profile: minimal - override: true - uses: camshaft/rust-cache@v1 with: - key: ${{ matrix.test }}-${{ matrix.sanitizer }} + # kani isn't compatible with sccache + wrapper: false + + - name: Setup target rustc + if: matrix.rust != 'stable' && matrix.rust != 'nightly' + run: echo "TARGET_RUSTC=${{ matrix.rust }}" >> $GITHUB_ENV - - name: ${{ matrix.test }} - run: make ${{ matrix.test }} - env: - AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES: 1 - AFL_SKIP_CPUFREQ: 1 - SANITIZER: ${{ matrix.sanitizer }} + - name: Run tests + run: cargo +stable run kani: runs-on: ubuntu-latest @@ -166,10 +140,10 @@ jobs: run: | cat <> Cargo.toml [patch.crates-io] - bolero = { path = "../../../../bolero" } - bolero-engine = { path = "../../../../bolero-engine" } - bolero-generator = { path = "../../../../bolero-generator" } - bolero-generator-derive = { path = "../../../../bolero-generator-derive" } + bolero = { path = "../../../../lib/bolero" } + bolero-engine = { path = "../../../../lib/bolero-engine" } + bolero-generator = { path = "../../../../lib/bolero-generator" } + bolero-generator-derive = { path = "../../../../lib/bolero-generator-derive" } EOF - uses: camshaft/rust-cache@v1 diff --git a/Cargo.toml b/Cargo.toml index 603d7c01..597b0031 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,17 +1,5 @@ [workspace] members = [ - "bolero", - "bolero-*", - "cargo-bolero", + "tests", ] - -[profile.fuzz] -inherits = "dev" -opt-level = 3 -incremental = false -codegen-units = 1 - -[profile.release] -lto = true -codegen-units = 1 -incremental = false +resolver = "2" diff --git a/Makefile b/Makefile deleted file mode 100644 index 1dbeb2e5..00000000 --- a/Makefile +++ /dev/null @@ -1,217 +0,0 @@ -SANITIZER ?= NONE -UNAME_S := $(shell uname -s) - -ifeq ($(UNAME_S),Darwin) -FUZZERS := libfuzzer afl -else -FUZZERS := libfuzzer honggfuzz afl -endif - -test: unit-tests unit-tests-no-default-features test_fuzzers examples-tests - -examples-tests: test_basic_example test_workspace_example - -test_basic_example: - @$(MAKE) test_example \ - MANIFEST_PATH=examples/basic/Cargo.toml \ - TEST_THREADS="" - @$(MAKE) test_example \ - MANIFEST_PATH=examples/basic/Cargo.toml \ - TEST_THREADS="--test-threads=1" - -test_workspace_example: - @$(MAKE) test_example \ - MANIFEST_PATH=examples/workspace/Cargo.toml \ - TEST_THREADS="" - @$(MAKE) test_example \ - MANIFEST_PATH=examples/workspace/Cargo.toml \ - TEST_THREADS="--test-threads=1" - -test_example: - @RUST_BACKTRACE=1 cargo test \ - --manifest-path $(MANIFEST_PATH) \ - -- \ - --nocapture $(TEST_THREADS) - @RUST_BACKTRACE=1 cargo test \ - --release \ - --manifest-path $(MANIFEST_PATH) \ - -- \ - --nocapture $(TEST_THREADS) - -unit-tests: - cargo test - -build-no-default-features: - cd bolero-generator && cargo build --no-default-features - cd bolero-generator && cargo build --no-default-features --features alloc - cd bolero-engine && cargo build --no-default-features - cd bolero && cargo build --no-default-features - cd bolero && cargo build --no-default-features --features alloc - -unit-tests-no-1.57: - cargo test --features arbitrary - -test_fuzzers: $(FUZZERS) - -libfuzzer honggfuzz: - @cargo run \ - --features $@ \ - test \ - fuzz_bytes \ - --manifest-path examples/basic/Cargo.toml \ - --runs 100000 \ - --engine $@ \ - --sanitizer $(SANITIZER) - @cargo run \ - --features $@ \ - reduce \ - fuzz_bytes \ - --manifest-path examples/basic/Cargo.toml \ - --engine $@ \ - --sanitizer $(SANITIZER) - @cargo run \ - --features $@ \ - test \ - fuzz_generator \ - --manifest-path examples/basic/Cargo.toml \ - --runs 100000 \ - --engine $@ \ - --sanitizer $(SANITIZER) - @cargo run \ - --features $@ \ - reduce \ - fuzz_generator \ - --manifest-path examples/basic/Cargo.toml \ - --engine $@ \ - --sanitizer $(SANITIZER) - @cargo run \ - --features $@ \ - test \ - fuzz_operations \ - --manifest-path examples/basic/Cargo.toml \ - --runs 1000 \ - --engine $@ \ - --sanitizer $(SANITIZER) - @cargo run \ - --features $@ \ - reduce \ - fuzz_operations \ - --manifest-path examples/basic/Cargo.toml \ - --engine $@ \ - --sanitizer $(SANITIZER) - @SHOULD_PANIC=1 cargo run \ - --features $@ \ - test \ - tests::add_test \ - --manifest-path examples/basic/Cargo.toml \ - --runs 100000 \ - --engine $@ \ - --sanitizer $(SANITIZER) \ - || true # TODO make this consistent - @SHOULD_PANIC=1 cargo run \ - --features $@ \ - reduce \ - tests::add_test \ - --manifest-path examples/basic/Cargo.toml \ - --engine $@ \ - --sanitizer $(SANITIZER) \ - || true # TODO make this consistent - @SHOULD_PANIC=1 cargo run \ - --features $@ \ - test \ - tests::other_test \ - --manifest-path examples/basic/Cargo.toml \ - --runs 100000 \ - --engine $@ \ - --sanitizer $(SANITIZER) \ - || true # TODO make this consistent - @SHOULD_PANIC=1 cargo run \ - --features $@ \ - reduce \ - tests::other_test \ - --manifest-path examples/basic/Cargo.toml \ - --engine $@ \ - --sanitizer $(SANITIZER) \ - || true # TODO make this consistent - @SHOULD_PANIC=1 cargo run \ - --features $@ \ - test \ - tests::panicking_generator_test \ - --manifest-path examples/basic/Cargo.toml \ - --runs 1000 \ - --engine $@ \ - --sanitizer $(SANITIZER) \ - || true # TODO make this consistent - -afl: - @cargo run \ - --features $@ \ - test \ - fuzz_bytes \ - --manifest-path examples/basic/Cargo.toml \ - --runs 100000 \ - --engine $@ \ - --sanitizer $(SANITIZER) - @cargo run \ - --features $@ \ - test \ - fuzz_generator \ - --manifest-path examples/basic/Cargo.toml \ - --runs 100000 \ - --engine $@ \ - --sanitizer $(SANITIZER) - @rm -rf examples/basic/src/__fuzz__ - @SHOULD_PANIC=1 cargo run \ - --features $@ \ - test \ - tests::add_test \ - --manifest-path examples/basic/Cargo.toml \ - --runs 100000 \ - --engine $@ \ - --sanitizer $(SANITIZER) \ - && exit 1 || true - @rm -rf examples/basic/src/__fuzz__ - @SHOULD_PANIC=1 cargo run \ - --features $@ \ - test \ - tests::other_test \ - --manifest-path examples/basic/Cargo.toml \ - --runs 100000 \ - --engine $@ \ - --sanitizer $(SANITIZER) \ - && exit 1 || true - -book: - @mdbook build book - -publish: book - @cd bolero-generator-derive && cargo publish - @sleep 30 - @cd bolero-generator && cargo publish - @sleep 30 - @cd bolero-engine && cargo publish - @sleep 30 - @cd bolero-afl && cargo publish - @sleep 30 - @cd bolero-honggfuzz && cargo publish - @sleep 30 - @cd bolero-libfuzzer && cargo publish - @sleep 30 - @cd bolero-kani && cargo publish - @sleep 30 - @cd bolero && cargo publish - @sleep 30 - @cd cargo-bolero && cargo publish - -dry-run: - @cd bolero-generator-derive && cargo publish --dry-run --allow-dirty - @cd bolero-generator && cargo publish --dry-run --allow-dirty - @cd bolero-engine && cargo publish --dry-run --allow-dirty - @cd bolero-afl && cargo publish --dry-run --allow-dirty - @cd bolero-honggfuzz && cargo publish --dry-run --allow-dirty - @cd bolero-libfuzzer && cargo publish --dry-run --allow-dirty - @cd bolero-kani && cargo publish --dry-run --allow-dirty - @cd bolero && cargo publish --dry-run --allow-dirty - @cd cargo-bolero && cargo publish --dry-run --allow-dirty - -.PHONY: book diff --git a/bin/Cargo.toml b/bin/Cargo.toml new file mode 100644 index 00000000..6a1dfca8 --- /dev/null +++ b/bin/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = [ + "cargo-bolero", +] +resolver = "2" diff --git a/cargo-bolero/Cargo.toml b/bin/cargo-bolero/Cargo.toml similarity index 72% rename from cargo-bolero/Cargo.toml rename to bin/cargo-bolero/Cargo.toml index 3471014f..fa427a8a 100644 --- a/cargo-bolero/Cargo.toml +++ b/bin/cargo-bolero/Cargo.toml @@ -9,6 +9,7 @@ keywords = ["testing", "quickcheck", "property", "fuzz", "fuzzing"] license = "MIT" edition = "2018" readme = "README.md" +rust-version = "1.66.0" [features] default = ["afl", "libfuzzer", "kani"] @@ -20,8 +21,8 @@ libfuzzer = [] [dependencies] anyhow = "1.0" bit-set = "0.5" -bolero-afl = { version = "0.9", path = "../bolero-afl", default-features = false, features = ["bin"], optional = true } -bolero-honggfuzz = { version = "0.9", path = "../bolero-honggfuzz", default-features = false, features = ["bin"], optional = true } +bolero-afl = { version = "0.9", path = "../../lib/bolero-afl", default-features = false, features = ["bin"], optional = true } +bolero-honggfuzz = { version = "0.9", path = "../../lib/bolero-honggfuzz", default-features = false, features = ["bin"], optional = true } humantime = "2" lazy_static = "1" rustc_version = "0.4" @@ -31,7 +32,7 @@ serde_json = "1.0" tempfile = "3" [dev-dependencies] -bolero = { version = "0.9", path = "../bolero" } +bolero = { version = "0.9", path = "../../lib/bolero" } [[test]] name = "fuzz_bytes" @@ -42,3 +43,4 @@ harness = false name = "fuzz_generator" path = "tests/fuzz_generator/fuzz_target.rs" harness = false + diff --git a/cargo-bolero/README.md b/bin/cargo-bolero/README.md similarity index 100% rename from cargo-bolero/README.md rename to bin/cargo-bolero/README.md diff --git a/cargo-bolero/build.rs b/bin/cargo-bolero/build.rs similarity index 100% rename from cargo-bolero/build.rs rename to bin/cargo-bolero/build.rs diff --git a/cargo-bolero/src/afl.rs b/bin/cargo-bolero/src/afl.rs similarity index 100% rename from cargo-bolero/src/afl.rs rename to bin/cargo-bolero/src/afl.rs diff --git a/cargo-bolero/src/engine.rs b/bin/cargo-bolero/src/engine.rs similarity index 100% rename from cargo-bolero/src/engine.rs rename to bin/cargo-bolero/src/engine.rs diff --git a/cargo-bolero/src/honggfuzz.rs b/bin/cargo-bolero/src/honggfuzz.rs similarity index 100% rename from cargo-bolero/src/honggfuzz.rs rename to bin/cargo-bolero/src/honggfuzz.rs diff --git a/cargo-bolero/src/kani.rs b/bin/cargo-bolero/src/kani.rs similarity index 100% rename from cargo-bolero/src/kani.rs rename to bin/cargo-bolero/src/kani.rs diff --git a/cargo-bolero/src/libfuzzer.rs b/bin/cargo-bolero/src/libfuzzer.rs similarity index 100% rename from cargo-bolero/src/libfuzzer.rs rename to bin/cargo-bolero/src/libfuzzer.rs diff --git a/cargo-bolero/src/list.rs b/bin/cargo-bolero/src/list.rs similarity index 100% rename from cargo-bolero/src/list.rs rename to bin/cargo-bolero/src/list.rs diff --git a/cargo-bolero/src/main.rs b/bin/cargo-bolero/src/main.rs similarity index 100% rename from cargo-bolero/src/main.rs rename to bin/cargo-bolero/src/main.rs diff --git a/cargo-bolero/src/manifest.rs b/bin/cargo-bolero/src/manifest.rs similarity index 100% rename from cargo-bolero/src/manifest.rs rename to bin/cargo-bolero/src/manifest.rs diff --git a/cargo-bolero/src/new.rs b/bin/cargo-bolero/src/new.rs similarity index 100% rename from cargo-bolero/src/new.rs rename to bin/cargo-bolero/src/new.rs diff --git a/cargo-bolero/src/project.rs b/bin/cargo-bolero/src/project.rs similarity index 100% rename from cargo-bolero/src/project.rs rename to bin/cargo-bolero/src/project.rs diff --git a/cargo-bolero/src/reduce.rs b/bin/cargo-bolero/src/reduce.rs similarity index 100% rename from cargo-bolero/src/reduce.rs rename to bin/cargo-bolero/src/reduce.rs diff --git a/cargo-bolero/src/selection.rs b/bin/cargo-bolero/src/selection.rs similarity index 100% rename from cargo-bolero/src/selection.rs rename to bin/cargo-bolero/src/selection.rs diff --git a/cargo-bolero/src/test.rs b/bin/cargo-bolero/src/test.rs similarity index 100% rename from cargo-bolero/src/test.rs rename to bin/cargo-bolero/src/test.rs diff --git a/cargo-bolero/src/test_target.rs b/bin/cargo-bolero/src/test_target.rs similarity index 100% rename from cargo-bolero/src/test_target.rs rename to bin/cargo-bolero/src/test_target.rs diff --git a/cargo-bolero/tests/fuzz_bytes/fuzz_target.rs b/bin/cargo-bolero/tests/fuzz_bytes/fuzz_target.rs similarity index 100% rename from cargo-bolero/tests/fuzz_bytes/fuzz_target.rs rename to bin/cargo-bolero/tests/fuzz_bytes/fuzz_target.rs diff --git a/cargo-bolero/tests/fuzz_generator/fuzz_target.rs b/bin/cargo-bolero/tests/fuzz_generator/fuzz_target.rs similarity index 100% rename from cargo-bolero/tests/fuzz_generator/fuzz_target.rs rename to bin/cargo-bolero/tests/fuzz_generator/fuzz_target.rs diff --git a/bin/rust-toolchain b/bin/rust-toolchain new file mode 100644 index 00000000..72ddd6c7 --- /dev/null +++ b/bin/rust-toolchain @@ -0,0 +1,3 @@ +[toolchain] +channel = "1.66.0" +components = [ "rustc", "clippy", "rustfmt" ] diff --git a/examples/basic/Cargo.toml b/examples/basic/Cargo.toml index 153287e2..8b94a950 100644 --- a/examples/basic/Cargo.toml +++ b/examples/basic/Cargo.toml @@ -8,7 +8,7 @@ edition = "2018" arrayvec = "0.5" [dev-dependencies] -bolero = { path = "../../bolero" } +bolero = { path = "../../lib/bolero" } [workspace] members = ["."] diff --git a/examples/basic/src/lib.rs b/examples/basic/src/lib.rs index 1de44ce9..94ed6b0d 100644 --- a/examples/basic/src/lib.rs +++ b/examples/basic/src/lib.rs @@ -10,6 +10,16 @@ pub fn add(a: u8, b: u8, should_panic: bool) -> u8 { } } +pub fn should_panic() -> bool { + if cfg!(bolero_should_panic) { + true + } else if cfg!(kani) { + false + } else { + std::env::var("SHOULD_PANIC").is_ok() + } +} + #[cfg(test)] mod tests { use super::*; @@ -18,11 +28,7 @@ mod tests { #[test] #[cfg_attr(kani, kani::proof)] fn add_test() { - let should_panic = if cfg!(kani) { - false - } else { - std::env::var("SHOULD_PANIC").is_ok() - }; + let should_panic = should_panic(); check!() .with_generator((0..254).map_gen(|a: u8| (a, a + 1))) @@ -33,8 +39,9 @@ mod tests { } #[test] + #[cfg_attr(kani, kani::proof)] fn other_test() { - let should_panic = std::env::var("SHOULD_PANIC").is_ok(); + let should_panic = should_panic(); check!() .with_generator((0..254).map_gen(|a: u8| (a, a + 1))) @@ -51,7 +58,7 @@ mod tests { impl TypeGenerator for T { fn generate(_: &mut R) -> Option { - if std::env::var("SHOULD_PANIC").is_ok() { + if should_panic() { panic!("generator panicked!"); } else { Some(Self) diff --git a/examples/basic/tests/fuzz_bytes/crashes/.gitkeep b/examples/basic/tests/fuzz_bytes/crashes/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/examples/basic/tests/fuzz_bytes/fuzz_target.rs b/examples/basic/tests/fuzz_bytes/fuzz_target.rs index 0d12f85c..8fc7050e 100644 --- a/examples/basic/tests/fuzz_bytes/fuzz_target.rs +++ b/examples/basic/tests/fuzz_bytes/fuzz_target.rs @@ -1,9 +1,9 @@ -use basic::add; +use basic::{add, should_panic}; use bolero::check; use std::env; fn main() { - let should_panic = env::var("SHOULD_PANIC").is_ok(); + let should_panic = should_panic(); check!().for_each(|input| { if input.len() < 2 { diff --git a/examples/basic/tests/fuzz_generator/crashes/.gitkeep b/examples/basic/tests/fuzz_generator/crashes/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/examples/basic/tests/fuzz_generator/fuzz_target.rs b/examples/basic/tests/fuzz_generator/fuzz_target.rs index b3c1967e..320b679c 100644 --- a/examples/basic/tests/fuzz_generator/fuzz_target.rs +++ b/examples/basic/tests/fuzz_generator/fuzz_target.rs @@ -1,8 +1,8 @@ -use basic::add; +use basic::{add, should_panic}; use bolero::{check, generator::*}; fn main() { - let should_panic = std::env::var("SHOULD_PANIC").is_ok(); + let should_panic = should_panic(); check!() .with_generator((0..254).map_gen(|a: u8| (a, a + 1))) diff --git a/examples/basic/tests/fuzz_operations/fuzz_target.rs b/examples/basic/tests/fuzz_operations/fuzz_target.rs index 51288e46..c27050d2 100644 --- a/examples/basic/tests/fuzz_operations/fuzz_target.rs +++ b/examples/basic/tests/fuzz_operations/fuzz_target.rs @@ -1,4 +1,5 @@ use arrayvec::ArrayVec; +use basic::should_panic; use bolero::{check, generator::*}; use std::collections::LinkedList; @@ -10,11 +11,7 @@ enum Operation { } fn main() { - let len = if std::env::var("SHOULD_PANIC").is_ok() { - 50 - } else { - 32 - }; + let len = if should_panic() { 50 } else { 32 }; check!() .with_generator(gen::>().with().len(0usize..=len)) diff --git a/examples/workspace/crate_a/Cargo.toml b/examples/workspace/crate_a/Cargo.toml index 7dcdeac2..8ebffc3c 100644 --- a/examples/workspace/crate_a/Cargo.toml +++ b/examples/workspace/crate_a/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Cameron Bytheway "] edition = "2018" [dev-dependencies] -bolero = { path = "../../../bolero" } +bolero = { path = "../../../lib/bolero" } [[test]] name = "fuzz_a" diff --git a/examples/workspace/crate_b/Cargo.toml b/examples/workspace/crate_b/Cargo.toml index cacce03c..643b02bc 100644 --- a/examples/workspace/crate_b/Cargo.toml +++ b/examples/workspace/crate_b/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Cameron Bytheway "] edition = "2018" [dev-dependencies] -bolero = { path = "../../../bolero" } +bolero = { path = "../../../lib/bolero" } [[test]] name = "fuzz_b" diff --git a/lib/Cargo.toml b/lib/Cargo.toml new file mode 100644 index 00000000..415349b8 --- /dev/null +++ b/lib/Cargo.toml @@ -0,0 +1,17 @@ +[workspace] +members = [ + "bolero", + "bolero-*", +] +resolver = "2" + +[profile.fuzz] +inherits = "dev" +opt-level = 3 +incremental = false +codegen-units = 1 + +[profile.release] +lto = true +codegen-units = 1 +incremental = false diff --git a/bolero-afl/Cargo.toml b/lib/bolero-afl/Cargo.toml similarity index 100% rename from bolero-afl/Cargo.toml rename to lib/bolero-afl/Cargo.toml diff --git a/bolero-afl/afl/LICENSE b/lib/bolero-afl/afl/LICENSE similarity index 100% rename from bolero-afl/afl/LICENSE rename to lib/bolero-afl/afl/LICENSE diff --git a/bolero-afl/afl/afl-analyze.c b/lib/bolero-afl/afl/afl-analyze.c similarity index 100% rename from bolero-afl/afl/afl-analyze.c rename to lib/bolero-afl/afl/afl-analyze.c diff --git a/bolero-afl/afl/afl-as.c b/lib/bolero-afl/afl/afl-as.c similarity index 100% rename from bolero-afl/afl/afl-as.c rename to lib/bolero-afl/afl/afl-as.c diff --git a/bolero-afl/afl/afl-as.h b/lib/bolero-afl/afl/afl-as.h similarity index 100% rename from bolero-afl/afl/afl-as.h rename to lib/bolero-afl/afl/afl-as.h diff --git a/bolero-afl/afl/afl-fuzz.c b/lib/bolero-afl/afl/afl-fuzz.c similarity index 100% rename from bolero-afl/afl/afl-fuzz.c rename to lib/bolero-afl/afl/afl-fuzz.c diff --git a/bolero-afl/afl/afl-gcc.c b/lib/bolero-afl/afl/afl-gcc.c similarity index 100% rename from bolero-afl/afl/afl-gcc.c rename to lib/bolero-afl/afl/afl-gcc.c diff --git a/bolero-afl/afl/afl-gotcpu.c b/lib/bolero-afl/afl/afl-gotcpu.c similarity index 100% rename from bolero-afl/afl/afl-gotcpu.c rename to lib/bolero-afl/afl/afl-gotcpu.c diff --git a/bolero-afl/afl/afl-showmap.c b/lib/bolero-afl/afl/afl-showmap.c similarity index 100% rename from bolero-afl/afl/afl-showmap.c rename to lib/bolero-afl/afl/afl-showmap.c diff --git a/bolero-afl/afl/afl-tmin.c b/lib/bolero-afl/afl/afl-tmin.c similarity index 100% rename from bolero-afl/afl/afl-tmin.c rename to lib/bolero-afl/afl/afl-tmin.c diff --git a/bolero-afl/afl/alloc-inl.h b/lib/bolero-afl/afl/alloc-inl.h similarity index 100% rename from bolero-afl/afl/alloc-inl.h rename to lib/bolero-afl/afl/alloc-inl.h diff --git a/bolero-afl/afl/android-ashmem.h b/lib/bolero-afl/afl/android-ashmem.h similarity index 100% rename from bolero-afl/afl/android-ashmem.h rename to lib/bolero-afl/afl/android-ashmem.h diff --git a/bolero-afl/afl/config.h b/lib/bolero-afl/afl/config.h similarity index 100% rename from bolero-afl/afl/config.h rename to lib/bolero-afl/afl/config.h diff --git a/bolero-afl/afl/debug.h b/lib/bolero-afl/afl/debug.h similarity index 100% rename from bolero-afl/afl/debug.h rename to lib/bolero-afl/afl/debug.h diff --git a/bolero-afl/afl/hash.h b/lib/bolero-afl/afl/hash.h similarity index 100% rename from bolero-afl/afl/hash.h rename to lib/bolero-afl/afl/hash.h diff --git a/bolero-afl/afl/llvm_mode/afl-llvm-rt.o.c b/lib/bolero-afl/afl/llvm_mode/afl-llvm-rt.o.c similarity index 100% rename from bolero-afl/afl/llvm_mode/afl-llvm-rt.o.c rename to lib/bolero-afl/afl/llvm_mode/afl-llvm-rt.o.c diff --git a/bolero-afl/afl/test-instr.c b/lib/bolero-afl/afl/test-instr.c similarity index 100% rename from bolero-afl/afl/test-instr.c rename to lib/bolero-afl/afl/test-instr.c diff --git a/bolero-afl/afl/test-libfuzzer-target.c b/lib/bolero-afl/afl/test-libfuzzer-target.c similarity index 100% rename from bolero-afl/afl/test-libfuzzer-target.c rename to lib/bolero-afl/afl/test-libfuzzer-target.c diff --git a/bolero-afl/afl/types.h b/lib/bolero-afl/afl/types.h similarity index 100% rename from bolero-afl/afl/types.h rename to lib/bolero-afl/afl/types.h diff --git a/bolero-afl/build.rs b/lib/bolero-afl/build.rs similarity index 100% rename from bolero-afl/build.rs rename to lib/bolero-afl/build.rs diff --git a/bolero-afl/src/bolero-afl-util.h b/lib/bolero-afl/src/bolero-afl-util.h similarity index 100% rename from bolero-afl/src/bolero-afl-util.h rename to lib/bolero-afl/src/bolero-afl-util.h diff --git a/bolero-afl/src/lib.rs b/lib/bolero-afl/src/lib.rs similarity index 100% rename from bolero-afl/src/lib.rs rename to lib/bolero-afl/src/lib.rs diff --git a/bolero-afl/update.sh b/lib/bolero-afl/update.sh similarity index 100% rename from bolero-afl/update.sh rename to lib/bolero-afl/update.sh diff --git a/bolero-engine/Cargo.toml b/lib/bolero-engine/Cargo.toml similarity index 88% rename from bolero-engine/Cargo.toml rename to lib/bolero-engine/Cargo.toml index 8e6402f4..0106b82a 100644 --- a/bolero-engine/Cargo.toml +++ b/lib/bolero-engine/Cargo.toml @@ -9,6 +9,7 @@ keywords = ["testing", "quickcheck", "property", "fuzz", "fuzzing"] license = "MIT" edition = "2018" readme = "../README.md" +rust-version = "1.57.0" [features] rng = ["rand", "bolero-generator/alloc"] @@ -21,7 +22,7 @@ pretty-hex = "0.3" rand = { version = "0.8", optional = true } [target.'cfg(not(kani))'.dependencies] -backtrace = { version = "0.3" } +backtrace = { version = "0.3", default-features = false, features = ["std"] } [dev-dependencies] bolero-generator = { version = "0.9", path = "../bolero-generator", features = ["std"] } diff --git a/bolero-engine/src/lib.rs b/lib/bolero-engine/src/lib.rs similarity index 100% rename from bolero-engine/src/lib.rs rename to lib/bolero-engine/src/lib.rs diff --git a/bolero-engine/src/noop/panic.rs b/lib/bolero-engine/src/noop/panic.rs similarity index 100% rename from bolero-engine/src/noop/panic.rs rename to lib/bolero-engine/src/noop/panic.rs diff --git a/bolero-engine/src/panic.rs b/lib/bolero-engine/src/panic.rs similarity index 100% rename from bolero-engine/src/panic.rs rename to lib/bolero-engine/src/panic.rs diff --git a/bolero-engine/src/rng.rs b/lib/bolero-engine/src/rng.rs similarity index 100% rename from bolero-engine/src/rng.rs rename to lib/bolero-engine/src/rng.rs diff --git a/bolero-engine/src/shrink.rs b/lib/bolero-engine/src/shrink.rs similarity index 100% rename from bolero-engine/src/shrink.rs rename to lib/bolero-engine/src/shrink.rs diff --git a/bolero-engine/src/target_location.rs b/lib/bolero-engine/src/target_location.rs similarity index 100% rename from bolero-engine/src/target_location.rs rename to lib/bolero-engine/src/target_location.rs diff --git a/bolero-engine/src/test.rs b/lib/bolero-engine/src/test.rs similarity index 100% rename from bolero-engine/src/test.rs rename to lib/bolero-engine/src/test.rs diff --git a/bolero-engine/src/test_failure.rs b/lib/bolero-engine/src/test_failure.rs similarity index 100% rename from bolero-engine/src/test_failure.rs rename to lib/bolero-engine/src/test_failure.rs diff --git a/bolero-engine/src/test_input.rs b/lib/bolero-engine/src/test_input.rs similarity index 100% rename from bolero-engine/src/test_input.rs rename to lib/bolero-engine/src/test_input.rs diff --git a/bolero-engine/src/test_result.rs b/lib/bolero-engine/src/test_result.rs similarity index 100% rename from bolero-engine/src/test_result.rs rename to lib/bolero-engine/src/test_result.rs diff --git a/bolero-generator-derive/Cargo.toml b/lib/bolero-generator-derive/Cargo.toml similarity index 100% rename from bolero-generator-derive/Cargo.toml rename to lib/bolero-generator-derive/Cargo.toml diff --git a/bolero-generator-derive/src/generator_attr.rs b/lib/bolero-generator-derive/src/generator_attr.rs similarity index 100% rename from bolero-generator-derive/src/generator_attr.rs rename to lib/bolero-generator-derive/src/generator_attr.rs diff --git a/bolero-generator-derive/src/lib.rs b/lib/bolero-generator-derive/src/lib.rs similarity index 100% rename from bolero-generator-derive/src/lib.rs rename to lib/bolero-generator-derive/src/lib.rs diff --git a/bolero-generator/Cargo.toml b/lib/bolero-generator/Cargo.toml similarity index 97% rename from bolero-generator/Cargo.toml rename to lib/bolero-generator/Cargo.toml index f1dae454..84f030a2 100644 --- a/bolero-generator/Cargo.toml +++ b/lib/bolero-generator/Cargo.toml @@ -9,6 +9,7 @@ keywords = ["testing", "quickcheck", "property", "fuzz", "fuzzing"] license = "MIT" edition = "2018" readme = "README.md" +rust-version = "1.57.0" [features] default = ["either", "std"] diff --git a/bolero-generator/README.md b/lib/bolero-generator/README.md similarity index 100% rename from bolero-generator/README.md rename to lib/bolero-generator/README.md diff --git a/bolero-generator/src/alloc/boxed.rs b/lib/bolero-generator/src/alloc/boxed.rs similarity index 100% rename from bolero-generator/src/alloc/boxed.rs rename to lib/bolero-generator/src/alloc/boxed.rs diff --git a/bolero-generator/src/alloc/collections.rs b/lib/bolero-generator/src/alloc/collections.rs similarity index 100% rename from bolero-generator/src/alloc/collections.rs rename to lib/bolero-generator/src/alloc/collections.rs diff --git a/bolero-generator/src/alloc/mod.rs b/lib/bolero-generator/src/alloc/mod.rs similarity index 100% rename from bolero-generator/src/alloc/mod.rs rename to lib/bolero-generator/src/alloc/mod.rs diff --git a/bolero-generator/src/alloc/string.rs b/lib/bolero-generator/src/alloc/string.rs similarity index 100% rename from bolero-generator/src/alloc/string.rs rename to lib/bolero-generator/src/alloc/string.rs diff --git a/bolero-generator/src/alloc/sync.rs b/lib/bolero-generator/src/alloc/sync.rs similarity index 100% rename from bolero-generator/src/alloc/sync.rs rename to lib/bolero-generator/src/alloc/sync.rs diff --git a/bolero-generator/src/arbitrary.rs b/lib/bolero-generator/src/arbitrary.rs similarity index 100% rename from bolero-generator/src/arbitrary.rs rename to lib/bolero-generator/src/arbitrary.rs diff --git a/bolero-generator/src/array.rs b/lib/bolero-generator/src/array.rs similarity index 100% rename from bolero-generator/src/array.rs rename to lib/bolero-generator/src/array.rs diff --git a/bolero-generator/src/atomic.rs b/lib/bolero-generator/src/atomic.rs similarity index 100% rename from bolero-generator/src/atomic.rs rename to lib/bolero-generator/src/atomic.rs diff --git a/bolero-generator/src/bool.rs b/lib/bolero-generator/src/bool.rs similarity index 100% rename from bolero-generator/src/bool.rs rename to lib/bolero-generator/src/bool.rs diff --git a/bolero-generator/src/bounded.rs b/lib/bolero-generator/src/bounded.rs similarity index 100% rename from bolero-generator/src/bounded.rs rename to lib/bolero-generator/src/bounded.rs diff --git a/bolero-generator/src/char.rs b/lib/bolero-generator/src/char.rs similarity index 100% rename from bolero-generator/src/char.rs rename to lib/bolero-generator/src/char.rs diff --git a/bolero-generator/src/combinator.rs b/lib/bolero-generator/src/combinator.rs similarity index 100% rename from bolero-generator/src/combinator.rs rename to lib/bolero-generator/src/combinator.rs diff --git a/bolero-generator/src/driver.rs b/lib/bolero-generator/src/driver.rs similarity index 100% rename from bolero-generator/src/driver.rs rename to lib/bolero-generator/src/driver.rs diff --git a/bolero-generator/src/driver/bytes.rs b/lib/bolero-generator/src/driver/bytes.rs similarity index 100% rename from bolero-generator/src/driver/bytes.rs rename to lib/bolero-generator/src/driver/bytes.rs diff --git a/bolero-generator/src/driver/macros.rs b/lib/bolero-generator/src/driver/macros.rs similarity index 100% rename from bolero-generator/src/driver/macros.rs rename to lib/bolero-generator/src/driver/macros.rs diff --git a/bolero-generator/src/driver/rng.rs b/lib/bolero-generator/src/driver/rng.rs similarity index 100% rename from bolero-generator/src/driver/rng.rs rename to lib/bolero-generator/src/driver/rng.rs diff --git a/bolero-generator/src/lib.rs b/lib/bolero-generator/src/lib.rs similarity index 100% rename from bolero-generator/src/lib.rs rename to lib/bolero-generator/src/lib.rs diff --git a/bolero-generator/src/num.rs b/lib/bolero-generator/src/num.rs similarity index 100% rename from bolero-generator/src/num.rs rename to lib/bolero-generator/src/num.rs diff --git a/bolero-generator/src/one_of.rs b/lib/bolero-generator/src/one_of.rs similarity index 100% rename from bolero-generator/src/one_of.rs rename to lib/bolero-generator/src/one_of.rs diff --git a/bolero-generator/src/range.rs b/lib/bolero-generator/src/range.rs similarity index 100% rename from bolero-generator/src/range.rs rename to lib/bolero-generator/src/range.rs diff --git a/bolero-generator/src/result.rs b/lib/bolero-generator/src/result.rs similarity index 100% rename from bolero-generator/src/result.rs rename to lib/bolero-generator/src/result.rs diff --git a/bolero-generator/src/std/mod.rs b/lib/bolero-generator/src/std/mod.rs similarity index 100% rename from bolero-generator/src/std/mod.rs rename to lib/bolero-generator/src/std/mod.rs diff --git a/bolero-generator/src/testing.rs b/lib/bolero-generator/src/testing.rs similarity index 100% rename from bolero-generator/src/testing.rs rename to lib/bolero-generator/src/testing.rs diff --git a/bolero-generator/src/time.rs b/lib/bolero-generator/src/time.rs similarity index 100% rename from bolero-generator/src/time.rs rename to lib/bolero-generator/src/time.rs diff --git a/bolero-generator/src/tuple.rs b/lib/bolero-generator/src/tuple.rs similarity index 100% rename from bolero-generator/src/tuple.rs rename to lib/bolero-generator/src/tuple.rs diff --git a/bolero-generator/src/uniform.rs b/lib/bolero-generator/src/uniform.rs similarity index 100% rename from bolero-generator/src/uniform.rs rename to lib/bolero-generator/src/uniform.rs diff --git a/bolero-generator/tests/derive_test.rs b/lib/bolero-generator/tests/derive_test.rs similarity index 100% rename from bolero-generator/tests/derive_test.rs rename to lib/bolero-generator/tests/derive_test.rs diff --git a/bolero-honggfuzz/Cargo.toml b/lib/bolero-honggfuzz/Cargo.toml similarity index 100% rename from bolero-honggfuzz/Cargo.toml rename to lib/bolero-honggfuzz/Cargo.toml diff --git a/bolero-honggfuzz/build.rs b/lib/bolero-honggfuzz/build.rs similarity index 100% rename from bolero-honggfuzz/build.rs rename to lib/bolero-honggfuzz/build.rs diff --git a/bolero-honggfuzz/honggfuzz/Android.mk b/lib/bolero-honggfuzz/honggfuzz/Android.mk similarity index 100% rename from bolero-honggfuzz/honggfuzz/Android.mk rename to lib/bolero-honggfuzz/honggfuzz/Android.mk diff --git a/bolero-honggfuzz/honggfuzz/COPYING b/lib/bolero-honggfuzz/honggfuzz/COPYING similarity index 100% rename from bolero-honggfuzz/honggfuzz/COPYING rename to lib/bolero-honggfuzz/honggfuzz/COPYING diff --git a/bolero-honggfuzz/honggfuzz/Makefile b/lib/bolero-honggfuzz/honggfuzz/Makefile similarity index 100% rename from bolero-honggfuzz/honggfuzz/Makefile rename to lib/bolero-honggfuzz/honggfuzz/Makefile diff --git a/bolero-honggfuzz/honggfuzz/arch.h b/lib/bolero-honggfuzz/honggfuzz/arch.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/arch.h rename to lib/bolero-honggfuzz/honggfuzz/arch.h diff --git a/bolero-honggfuzz/honggfuzz/cmdline.c b/lib/bolero-honggfuzz/honggfuzz/cmdline.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/cmdline.c rename to lib/bolero-honggfuzz/honggfuzz/cmdline.c diff --git a/bolero-honggfuzz/honggfuzz/cmdline.h b/lib/bolero-honggfuzz/honggfuzz/cmdline.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/cmdline.h rename to lib/bolero-honggfuzz/honggfuzz/cmdline.h diff --git a/bolero-honggfuzz/honggfuzz/display.c b/lib/bolero-honggfuzz/honggfuzz/display.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/display.c rename to lib/bolero-honggfuzz/honggfuzz/display.c diff --git a/bolero-honggfuzz/honggfuzz/display.h b/lib/bolero-honggfuzz/honggfuzz/display.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/display.h rename to lib/bolero-honggfuzz/honggfuzz/display.h diff --git a/bolero-honggfuzz/honggfuzz/fuzz.c b/lib/bolero-honggfuzz/honggfuzz/fuzz.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/fuzz.c rename to lib/bolero-honggfuzz/honggfuzz/fuzz.c diff --git a/bolero-honggfuzz/honggfuzz/fuzz.h b/lib/bolero-honggfuzz/honggfuzz/fuzz.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/fuzz.h rename to lib/bolero-honggfuzz/honggfuzz/fuzz.h diff --git a/bolero-honggfuzz/honggfuzz/honggfuzz.c b/lib/bolero-honggfuzz/honggfuzz/honggfuzz.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/honggfuzz.c rename to lib/bolero-honggfuzz/honggfuzz/honggfuzz.c diff --git a/bolero-honggfuzz/honggfuzz/honggfuzz.h b/lib/bolero-honggfuzz/honggfuzz/honggfuzz.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/honggfuzz.h rename to lib/bolero-honggfuzz/honggfuzz/honggfuzz.h diff --git a/bolero-honggfuzz/honggfuzz/includes/libhfcommon b/lib/bolero-honggfuzz/honggfuzz/includes/libhfcommon similarity index 100% rename from bolero-honggfuzz/honggfuzz/includes/libhfcommon rename to lib/bolero-honggfuzz/honggfuzz/includes/libhfcommon diff --git a/bolero-honggfuzz/honggfuzz/includes/libhfnetdriver b/lib/bolero-honggfuzz/honggfuzz/includes/libhfnetdriver similarity index 100% rename from bolero-honggfuzz/honggfuzz/includes/libhfnetdriver rename to lib/bolero-honggfuzz/honggfuzz/includes/libhfnetdriver diff --git a/bolero-honggfuzz/honggfuzz/includes/libhfuzz b/lib/bolero-honggfuzz/honggfuzz/includes/libhfuzz similarity index 100% rename from bolero-honggfuzz/honggfuzz/includes/libhfuzz rename to lib/bolero-honggfuzz/honggfuzz/includes/libhfuzz diff --git a/bolero-honggfuzz/honggfuzz/input.c b/lib/bolero-honggfuzz/honggfuzz/input.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/input.c rename to lib/bolero-honggfuzz/honggfuzz/input.c diff --git a/bolero-honggfuzz/honggfuzz/input.h b/lib/bolero-honggfuzz/honggfuzz/input.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/input.h rename to lib/bolero-honggfuzz/honggfuzz/input.h diff --git a/bolero-honggfuzz/honggfuzz/libhfcommon/common.h b/lib/bolero-honggfuzz/honggfuzz/libhfcommon/common.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfcommon/common.h rename to lib/bolero-honggfuzz/honggfuzz/libhfcommon/common.h diff --git a/bolero-honggfuzz/honggfuzz/libhfcommon/files.c b/lib/bolero-honggfuzz/honggfuzz/libhfcommon/files.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfcommon/files.c rename to lib/bolero-honggfuzz/honggfuzz/libhfcommon/files.c diff --git a/bolero-honggfuzz/honggfuzz/libhfcommon/files.h b/lib/bolero-honggfuzz/honggfuzz/libhfcommon/files.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfcommon/files.h rename to lib/bolero-honggfuzz/honggfuzz/libhfcommon/files.h diff --git a/bolero-honggfuzz/honggfuzz/libhfcommon/log.c b/lib/bolero-honggfuzz/honggfuzz/libhfcommon/log.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfcommon/log.c rename to lib/bolero-honggfuzz/honggfuzz/libhfcommon/log.c diff --git a/bolero-honggfuzz/honggfuzz/libhfcommon/log.h b/lib/bolero-honggfuzz/honggfuzz/libhfcommon/log.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfcommon/log.h rename to lib/bolero-honggfuzz/honggfuzz/libhfcommon/log.h diff --git a/bolero-honggfuzz/honggfuzz/libhfcommon/ns.c b/lib/bolero-honggfuzz/honggfuzz/libhfcommon/ns.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfcommon/ns.c rename to lib/bolero-honggfuzz/honggfuzz/libhfcommon/ns.c diff --git a/bolero-honggfuzz/honggfuzz/libhfcommon/ns.h b/lib/bolero-honggfuzz/honggfuzz/libhfcommon/ns.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfcommon/ns.h rename to lib/bolero-honggfuzz/honggfuzz/libhfcommon/ns.h diff --git a/bolero-honggfuzz/honggfuzz/libhfcommon/util.c b/lib/bolero-honggfuzz/honggfuzz/libhfcommon/util.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfcommon/util.c rename to lib/bolero-honggfuzz/honggfuzz/libhfcommon/util.c diff --git a/bolero-honggfuzz/honggfuzz/libhfcommon/util.h b/lib/bolero-honggfuzz/honggfuzz/libhfcommon/util.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfcommon/util.h rename to lib/bolero-honggfuzz/honggfuzz/libhfcommon/util.h diff --git a/bolero-honggfuzz/honggfuzz/libhfnetdriver/netdriver.c b/lib/bolero-honggfuzz/honggfuzz/libhfnetdriver/netdriver.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfnetdriver/netdriver.c rename to lib/bolero-honggfuzz/honggfuzz/libhfnetdriver/netdriver.c diff --git a/bolero-honggfuzz/honggfuzz/libhfnetdriver/netdriver.h b/lib/bolero-honggfuzz/honggfuzz/libhfnetdriver/netdriver.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfnetdriver/netdriver.h rename to lib/bolero-honggfuzz/honggfuzz/libhfnetdriver/netdriver.h diff --git a/bolero-honggfuzz/honggfuzz/libhfuzz/fetch.c b/lib/bolero-honggfuzz/honggfuzz/libhfuzz/fetch.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfuzz/fetch.c rename to lib/bolero-honggfuzz/honggfuzz/libhfuzz/fetch.c diff --git a/bolero-honggfuzz/honggfuzz/libhfuzz/fetch.h b/lib/bolero-honggfuzz/honggfuzz/libhfuzz/fetch.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfuzz/fetch.h rename to lib/bolero-honggfuzz/honggfuzz/libhfuzz/fetch.h diff --git a/bolero-honggfuzz/honggfuzz/libhfuzz/instrument.c b/lib/bolero-honggfuzz/honggfuzz/libhfuzz/instrument.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfuzz/instrument.c rename to lib/bolero-honggfuzz/honggfuzz/libhfuzz/instrument.c diff --git a/bolero-honggfuzz/honggfuzz/libhfuzz/instrument.h b/lib/bolero-honggfuzz/honggfuzz/libhfuzz/instrument.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfuzz/instrument.h rename to lib/bolero-honggfuzz/honggfuzz/libhfuzz/instrument.h diff --git a/bolero-honggfuzz/honggfuzz/libhfuzz/libhfuzz.h b/lib/bolero-honggfuzz/honggfuzz/libhfuzz/libhfuzz.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfuzz/libhfuzz.h rename to lib/bolero-honggfuzz/honggfuzz/libhfuzz/libhfuzz.h diff --git a/bolero-honggfuzz/honggfuzz/libhfuzz/linux.c b/lib/bolero-honggfuzz/honggfuzz/libhfuzz/linux.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfuzz/linux.c rename to lib/bolero-honggfuzz/honggfuzz/libhfuzz/linux.c diff --git a/bolero-honggfuzz/honggfuzz/libhfuzz/memorycmp.c b/lib/bolero-honggfuzz/honggfuzz/libhfuzz/memorycmp.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfuzz/memorycmp.c rename to lib/bolero-honggfuzz/honggfuzz/libhfuzz/memorycmp.c diff --git a/bolero-honggfuzz/honggfuzz/libhfuzz/performance.c b/lib/bolero-honggfuzz/honggfuzz/libhfuzz/performance.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfuzz/performance.c rename to lib/bolero-honggfuzz/honggfuzz/libhfuzz/performance.c diff --git a/bolero-honggfuzz/honggfuzz/libhfuzz/performance.h b/lib/bolero-honggfuzz/honggfuzz/libhfuzz/performance.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfuzz/performance.h rename to lib/bolero-honggfuzz/honggfuzz/libhfuzz/performance.h diff --git a/bolero-honggfuzz/honggfuzz/libhfuzz/persistent.c b/lib/bolero-honggfuzz/honggfuzz/libhfuzz/persistent.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfuzz/persistent.c rename to lib/bolero-honggfuzz/honggfuzz/libhfuzz/persistent.c diff --git a/bolero-honggfuzz/honggfuzz/libhfuzz/persistent.h b/lib/bolero-honggfuzz/honggfuzz/libhfuzz/persistent.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/libhfuzz/persistent.h rename to lib/bolero-honggfuzz/honggfuzz/libhfuzz/persistent.h diff --git a/bolero-honggfuzz/honggfuzz/linux/arch.c b/lib/bolero-honggfuzz/honggfuzz/linux/arch.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/linux/arch.c rename to lib/bolero-honggfuzz/honggfuzz/linux/arch.c diff --git a/bolero-honggfuzz/honggfuzz/linux/bfd.c b/lib/bolero-honggfuzz/honggfuzz/linux/bfd.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/linux/bfd.c rename to lib/bolero-honggfuzz/honggfuzz/linux/bfd.c diff --git a/bolero-honggfuzz/honggfuzz/linux/bfd.h b/lib/bolero-honggfuzz/honggfuzz/linux/bfd.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/linux/bfd.h rename to lib/bolero-honggfuzz/honggfuzz/linux/bfd.h diff --git a/bolero-honggfuzz/honggfuzz/linux/perf.c b/lib/bolero-honggfuzz/honggfuzz/linux/perf.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/linux/perf.c rename to lib/bolero-honggfuzz/honggfuzz/linux/perf.c diff --git a/bolero-honggfuzz/honggfuzz/linux/perf.h b/lib/bolero-honggfuzz/honggfuzz/linux/perf.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/linux/perf.h rename to lib/bolero-honggfuzz/honggfuzz/linux/perf.h diff --git a/bolero-honggfuzz/honggfuzz/linux/pt.c b/lib/bolero-honggfuzz/honggfuzz/linux/pt.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/linux/pt.c rename to lib/bolero-honggfuzz/honggfuzz/linux/pt.c diff --git a/bolero-honggfuzz/honggfuzz/linux/pt.h b/lib/bolero-honggfuzz/honggfuzz/linux/pt.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/linux/pt.h rename to lib/bolero-honggfuzz/honggfuzz/linux/pt.h diff --git a/bolero-honggfuzz/honggfuzz/linux/trace.c b/lib/bolero-honggfuzz/honggfuzz/linux/trace.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/linux/trace.c rename to lib/bolero-honggfuzz/honggfuzz/linux/trace.c diff --git a/bolero-honggfuzz/honggfuzz/linux/trace.h b/lib/bolero-honggfuzz/honggfuzz/linux/trace.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/linux/trace.h rename to lib/bolero-honggfuzz/honggfuzz/linux/trace.h diff --git a/bolero-honggfuzz/honggfuzz/linux/unwind.c b/lib/bolero-honggfuzz/honggfuzz/linux/unwind.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/linux/unwind.c rename to lib/bolero-honggfuzz/honggfuzz/linux/unwind.c diff --git a/bolero-honggfuzz/honggfuzz/linux/unwind.h b/lib/bolero-honggfuzz/honggfuzz/linux/unwind.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/linux/unwind.h rename to lib/bolero-honggfuzz/honggfuzz/linux/unwind.h diff --git a/bolero-honggfuzz/honggfuzz/mac/arch.c b/lib/bolero-honggfuzz/honggfuzz/mac/arch.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/mac/arch.c rename to lib/bolero-honggfuzz/honggfuzz/mac/arch.c diff --git a/bolero-honggfuzz/honggfuzz/mangle.c b/lib/bolero-honggfuzz/honggfuzz/mangle.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/mangle.c rename to lib/bolero-honggfuzz/honggfuzz/mangle.c diff --git a/bolero-honggfuzz/honggfuzz/mangle.h b/lib/bolero-honggfuzz/honggfuzz/mangle.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/mangle.h rename to lib/bolero-honggfuzz/honggfuzz/mangle.h diff --git a/bolero-honggfuzz/honggfuzz/netbsd/arch.c b/lib/bolero-honggfuzz/honggfuzz/netbsd/arch.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/netbsd/arch.c rename to lib/bolero-honggfuzz/honggfuzz/netbsd/arch.c diff --git a/bolero-honggfuzz/honggfuzz/netbsd/trace.c b/lib/bolero-honggfuzz/honggfuzz/netbsd/trace.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/netbsd/trace.c rename to lib/bolero-honggfuzz/honggfuzz/netbsd/trace.c diff --git a/bolero-honggfuzz/honggfuzz/netbsd/trace.h b/lib/bolero-honggfuzz/honggfuzz/netbsd/trace.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/netbsd/trace.h rename to lib/bolero-honggfuzz/honggfuzz/netbsd/trace.h diff --git a/bolero-honggfuzz/honggfuzz/netbsd/unwind.c b/lib/bolero-honggfuzz/honggfuzz/netbsd/unwind.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/netbsd/unwind.c rename to lib/bolero-honggfuzz/honggfuzz/netbsd/unwind.c diff --git a/bolero-honggfuzz/honggfuzz/netbsd/unwind.h b/lib/bolero-honggfuzz/honggfuzz/netbsd/unwind.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/netbsd/unwind.h rename to lib/bolero-honggfuzz/honggfuzz/netbsd/unwind.h diff --git a/bolero-honggfuzz/honggfuzz/posix/arch.c b/lib/bolero-honggfuzz/honggfuzz/posix/arch.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/posix/arch.c rename to lib/bolero-honggfuzz/honggfuzz/posix/arch.c diff --git a/bolero-honggfuzz/honggfuzz/report.c b/lib/bolero-honggfuzz/honggfuzz/report.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/report.c rename to lib/bolero-honggfuzz/honggfuzz/report.c diff --git a/bolero-honggfuzz/honggfuzz/report.h b/lib/bolero-honggfuzz/honggfuzz/report.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/report.h rename to lib/bolero-honggfuzz/honggfuzz/report.h diff --git a/bolero-honggfuzz/honggfuzz/sanitizers.c b/lib/bolero-honggfuzz/honggfuzz/sanitizers.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/sanitizers.c rename to lib/bolero-honggfuzz/honggfuzz/sanitizers.c diff --git a/bolero-honggfuzz/honggfuzz/sanitizers.h b/lib/bolero-honggfuzz/honggfuzz/sanitizers.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/sanitizers.h rename to lib/bolero-honggfuzz/honggfuzz/sanitizers.h diff --git a/bolero-honggfuzz/honggfuzz/socketfuzzer.c b/lib/bolero-honggfuzz/honggfuzz/socketfuzzer.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/socketfuzzer.c rename to lib/bolero-honggfuzz/honggfuzz/socketfuzzer.c diff --git a/bolero-honggfuzz/honggfuzz/socketfuzzer.h b/lib/bolero-honggfuzz/honggfuzz/socketfuzzer.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/socketfuzzer.h rename to lib/bolero-honggfuzz/honggfuzz/socketfuzzer.h diff --git a/bolero-honggfuzz/honggfuzz/subproc.c b/lib/bolero-honggfuzz/honggfuzz/subproc.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/subproc.c rename to lib/bolero-honggfuzz/honggfuzz/subproc.c diff --git a/bolero-honggfuzz/honggfuzz/subproc.h b/lib/bolero-honggfuzz/honggfuzz/subproc.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/subproc.h rename to lib/bolero-honggfuzz/honggfuzz/subproc.h diff --git a/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/.gitignore b/lib/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/.gitignore similarity index 100% rename from bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/.gitignore rename to lib/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/.gitignore diff --git a/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/Android.mk b/lib/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/Android.mk similarity index 100% rename from bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/Android.mk rename to lib/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/Android.mk diff --git a/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/Block.h b/lib/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/Block.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/Block.h rename to lib/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/Block.h diff --git a/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/Block_private.h b/lib/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/Block_private.h similarity index 100% rename from bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/Block_private.h rename to lib/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/Block_private.h diff --git a/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/README.txt b/lib/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/README.txt similarity index 100% rename from bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/README.txt rename to lib/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/README.txt diff --git a/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/data.c b/lib/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/data.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/data.c rename to lib/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/data.c diff --git a/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/runtime.c b/lib/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/runtime.c similarity index 100% rename from bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/runtime.c rename to lib/bolero-honggfuzz/honggfuzz/third_party/android/libBlocksRuntime/runtime.c diff --git a/bolero-honggfuzz/honggfuzz/third_party/android/patches/libunwind.patch b/lib/bolero-honggfuzz/honggfuzz/third_party/android/patches/libunwind.patch similarity index 100% rename from bolero-honggfuzz/honggfuzz/third_party/android/patches/libunwind.patch rename to lib/bolero-honggfuzz/honggfuzz/third_party/android/patches/libunwind.patch diff --git a/bolero-honggfuzz/honggfuzz/third_party/android/scripts/compile-capstone.sh b/lib/bolero-honggfuzz/honggfuzz/third_party/android/scripts/compile-capstone.sh similarity index 100% rename from bolero-honggfuzz/honggfuzz/third_party/android/scripts/compile-capstone.sh rename to lib/bolero-honggfuzz/honggfuzz/third_party/android/scripts/compile-capstone.sh diff --git a/bolero-honggfuzz/honggfuzz/third_party/android/scripts/compile-libBlocksRuntime.sh b/lib/bolero-honggfuzz/honggfuzz/third_party/android/scripts/compile-libBlocksRuntime.sh similarity index 100% rename from bolero-honggfuzz/honggfuzz/third_party/android/scripts/compile-libBlocksRuntime.sh rename to lib/bolero-honggfuzz/honggfuzz/third_party/android/scripts/compile-libBlocksRuntime.sh diff --git a/bolero-honggfuzz/honggfuzz/third_party/android/scripts/compile-libunwind.sh b/lib/bolero-honggfuzz/honggfuzz/third_party/android/scripts/compile-libunwind.sh similarity index 100% rename from bolero-honggfuzz/honggfuzz/third_party/android/scripts/compile-libunwind.sh rename to lib/bolero-honggfuzz/honggfuzz/third_party/android/scripts/compile-libunwind.sh diff --git a/bolero-honggfuzz/honggfuzz/third_party/mac/.gitignore b/lib/bolero-honggfuzz/honggfuzz/third_party/mac/.gitignore similarity index 100% rename from bolero-honggfuzz/honggfuzz/third_party/mac/.gitignore rename to lib/bolero-honggfuzz/honggfuzz/third_party/mac/.gitignore diff --git a/bolero-honggfuzz/honggfuzz/third_party/mac/CrashReport_Mavericks.o b/lib/bolero-honggfuzz/honggfuzz/third_party/mac/CrashReport_Mavericks.o similarity index 100% rename from bolero-honggfuzz/honggfuzz/third_party/mac/CrashReport_Mavericks.o rename to lib/bolero-honggfuzz/honggfuzz/third_party/mac/CrashReport_Mavericks.o diff --git a/bolero-honggfuzz/honggfuzz/third_party/mac/CrashReport_Mountain_Lion.o b/lib/bolero-honggfuzz/honggfuzz/third_party/mac/CrashReport_Mountain_Lion.o similarity index 100% rename from bolero-honggfuzz/honggfuzz/third_party/mac/CrashReport_Mountain_Lion.o rename to lib/bolero-honggfuzz/honggfuzz/third_party/mac/CrashReport_Mountain_Lion.o diff --git a/bolero-honggfuzz/honggfuzz/third_party/mac/CrashReport_Sierra.o b/lib/bolero-honggfuzz/honggfuzz/third_party/mac/CrashReport_Sierra.o similarity index 100% rename from bolero-honggfuzz/honggfuzz/third_party/mac/CrashReport_Sierra.o rename to lib/bolero-honggfuzz/honggfuzz/third_party/mac/CrashReport_Sierra.o diff --git a/bolero-honggfuzz/honggfuzz/third_party/mac/CrashReport_Yosemite.o b/lib/bolero-honggfuzz/honggfuzz/third_party/mac/CrashReport_Yosemite.o similarity index 100% rename from bolero-honggfuzz/honggfuzz/third_party/mac/CrashReport_Yosemite.o rename to lib/bolero-honggfuzz/honggfuzz/third_party/mac/CrashReport_Yosemite.o diff --git a/bolero-honggfuzz/honggfuzz/third_party/mac/README b/lib/bolero-honggfuzz/honggfuzz/third_party/mac/README similarity index 100% rename from bolero-honggfuzz/honggfuzz/third_party/mac/README rename to lib/bolero-honggfuzz/honggfuzz/third_party/mac/README diff --git a/bolero-honggfuzz/src/lib.rs b/lib/bolero-honggfuzz/src/lib.rs similarity index 100% rename from bolero-honggfuzz/src/lib.rs rename to lib/bolero-honggfuzz/src/lib.rs diff --git a/bolero-honggfuzz/update.sh b/lib/bolero-honggfuzz/update.sh similarity index 100% rename from bolero-honggfuzz/update.sh rename to lib/bolero-honggfuzz/update.sh diff --git a/bolero-kani/Cargo.toml b/lib/bolero-kani/Cargo.toml similarity index 100% rename from bolero-kani/Cargo.toml rename to lib/bolero-kani/Cargo.toml diff --git a/bolero-kani/src/lib.rs b/lib/bolero-kani/src/lib.rs similarity index 100% rename from bolero-kani/src/lib.rs rename to lib/bolero-kani/src/lib.rs diff --git a/bolero-libfuzzer/Cargo.toml b/lib/bolero-libfuzzer/Cargo.toml similarity index 100% rename from bolero-libfuzzer/Cargo.toml rename to lib/bolero-libfuzzer/Cargo.toml diff --git a/bolero-libfuzzer/build.rs b/lib/bolero-libfuzzer/build.rs similarity index 100% rename from bolero-libfuzzer/build.rs rename to lib/bolero-libfuzzer/build.rs diff --git a/bolero-libfuzzer/libfuzzer/CMakeLists.txt b/lib/bolero-libfuzzer/libfuzzer/CMakeLists.txt similarity index 100% rename from bolero-libfuzzer/libfuzzer/CMakeLists.txt rename to lib/bolero-libfuzzer/libfuzzer/CMakeLists.txt diff --git a/bolero-libfuzzer/libfuzzer/FuzzerBuiltins.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerBuiltins.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerBuiltins.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerBuiltins.h diff --git a/bolero-libfuzzer/libfuzzer/FuzzerBuiltinsMsvc.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerBuiltinsMsvc.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerBuiltinsMsvc.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerBuiltinsMsvc.h diff --git a/bolero-libfuzzer/libfuzzer/FuzzerCommand.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerCommand.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerCommand.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerCommand.h diff --git a/bolero-libfuzzer/libfuzzer/FuzzerCorpus.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerCorpus.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerCorpus.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerCorpus.h diff --git a/bolero-libfuzzer/libfuzzer/FuzzerCrossOver.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerCrossOver.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerCrossOver.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerCrossOver.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerDataFlowTrace.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerDataFlowTrace.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerDataFlowTrace.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerDataFlowTrace.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerDataFlowTrace.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerDataFlowTrace.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerDataFlowTrace.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerDataFlowTrace.h diff --git a/bolero-libfuzzer/libfuzzer/FuzzerDefs.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerDefs.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerDefs.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerDefs.h diff --git a/bolero-libfuzzer/libfuzzer/FuzzerDictionary.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerDictionary.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerDictionary.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerDictionary.h diff --git a/bolero-libfuzzer/libfuzzer/FuzzerDriver.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerDriver.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerDriver.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerDriver.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerExtFunctions.def b/lib/bolero-libfuzzer/libfuzzer/FuzzerExtFunctions.def similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerExtFunctions.def rename to lib/bolero-libfuzzer/libfuzzer/FuzzerExtFunctions.def diff --git a/bolero-libfuzzer/libfuzzer/FuzzerExtFunctions.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerExtFunctions.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerExtFunctions.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerExtFunctions.h diff --git a/bolero-libfuzzer/libfuzzer/FuzzerExtFunctionsDlsym.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerExtFunctionsDlsym.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerExtFunctionsDlsym.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerExtFunctionsDlsym.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerExtFunctionsWeak.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerExtFunctionsWeak.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerExtFunctionsWeak.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerExtFunctionsWeak.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerExtFunctionsWindows.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerExtFunctionsWindows.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerExtFunctionsWindows.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerExtFunctionsWindows.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerExtraCounters.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerExtraCounters.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerExtraCounters.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerExtraCounters.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerExtraCountersDarwin.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerExtraCountersDarwin.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerExtraCountersDarwin.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerExtraCountersDarwin.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerExtraCountersWindows.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerExtraCountersWindows.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerExtraCountersWindows.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerExtraCountersWindows.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerFlags.def b/lib/bolero-libfuzzer/libfuzzer/FuzzerFlags.def similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerFlags.def rename to lib/bolero-libfuzzer/libfuzzer/FuzzerFlags.def diff --git a/bolero-libfuzzer/libfuzzer/FuzzerFork.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerFork.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerFork.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerFork.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerFork.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerFork.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerFork.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerFork.h diff --git a/bolero-libfuzzer/libfuzzer/FuzzerIO.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerIO.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerIO.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerIO.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerIO.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerIO.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerIO.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerIO.h diff --git a/bolero-libfuzzer/libfuzzer/FuzzerIOPosix.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerIOPosix.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerIOPosix.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerIOPosix.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerIOWindows.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerIOWindows.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerIOWindows.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerIOWindows.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerInterceptors.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerInterceptors.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerInterceptors.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerInterceptors.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerInterface.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerInterface.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerInterface.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerInterface.h diff --git a/bolero-libfuzzer/libfuzzer/FuzzerInternal.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerInternal.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerInternal.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerInternal.h diff --git a/bolero-libfuzzer/libfuzzer/FuzzerLoop.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerLoop.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerLoop.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerLoop.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerMain.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerMain.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerMain.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerMain.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerMerge.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerMerge.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerMerge.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerMerge.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerMerge.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerMerge.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerMerge.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerMerge.h diff --git a/bolero-libfuzzer/libfuzzer/FuzzerMutate.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerMutate.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerMutate.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerMutate.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerMutate.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerMutate.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerMutate.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerMutate.h diff --git a/bolero-libfuzzer/libfuzzer/FuzzerOptions.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerOptions.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerOptions.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerOptions.h diff --git a/bolero-libfuzzer/libfuzzer/FuzzerPlatform.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerPlatform.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerPlatform.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerPlatform.h diff --git a/bolero-libfuzzer/libfuzzer/FuzzerRandom.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerRandom.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerRandom.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerRandom.h diff --git a/bolero-libfuzzer/libfuzzer/FuzzerSHA1.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerSHA1.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerSHA1.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerSHA1.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerSHA1.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerSHA1.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerSHA1.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerSHA1.h diff --git a/bolero-libfuzzer/libfuzzer/FuzzerTracePC.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerTracePC.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerTracePC.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerTracePC.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerTracePC.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerTracePC.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerTracePC.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerTracePC.h diff --git a/bolero-libfuzzer/libfuzzer/FuzzerUtil.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerUtil.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerUtil.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerUtil.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerUtil.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerUtil.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerUtil.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerUtil.h diff --git a/bolero-libfuzzer/libfuzzer/FuzzerUtilDarwin.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerUtilDarwin.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerUtilDarwin.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerUtilDarwin.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerUtilFuchsia.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerUtilFuchsia.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerUtilFuchsia.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerUtilFuchsia.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerUtilLinux.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerUtilLinux.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerUtilLinux.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerUtilLinux.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerUtilPosix.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerUtilPosix.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerUtilPosix.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerUtilPosix.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerUtilWindows.cpp b/lib/bolero-libfuzzer/libfuzzer/FuzzerUtilWindows.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerUtilWindows.cpp rename to lib/bolero-libfuzzer/libfuzzer/FuzzerUtilWindows.cpp diff --git a/bolero-libfuzzer/libfuzzer/FuzzerValueBitMap.h b/lib/bolero-libfuzzer/libfuzzer/FuzzerValueBitMap.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/FuzzerValueBitMap.h rename to lib/bolero-libfuzzer/libfuzzer/FuzzerValueBitMap.h diff --git a/bolero-libfuzzer/libfuzzer/LICENSE.TXT b/lib/bolero-libfuzzer/libfuzzer/LICENSE.TXT similarity index 100% rename from bolero-libfuzzer/libfuzzer/LICENSE.TXT rename to lib/bolero-libfuzzer/libfuzzer/LICENSE.TXT diff --git a/bolero-libfuzzer/libfuzzer/README.txt b/lib/bolero-libfuzzer/libfuzzer/README.txt similarity index 100% rename from bolero-libfuzzer/libfuzzer/README.txt rename to lib/bolero-libfuzzer/libfuzzer/README.txt diff --git a/bolero-libfuzzer/libfuzzer/afl/afl_driver.cpp b/lib/bolero-libfuzzer/libfuzzer/afl/afl_driver.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/afl/afl_driver.cpp rename to lib/bolero-libfuzzer/libfuzzer/afl/afl_driver.cpp diff --git a/bolero-libfuzzer/libfuzzer/build.sh b/lib/bolero-libfuzzer/libfuzzer/build.sh similarity index 100% rename from bolero-libfuzzer/libfuzzer/build.sh rename to lib/bolero-libfuzzer/libfuzzer/build.sh diff --git a/bolero-libfuzzer/libfuzzer/dataflow/DataFlow.cpp b/lib/bolero-libfuzzer/libfuzzer/dataflow/DataFlow.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/dataflow/DataFlow.cpp rename to lib/bolero-libfuzzer/libfuzzer/dataflow/DataFlow.cpp diff --git a/bolero-libfuzzer/libfuzzer/dataflow/DataFlow.h b/lib/bolero-libfuzzer/libfuzzer/dataflow/DataFlow.h similarity index 100% rename from bolero-libfuzzer/libfuzzer/dataflow/DataFlow.h rename to lib/bolero-libfuzzer/libfuzzer/dataflow/DataFlow.h diff --git a/bolero-libfuzzer/libfuzzer/dataflow/DataFlowCallbacks.cpp b/lib/bolero-libfuzzer/libfuzzer/dataflow/DataFlowCallbacks.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/dataflow/DataFlowCallbacks.cpp rename to lib/bolero-libfuzzer/libfuzzer/dataflow/DataFlowCallbacks.cpp diff --git a/bolero-libfuzzer/libfuzzer/scripts/unbalanced_allocs.py b/lib/bolero-libfuzzer/libfuzzer/scripts/unbalanced_allocs.py similarity index 100% rename from bolero-libfuzzer/libfuzzer/scripts/unbalanced_allocs.py rename to lib/bolero-libfuzzer/libfuzzer/scripts/unbalanced_allocs.py diff --git a/bolero-libfuzzer/libfuzzer/standalone/StandaloneFuzzTargetMain.c b/lib/bolero-libfuzzer/libfuzzer/standalone/StandaloneFuzzTargetMain.c similarity index 100% rename from bolero-libfuzzer/libfuzzer/standalone/StandaloneFuzzTargetMain.c rename to lib/bolero-libfuzzer/libfuzzer/standalone/StandaloneFuzzTargetMain.c diff --git a/bolero-libfuzzer/libfuzzer/tests/CMakeLists.txt b/lib/bolero-libfuzzer/libfuzzer/tests/CMakeLists.txt similarity index 100% rename from bolero-libfuzzer/libfuzzer/tests/CMakeLists.txt rename to lib/bolero-libfuzzer/libfuzzer/tests/CMakeLists.txt diff --git a/bolero-libfuzzer/libfuzzer/tests/FuzzedDataProviderUnittest.cpp b/lib/bolero-libfuzzer/libfuzzer/tests/FuzzedDataProviderUnittest.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/tests/FuzzedDataProviderUnittest.cpp rename to lib/bolero-libfuzzer/libfuzzer/tests/FuzzedDataProviderUnittest.cpp diff --git a/bolero-libfuzzer/libfuzzer/tests/FuzzerUnittest.cpp b/lib/bolero-libfuzzer/libfuzzer/tests/FuzzerUnittest.cpp similarity index 100% rename from bolero-libfuzzer/libfuzzer/tests/FuzzerUnittest.cpp rename to lib/bolero-libfuzzer/libfuzzer/tests/FuzzerUnittest.cpp diff --git a/bolero-libfuzzer/src/FuzzerAPI.cpp b/lib/bolero-libfuzzer/src/FuzzerAPI.cpp similarity index 100% rename from bolero-libfuzzer/src/FuzzerAPI.cpp rename to lib/bolero-libfuzzer/src/FuzzerAPI.cpp diff --git a/bolero-libfuzzer/src/lib.rs b/lib/bolero-libfuzzer/src/lib.rs similarity index 100% rename from bolero-libfuzzer/src/lib.rs rename to lib/bolero-libfuzzer/src/lib.rs diff --git a/bolero-libfuzzer/update.sh b/lib/bolero-libfuzzer/update.sh similarity index 100% rename from bolero-libfuzzer/update.sh rename to lib/bolero-libfuzzer/update.sh diff --git a/bolero/Cargo.toml b/lib/bolero/Cargo.toml similarity index 98% rename from bolero/Cargo.toml rename to lib/bolero/Cargo.toml index 4d3c12df..083a4041 100644 --- a/bolero/Cargo.toml +++ b/lib/bolero/Cargo.toml @@ -9,6 +9,7 @@ keywords = ["testing", "quickcheck", "property", "fuzz", "fuzzing"] license = "MIT" edition = "2018" readme = "../README.md" +rust-version = "1.57.0" [features] default = ["std"] diff --git a/bolero/src/lib.rs b/lib/bolero/src/lib.rs similarity index 100% rename from bolero/src/lib.rs rename to lib/bolero/src/lib.rs diff --git a/bolero/src/test/input.rs b/lib/bolero/src/test/input.rs similarity index 100% rename from bolero/src/test/input.rs rename to lib/bolero/src/test/input.rs diff --git a/bolero/src/test/mod.rs b/lib/bolero/src/test/mod.rs similarity index 100% rename from bolero/src/test/mod.rs rename to lib/bolero/src/test/mod.rs diff --git a/lib/rust-toolchain b/lib/rust-toolchain new file mode 100644 index 00000000..edb6abbc --- /dev/null +++ b/lib/rust-toolchain @@ -0,0 +1,3 @@ +[toolchain] +channel = "1.57.0" +components = [ "rustc", "clippy", "rustfmt" ] diff --git a/rust-toolchain b/rust-toolchain deleted file mode 100644 index 373aea97..00000000 --- a/rust-toolchain +++ /dev/null @@ -1 +0,0 @@ -1.57.0 diff --git a/tests/Cargo.toml b/tests/Cargo.toml new file mode 100644 index 00000000..73b83add --- /dev/null +++ b/tests/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "tests" +version = "0.1.0" +edition = "2021" + +[dependencies] +anyhow = "1" +rustc_version = "0.4" +xshell = "0.2" diff --git a/tests/src/bolero.rs b/tests/src/bolero.rs new file mode 100644 index 00000000..6432c7b3 --- /dev/null +++ b/tests/src/bolero.rs @@ -0,0 +1,53 @@ +use crate::{env, Result}; +use xshell::{cmd, Shell}; + +pub fn test() -> Result { + let rust_version = env::rustc(); + + let supports_arbitrary = rust_version.major > 1 && rust_version.minor >= 63; + + Test { supports_arbitrary }.run()?; + + Ok(()) +} + +struct Test { + supports_arbitrary: bool, +} + +impl Test { + fn run(&self) -> Result { + let sh = Shell::new()?; + sh.change_dir(env::libs()); + + env::configure_toolchain(&sh); + + // make sure this is up-to-date + let _ = sh.remove_path("Cargo.lock"); + + cmd!(sh, "cargo test").run()?; + + // if the rust version supports arbitrary, then use it + if self.supports_arbitrary { + cmd!(sh, "cargo test --features arbitrary").run()?; + } + + for sub_project in ["bolero-generator", "bolero-engine", "bolero"] { + cmd!( + sh, + "cargo build --manifest-path {sub_project}/Cargo.toml --no-default-features" + ) + .run()?; + + if sub_project != "bolero-engine" { + cmd!( + sh, + "cargo build --manifest-path {sub_project}/Cargo.toml --no-default-features --features alloc" + ) + .run()?; + } + } + + Ok(()) + } +} diff --git a/tests/src/cargo_bolero.rs b/tests/src/cargo_bolero.rs new file mode 100644 index 00000000..2bd71215 --- /dev/null +++ b/tests/src/cargo_bolero.rs @@ -0,0 +1,37 @@ +use crate::{env, Result}; +use xshell::{cmd, Shell}; + +pub fn test() -> Result { + let rust_version = env::rustc(); + + let use_stable = rust_version.major <= 1 && rust_version.minor <= 65; + + Test { use_stable }.run()?; + + Ok(()) +} + +struct Test { + use_stable: bool, +} + +impl Test { + fn run(&self) -> Result { + let sh = Shell::new()?; + sh.change_dir(env::bins()); + + // make sure this is up-to-date + let _ = sh.remove_path("Cargo.lock"); + + let toolchain = &if self.use_stable { + vec!["+stable"] + } else { + vec![] + }; + + cmd!(sh, "cargo {toolchain...} test").run()?; + cmd!(sh, "cargo {toolchain...} build").run()?; + + Ok(()) + } +} diff --git a/tests/src/cmd.rs b/tests/src/cmd.rs new file mode 100644 index 00000000..3479204a --- /dev/null +++ b/tests/src/cmd.rs @@ -0,0 +1,26 @@ +use std::process::Command; + +#[macro_export] +macro_rules! cmd { + ($($cmd:expr) $(,)?) => {{ + let mut cmd = std::process::Command::new($cmd); + let status = cmd.status().unwrap(); + }} + ($($cmd:expr) $(, $arg:expr)*) => {{ + let mut cmd = std::process::Command::new($cmd); + $( + cmd.arg($arg); + )* +let status = cmd.status().unwrap(); + + }} +} + +/* +pub fn cmd(args: impl IntoIterator) -> Output { + let mut args = args.into_iter(); + let mut cmd = Command::new(args.next().unwrap().to_string()); + cmd.args(args.map(|v| v.to_string())); + cmd. +} +*/ diff --git a/tests/src/engines.rs b/tests/src/engines.rs new file mode 100644 index 00000000..c9772d5f --- /dev/null +++ b/tests/src/engines.rs @@ -0,0 +1,127 @@ +use crate::{env, Result}; +use xshell::{cmd, Shell}; + +pub fn test() -> Result { + let rust_version = env::rustc(); + + let is_nightly = rust_version.build.as_str() == "nightly"; + + for engine in ["libfuzzer", "afl", "honggfuzz", "kani"] { + // TODO fix honggfuzz + if engine == "honggfuzz" { + continue; + } + + let test = Test { + engine: engine.to_string(), + sanitizer: "NONE".to_string(), + rustc_bootstrap: false, + reduce: engine == "libfuzzer", + integrations: engine != "kani", + supports_env: engine != "kani", + test_crashes: engine != "afl", // TODO fix this + runs: 10_000, + }; + + test.run()?; + + if ["libfuzzer", "hongfuzz"].contains(&engine) { + Test { + sanitizer: "address".to_string(), + rustc_bootstrap: !is_nightly, + ..test.clone() + } + .run()?; + } + } + + Ok(()) +} + +#[derive(Clone)] +struct Test { + engine: String, + sanitizer: String, + rustc_bootstrap: bool, + reduce: bool, + integrations: bool, + supports_env: bool, + test_crashes: bool, + runs: u32, +} + +impl Test { + fn run(&self) -> Result { + let sh = Shell::new()?; + sh.change_dir(env::examples()); + sh.change_dir("basic"); + + if self.engine == "afl" { + sh.set_var("AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES", "1"); + sh.set_var("AFL_SKIP_CPUFREQ", "1"); + } + + env::configure_toolchain(&sh); + + let cargo_bolero = env::bins().to_string() + "/target/debug/cargo-bolero"; + let runs = self.runs.to_string(); + + let mut args = vec![ + "--engine".to_string(), + self.engine.clone(), + "--sanitizer".to_string(), + self.sanitizer.clone(), + ]; + + if self.rustc_bootstrap { + args.push("--rustc-bootstrap".to_string()); + } + + let args = &args; + + for test in [ + "tests::add_test", + "tests::other_test", + "fuzz_bytes", + "fuzz_generator", + "fuzz_operations", + ] { + let is_integration = test.starts_with("fuzz"); + + if !self.integrations && is_integration { + continue; + } + + cmd!(sh, "{cargo_bolero} test {test} --runs {runs} {args...}").run()?; + + if self.reduce { + cmd!(sh, "{cargo_bolero} reduce {test} {args...}").run()?; + } + + if !self.test_crashes { + continue; + } + + let _env = if self.supports_env { + sh.push_env("SHOULD_PANIC", "1") + } else { + sh.push_env("RUSTFLAGS", "--cfg bolero_should_panic") + }; + + // some engines will complain about panicking corpus so remove it + if is_integration { + let _ = sh.remove_path(format!("tests/{test}/afl_state")); + let _ = sh.remove_path(format!("tests/{test}/corpus")); + let _ = sh.remove_path(format!("tests/{test}/crashes")); + } else { + let _ = sh.remove_path(format!("src/__fuzz__/{test}")); + } + + let res = cmd!(sh, "{cargo_bolero} test {test} {args...}").run(); + + assert!(res.is_err(), "test {test} should catch a panic"); + } + + Ok(()) + } +} diff --git a/tests/src/env.rs b/tests/src/env.rs new file mode 100644 index 00000000..e74d8c31 --- /dev/null +++ b/tests/src/env.rs @@ -0,0 +1,29 @@ +pub use rustc_version::Version as Rustc; + +pub fn libs() -> &'static str { + concat!(env!("CARGO_MANIFEST_DIR"), "/../lib") +} + +pub fn bins() -> &'static str { + concat!(env!("CARGO_MANIFEST_DIR"), "/../bin") +} + +pub fn examples() -> &'static str { + concat!(env!("CARGO_MANIFEST_DIR"), "/../examples") +} + +pub fn rustc() -> Rustc { + if let Ok(rustc) = std::env::var("TARGET_RUSTC") { + rustc_version::Version::parse(&rustc).unwrap() + } else { + rustc_version::version().unwrap() + } +} + +pub fn configure_toolchain(sh: &xshell::Shell) { + if let Ok(rustc) = std::env::var("TARGET_RUSTC") { + xshell::cmd!(sh, "rustup override set {rustc}") + .run() + .unwrap(); + } +} diff --git a/tests/src/examples.rs b/tests/src/examples.rs new file mode 100644 index 00000000..77f2550c --- /dev/null +++ b/tests/src/examples.rs @@ -0,0 +1,37 @@ +use crate::{env, Result}; +use xshell::{cmd, Shell}; + +pub fn test() -> Result { + Test {}.run()?; + + Ok(()) +} + +struct Test {} + +impl Test { + fn run(&self) -> Result { + let sh = Shell::new()?; + sh.change_dir(env::examples()); + + env::configure_toolchain(&sh); + + for example in std::fs::read_dir(sh.current_dir())?.flatten() { + if !example.path().is_dir() { + continue; + } + + let _dir = sh.push_dir(example.path()); + + // make sure this is up-to-date + let _ = sh.remove_path("Cargo.lock"); + + cmd!(sh, "cargo test").run()?; + + // make sure bolero still works with a single thread + cmd!(sh, "cargo test -- --test-threads=1").run()?; + } + + Ok(()) + } +} diff --git a/tests/src/main.rs b/tests/src/main.rs new file mode 100644 index 00000000..a6761a49 --- /dev/null +++ b/tests/src/main.rs @@ -0,0 +1,16 @@ +pub type Result = anyhow::Result; + +mod bolero; +mod cargo_bolero; +mod engines; +mod env; +mod examples; + +fn main() -> Result { + bolero::test()?; + cargo_bolero::test()?; + examples::test()?; + engines::test()?; + + Ok(()) +}