Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  CHANGELOG.md   Sprache: unbekannt

 
## Unreleased

Released YYYY-MM-DD.

### Added

* TODO (or remove section if none)

### Changed

* TODO (or remove section if none)

### Deprecated

* TODO (or remove section if none)

### Removed

* TODO (or remove section if none)

### Fixed

* TODO (or remove section if none)

### Security

* TODO (or remove section if none)

--------------------------------------------------------------------------------

## 1.3.2

Released 2023-10-30.

### Added

* Added `Arbitrary` implementations for `Arc<[T]>` and
  `Rc<[T]>`. [#160](https://github.com/rust-fuzz/arbitrary/pull/160)

--------------------------------------------------------------------------------

## 1.3.1

Released 2023-10-11.

### Fixed

* Fixed an issue with generating collections of collections in
  `arbitrary_take_rest` where `<Vec<Vec<u8>>>::arbitrary_take_rest` would never
  generate `vec![vec![]]` for example. See
  [#159](https://github.com/rust-fuzz/arbitrary/pull/159) for details.

--------------------------------------------------------------------------------

## 1.3.0

Released 2023-03-13.

### Added

* Added the ability to manually specify derived trait bounds for
  `Arbitrary`. See [#138](https://github.com/rust-fuzz/arbitrary/pull/138) for
  details.

### Fixed

* Fixed minimal versions correctness for `syn`.

--------------------------------------------------------------------------------

## 1.2.3

Released 2023-01-20.

### Fixed

* The `derive(Arbitrary)` will now annotate the generated `impl`s with a `#[automatically_derived]`
  attribute to indicate to e.g. clippy that lints should not fire for the code within the derived
  implementation.

## 1.2.2

Released 2023-01-03.

### Fixed

* Ensured that `arbitrary` and `derive_arbitrary` versions are synced up so that
  they don't, e.g., emit generated code that depends on newer versions of
  `arbitrary` than the one currently in
  use. [#134](https://github.com/rust-fuzz/arbitrary/issues/134)

## 1.2.1

### Fixed

* Fixed an issue where `std::thread_local!` macro invocations in derive code
  were not fully prefixed, causing confusing build errors in certain situations.

## 1.2.0

Released 2022-10-20.

### Added

* Support custom arbitrary implementation for fields on
  derive. [#129](https://github.com/rust-fuzz/arbitrary/pull/129)

--------------------------------------------------------------------------------

## 1.1.6

Released 2022-09-20.

### Fixed

* Fixed a potential panic due to an off-by-one error in the `Arbitrary`
  implementation for `std::ops::Bound<T>`.

--------------------------------------------------------------------------------

## 1.1.5

Released 2022-09-08.

### Added

* Implemented `Arbitrary` for `std::ops::Bound<T>`.

### Fixed

* Fixed a bug where `Unstructured::int_in_range` could return out-of-range
  integers when generating arbitrary signed integers.

--------------------------------------------------------------------------------

## 1.1.4

Released 2022-08-29.

### Added

* Implemented `Arbitrary` for `Rc<str>` and `Arc<str>`

### Changed

* Allow overriding the error type in `arbitrary::Result`
* The `Unstructured::arbitrary_loop` method will consume fewer bytes of input
  now.

### Fixed

* Fixed a bug where `Unstructured::int_in_range` could return out-of-range
  integers.

--------------------------------------------------------------------------------

## 1.1.3

Released 2022-06-23.

### Fixed

* Fixed some potential (but highly unlikely) name-clashes inside
  `derive(Arbitrary)`'s generated
  code. [#111](https://github.com/rust-fuzz/arbitrary/pull/111)
* Fixed an edge case where `derive(Arbitrary)` for recursive types that detected
  an overflow would not reset the overflow
  detection. [#111](https://github.com/rust-fuzz/arbitrary/pull/111)

--------------------------------------------------------------------------------

## 1.1.2

Released 2022-06-16.

### Fixed

* Fixed a warning inside `derive(Arbitrary)`-generated
  code. [#110](https://github.com/rust-fuzz/arbitrary/pull/110)

--------------------------------------------------------------------------------

## 1.1.1

Released 2022-06-14.

### Fixed

* Fixed a stack overflow when using `derive(Arbitrary)` with recursive types and
  empty inputs. [#109](https://github.com/rust-fuzz/arbitrary/pull/109)

--------------------------------------------------------------------------------

## 1.1.0

Released 2022-02-09.

### Added

* Added the `Unstructured::ratio` method to generate a boolean that is `true` at
  the given rate.

* Added the `Unstructured::arbitrary_loop` method to call a function an
  arbitrary number of times.

--------------------------------------------------------------------------------

## 1.0.3

Released 2021-11-20.

### Fixed

* Fixed documentation for `Unstructured::fill_bytes`. We forgot to update this
  way back in [#53](https://github.com/rust-fuzz/arbitrary/pull/53) when the
  behavior changed.

--------------------------------------------------------------------------------

## 1.0.2

Released 2021-08-25.

### Added

* `Arbitrary` impls for `HashMap`s and `HashSet`s with custom `Hasher`s
  [#87](https://github.com/rust-fuzz/arbitrary/pull/87)

--------------------------------------------------------------------------------

## 1.0.1

Released 2021-05-20.

### Added

* `Arbitrary` impls for `NonZeroX` types [#79](https://github.com/rust-fuzz/arbitrary/pull/79)
* `Arbitrary` impls for all arrays using const generics [#55](https://github.com/rust-fuzz/arbitrary/pull/55)
* `Arbitrary` impls for `Ipv4Addr` and `Ipv6Addr` [#84](https://github.com/rust-fuzz/arbitrary/pull/84)

### Fixed

* Use fewer bytes for `Unstructured::int_in_range()` [#80](https://github.com/rust-fuzz/arbitrary/pull/80)
* Use correct range for `char` generation [#83](https://github.com/rust-fuzz/arbitrary/pull/83)

--------------------------------------------------------------------------------

## 1.0.0

Released 2020-02-24.

See 1.0.0-rc1 and 1.0.0-rc2 for changes since 0.4.7, which was the last main
line release.

--------------------------------------------------------------------------------

## 1.0.0-rc2

Released 2021-02-09.

### Added

* The `Arbitrary` trait is now implemented for `&[u8]`. [#67](https://github.com/rust-fuzz/arbitrary/pull/67)

### Changed

* Rename `Unstructured#get_bytes` to `Unstructured#bytes`. [#70](https://github.com/rust-fuzz/arbitrary/pull/70)
* Passing an empty slice of choices to `Unstructured#choose` returns an error. Previously it would panic. [71](https://github.com/rust-fuzz/arbitrary/pull/71)

--------------------------------------------------------------------------------

## 1.0.0-rc1

Released 2020-11-25.

### Added

* The `Arbitrary` trait is now implemented for `&str`. [#63](https://github.com/rust-fuzz/arbitrary/pull/63)

### Changed

* The `Arbitrary` trait now has a lifetime parameter, allowing `Arbitrary` implementations that borrow from the raw input (e.g. the new `&str` implementaton). The `derive(Arbitrary)` macro also supports deriving `Arbitrary` on types with lifetimes now. [#63](https://github.com/rust-fuzz/arbitrary/pull/63)

### Removed

* The `shrink` method on the `Arbitrary` trait has been removed.

  We have found that, in practice, using [internal reduction](https://drmaciver.github.io/papers/reduction-via-generation-preview.pdf) via approaches like `cargo fuzz tmin`, where the raw input bytes are reduced rather than the `T: Arbitrary` type constructed from those raw bytes, has the best efficiency-to-maintenance ratio. To the best of our knowledge, no one is relying on or using the `Arbitrary::shrink` method. If you *are* using and relying on the `Arbitrary::shrink` method, please reach out by [dropping a comment here](https://github.com/rust-fuzz/arbitrary/issues/62) and explaining how you're using it and what your use case is. We'll figure out what the best solution is, including potentially adding shrinking functionality back to the `arbitrary` crate.

--------------------------------------------------------------------------------

## 0.4.7

Released 2020-10-14.

### Added

* Added an optimization to avoid unnecessarily consuming bytes from the
  underlying data when there is only one possible choice in
  `Unstructured::{int_in_range, choose, etc..}`.

* Added license files to the derive crate.

### Changed

* The `Arbitrary` implementation for `std::time::Duration` should now be faster
  and produce durations with a more-uniform distribution of nanoseconds.

--------------------------------------------------------------------------------

## 0.4.6

Released 2020-08-22.

### Added

* Added the `Unstructured::peek_bytes` method.

### Changed

* Test case reduction via `cargo fuzz tmin` should be much more effective at
  reducing the sizes of collections now. (See
  [#53](https://github.com/rust-fuzz/arbitrary/pull/53) and the commit messages
  for details.)

* Fuzzing with mutation-based fuzzers (like libFuzzer) should be more efficient
  now. (See [#53](https://github.com/rust-fuzz/arbitrary/pull/53) and the commit
  messages for details)

--------------------------------------------------------------------------------

## 0.4.5

Released 2020-06-18.

### Added

* Implement `Arbitrary` for zero length arrays.
* Implement `Arbitrary` for `Range` and `RangeInclusive`.

--------------------------------------------------------------------------------

## 0.4.4

Released 2020-04-29.

### Fixed

* Fixed the custom derive for enums when used via its full path (like
  `#[derive(arbitrary::Arbitrary)]` rather than like `#[derive(Arbitrary)]`).


## 0.4.3

Released 2020-04-28.

### Fixed

* Fixed the custom derive when used via its full path (like
  `#[derive(arbitrary::Arbitrary)]` rather than like `#[derive(Arbitrary)]`).

--------------------------------------------------------------------------------

## 0.4.2

Released 2020-04-17.

### Changed

* We forgot to release a new version of the `derive_arbitrary` crate last
  release. This release fixes that and so the `synstructure` dependency is
  finally actually removed in the cargo releases.

--------------------------------------------------------------------------------

## 0.4.1

Released 2020-03-18.

### Removed

* Removed an internal dependency on the `synstructure` crate when the `derive`
  feature is enabled. This should not have any visible downstream effects other
  than faster build times!

--------------------------------------------------------------------------------

## 0.4.0

Released 2020-01-22.

This is technically a breaking change, but we expect that nearly everyone should
be able to upgrade without any compilation errors. The only exception is if you
were implementing the `Arbitrary::size_hint` method by hand. If so, see the
"changed" section below and the [API docs for
`Arbitrary::shrink`](https://docs.rs/arbitrary/0.4.0/arbitrary/trait.Arbitrary.html#method.size_hint)
for details.

### Added

* Added [the `arbitary::size_hint::recursion_guard` helper
  function][recursion_guard] for guarding against infinite recursion in
  `size_hint` implementations for recursive types.

### Changed

* The `Arbitrary::size_hint` signature now takes a `depth: usize`
  parameter. This should be passed along unmodified to any nested calls of other
  `size_hint` methods. If you're implementing `size_hint` for a recursive type
  (like a linked list or tree) or a generic type with type parameters, you
  should use [the new `arbitrary::size_hint::recursion_guard` helper
  function][recursion_guard].

### Fixed

* Fixed infinite recursion in generated `size_hint` implementations
  from `#[derive(Arbitrary)]` for recursive types.

[recursion_guard]: https://docs.rs/arbitrary/0.4.0/arbitrary/size_hint/fn.recursion_guard.html

--------------------------------------------------------------------------------

## 0.3.2

Released 2020-01-16.

### Changed

* Updated the custom derive's dependencies.

--------------------------------------------------------------------------------

## 0.3.2

Released 2020-01-15.

### Fixed

* Fixed an over-eager assertion condition in `Unstructured::int_in_range` that
  would incorrectly trigger when given valid ranges of length one.

--------------------------------------------------------------------------------

## 0.3.1

Released 2020-01-14.

### Fixed

* Fixed some links and version numbers in README.

--------------------------------------------------------------------------------

## 0.3.0

Released 2020-01-14.

### Added

* Added the `"derive"` cargo feature, to enable `#[derive(Arbitrary)]` for
  custom types. Enabling this feature re-exports functionality from the
  `derive_arbitrary` crate.
* The custom derive for `Arbitrary` implements the shrink method for you now.
* All implementations of `Arbitrary` for `std` types implement shrinking now.
* Added the `Arbitrary::arbitrary_take_rest` method allows an `Arbitrary`
  implementation to consume all of the rest of the remaining raw input. It has a
  default implementation that forwards to `Arbitrary::arbitrary` and the custom
  derive creates a smart implementation for your custom types.
* Added the `Arbitrary::size_hint` method for hinting how many raw bytes an
  implementation needs to construct itself. This has a default implementation,
  but the custom derive creates a smart implementation for your custom types.
* Added the `Unstructured::choose` method to choose one thing among a set of
  choices.
* Added the `Unstructured::arbitrary_len` method to get an arbitrary length for
  a collection of some arbitrary type.
* Added the `Unstructured::arbitrary_iter` method to create an iterator of
  arbitrary instance of some type.

### Changed

* The `Arbitrary` trait was simplified a bit.
* `Unstructured` is a concrete type now, not a trait.
* Switched to Rust 2018 edition.

### Removed

* `RingBuffer` and `FiniteBuffer` are removed. Use `Unstructured` instead.

### Fixed

* Better `Arbitrary` implementation for `char`.
* Better `Arbitrary` implementation for `String`.

--------------------------------------------------------------------------------

## 0.2.0

--------------------------------------------------------------------------------

## 0.1.0

[ Dauer der Verarbeitung: 0.24 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge