mirror of
https://github.com/NixOS/nix.git
synced 2025-11-28 13:11:00 +01:00
* It is tough to contribute to a project that doesn't use a formatter, * It is extra hard to contribute to a project which has configured the formatter, but ignores it for some files * Code formatting makes it harder to hide obscure / weird bugs by accident or on purpose, Let's rip the bandaid off? Note that PRs currently in flight should be able to be merged relatively easily by applying `clang-format` to their tip prior to merge.
27 lines
852 B
C++
27 lines
852 B
C++
#include "nix/store/tests/outputs-spec.hh"
|
|
|
|
#include <rapidcheck.h>
|
|
|
|
namespace rc {
|
|
using namespace nix;
|
|
|
|
Gen<OutputsSpec> Arbitrary<OutputsSpec>::arbitrary()
|
|
{
|
|
return gen::mapcat(
|
|
gen::inRange<uint8_t>(0, std::variant_size_v<OutputsSpec::Raw>), [](uint8_t n) -> Gen<OutputsSpec> {
|
|
switch (n) {
|
|
case 0:
|
|
return gen::just((OutputsSpec) OutputsSpec::All{});
|
|
case 1:
|
|
return gen::map(
|
|
gen::nonEmpty(
|
|
gen::container<StringSet>(
|
|
gen::map(gen::arbitrary<StorePathName>(), [](StorePathName n) { return n.name; }))),
|
|
[](StringSet names) { return (OutputsSpec) OutputsSpec::Names{names}; });
|
|
default:
|
|
assert(false);
|
|
}
|
|
});
|
|
}
|
|
|
|
} // namespace rc
|