From 9b526f54bf12d6a65dc219de724fd67a08dd5503 Mon Sep 17 00:00:00 2001 From: Dale Wijnand Date: Fri, 6 Oct 2017 15:40:31 +0100 Subject: [PATCH] Rarely include custom scopes in key generators --- .../src/test/scala/sbt/SlashSyntaxSpec.scala | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/main-settings/src/test/scala/sbt/SlashSyntaxSpec.scala b/main-settings/src/test/scala/sbt/SlashSyntaxSpec.scala index 936a027db..929d48b93 100644 --- a/main-settings/src/test/scala/sbt/SlashSyntaxSpec.scala +++ b/main-settings/src/test/scala/sbt/SlashSyntaxSpec.scala @@ -57,14 +57,29 @@ object BuildDSLInstances { implicit def arbAttrKey[A: Manifest]: Arbitrary[AttributeKey[_]] = Arbitrary(Gen.identifier map (AttributeKey[A](_))) - implicit def arbInputKey[A: Manifest]: Arbitrary[InputKey[A]] = - Arbitrary(Gen.identifier map (InputKey[A](_))) + implicit def arbInputKey[A: Manifest]: Arbitrary[InputKey[A]] = Arbitrary { + val keyGen = Gen.identifier map (InputKey[A](_)) + Gen.frequency( + 50 -> keyGen, + 1 -> (for (key <- keyGen; scope <- arbitrary[Scope]) yield key in scope) + ) + } - implicit def arbSettingKey[A: Manifest]: Arbitrary[SettingKey[A]] = - Arbitrary(Gen.identifier map (SettingKey[A](_))) + implicit def arbSettingKey[A: Manifest]: Arbitrary[SettingKey[A]] = Arbitrary { + val keyGen = Gen.identifier map (SettingKey[A](_)) + Gen.frequency( + 50 -> keyGen, + 1 -> (for (key <- keyGen; scope <- arbitrary[Scope]) yield key in scope) + ) + } - implicit def arbTaskKey[A: Manifest]: Arbitrary[TaskKey[A]] = - Arbitrary(Gen.identifier map (TaskKey[A](_))) + implicit def arbTaskKey[A: Manifest]: Arbitrary[TaskKey[A]] = Arbitrary { + val keyGen = Gen.identifier map (TaskKey[A](_)) + Gen.frequency( + 50 -> keyGen, + 1 -> (for (key <- keyGen; scope <- arbitrary[Scope]) yield key in scope) + ) + } implicit def arbKey[A: Manifest]: Arbitrary[Key[_]] = Arbitrary { Gen.frequency[Key[_]](