[Piglit] [PATCH] piglit_run: New overwrite options {next, no}
Ben Widawsky
ben at bwidawsk.net
Wed May 8 19:51:19 PDT 2013
I've snipped the parts which you said to ignore..
On Wed, May 08, 2013 at 04:52:42PM -0700, Dylan Baker wrote:
[snip]
> Also, instead of using \ escapes, line up the quotation marks on the
> left and python will magically concatenate the strings.
I was just following what I saw in --tests. Maybe you want to fix that
one too? I've removed this locally and added your r-b (which you gave me
privately). I'll let it sit meanwhile a bit longer to see if anyone else
has comments.
Thanks for the review.
[snip]
> On Wed, May 8, 2013 at 3:15 PM, Ben Widawsky <[1]ben at bwidawsk.net>
> wrote:
>
> Some of us (ie. not just me) like to script piglit runs. As such
> we've
> all baked in versions of our own auto result directory naming, or as
> an
> alternative accidentally overwritten the results we've wanted.. To
> make
> things easier for people, add two new options under the -o
> (overwrite)
> flag.
> [-o {yes,no,next}]
> yes: default, and previous behavior. Just do it.
> no: warn, and exit if you try to overwrite the results dir.
> next: create a new results dir with an appended number.
> For example, if one invokes:
> > piglit-run.py -o next tests/igt.tests results/ppgtt-ctx
> and results/ppgtt-ctx exists...
> results would be written to results/ppgtt-ctx.1.
> To keep the code relatively simple, it won't be smart if the user
> specifies a number in their invocation. ie. if after doing the
> above,
> > piglit-run.py -o next tests/igt.tests results/ppgtt-ctx.1
> results/ppgtt-ctx.1.1 would be created.
> CC: Kenneth Graunke <[2]kenneth at whitecape.org>
> Signed-off-by: Ben Widawsky <[3]ben at bwidawsk.net>
> ---
> piglit-run.py | 23 +++++++++++++++++++++++
> 1 file changed, 23 insertions(+)
> diff --git a/piglit-run.py b/piglit-run.py
> index 6d6ec77..175ee56 100755
> --- a/piglit-run.py
> +++ b/piglit-run.py
> @@ -28,6 +28,7 @@ import sys, os
> import time
> import traceback
> import json
> +import re
> sys.path.append(path.dirname(path.realpath(sys.argv[0])))
> import framework.core as core
> @@ -72,6 +73,12 @@ def main():
> action = "append",
> metavar = "<regex>",
> help = "Exclude matching tests (can be
> used more than once)")
> + parser.add_argument("-o", "--overwrite",
> + default = "yes",
> + choices = ["yes", "no", "next"],
> + help = "Results directory overwrite
> options. " \
> + "\"next\" will create a new
> directory name " \
> + "based on the old similarly names
> ones")
> # The new option going forward should be --no-concurrency,
> but to
> # maintain backwards compatability the --c, --concurrent
> option should
> @@ -149,6 +156,22 @@ def main():
> else:
> profileFilename = args.testProfile
> resultsDir = args.resultsPath
> + if os.path.isdir(resultsDir):
> + if args.overwrite == "no":
> + sys.exit(resultsDir + " Already
> exists, and overwrite was no")
> + elif args.overwrite == "next":
> + suffixes = [0] # If we found the
> dir, we have at least 1
> +
> + # Find the highest numbered results
> dir
> + pattern =
> re.compile(os.path.basename(resultsDir) + "\.*(\d+)")
> + parent =
> os.path.abspath(os.path.join(resultsDir, os.pardir))
> + for file in os.listdir(parent):
> + m = pattern.match(file)
> + if m:
> +
> suffixes.append(m.group(1))
> +
> + # Add 1 to the highest, and move
> along
> + resultsDir += "." +
> str((int(max(suffixes))+1))
> # Pass arguments into Environment
> env = core.Environment(concurrent=args.concurrency,
> --
> 1.8.2.2
> _______________________________________________
> Piglit mailing list
> [4]Piglit at lists.freedesktop.org
> [5]http://lists.freedesktop.org/mailman/listinfo/piglit
>
> References
>
> 1. mailto:ben at bwidawsk.net
> 2. mailto:kenneth at whitecape.org
> 3. mailto:ben at bwidawsk.net
> 4. mailto:Piglit at lists.freedesktop.org
> 5. http://lists.freedesktop.org/mailman/listinfo/piglit
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit
--
Ben Widawsky, Intel Open Source Technology Center
More information about the Piglit
mailing list