[Buildroot] [PATCH v3 1/1] utils/genrandconfig: allow overriding KCONFIG_PROBABILITY
James Hilliard
james.hilliard1 at gmail.com
Tue Jun 11 15:30:40 UTC 2024
Tweaking this variable should allow us to get better coverage of
packages with larger dependency trees.
Signed-off-by: James Hilliard <james.hilliard1 at gmail.com>
---
Changes v2 -> v3:
- rebase
Changes v1 -> v2:
- rebase
---
utils/genrandconfig | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/utils/genrandconfig b/utils/genrandconfig
index fb493f3f31..b5e250a24f 100755
--- a/utils/genrandconfig
+++ b/utils/genrandconfig
@@ -736,7 +736,7 @@ async def gen_config(args):
proc = await asyncio.create_subprocess_exec(
"make", "O=%s" % args.outputdir, "-C", args.buildrootdir,
"KCONFIG_SEED=0x%s" % hexlify(os.urandom(4)).decode("ascii").upper(),
- "KCONFIG_PROBABILITY=%d" % randint(1, 20),
+ "KCONFIG_PROBABILITY=%d" % args.probability,
"randpackageconfig" if args.toolchains_csv else "randconfig")
ret = await proc.wait()
if ret:
@@ -764,6 +764,21 @@ async def gen_config(args):
if __name__ == '__main__':
import argparse
+
+ class Range(argparse.Action):
+ def __init__(self, minimum=None, maximum=None, *args, **kwargs):
+ self.min = minimum
+ self.max = maximum
+ kwargs["metavar"] = "[%d-%d]" % (self.min, self.max)
+ super(Range, self).__init__(*args, **kwargs)
+
+ def __call__(self, parser, namespace, value, option_string=None):
+ if not (self.min <= value <= self.max):
+ msg = 'invalid choice: %r (choose from [%d-%d])' % \
+ (value, self.min, self.max)
+ raise argparse.ArgumentError(self, msg)
+ setattr(namespace, self.dest, value)
+
parser = argparse.ArgumentParser(description="Generate a random configuration")
parser.add_argument("--outputdir", "-o",
help="Output directory (relative to current directory)",
@@ -771,6 +786,10 @@ if __name__ == '__main__':
parser.add_argument("--buildrootdir", "-b",
help="Buildroot directory (relative to current directory)",
type=str, default='.')
+ parser.add_argument("--probability", "-p",
+ help="Override the KCONFIG_PROBABILITY value",
+ type=int, action=Range, minimum=0, maximum=100,
+ default=randint(1, 20))
toolchains_csv = parser.add_mutually_exclusive_group(required=False)
toolchains_csv.add_argument("--toolchains-csv",
--
2.34.1
More information about the buildroot
mailing list