[PATCH 1 of 2 V2] run-tests: added '--json' functionality to store timing data in json file

Pierre-Yves David pierre-yves.david at ens-lyon.org
Mon Jun 23 03:59:38 CDT 2014



On 06/22/2014 06:44 AM, Anurag Goel wrote:
> # HG changeset patch
> # User anuraggoel <anurag.dsps at gmail.com>
> # Date 1403430215 -19800
> #      Sun Jun 22 15:13:35 2014 +0530
> # Node ID bdb3d7c108ba9a5ba38e1b3282dd18115ba6eed9
> # Parent  f6e0718c2101207ba62ceccc7ca916f4e7d83b1d
> run-tests: added '--json' functionality to store timing data in json file

Why restricting this to timing data? Could we includes the success 
information too ?

>
> This patch added a new functionality '--json'. While testing, if '--json'
> is enabled then timing data gets stored in newly created "report.json" file,
> in the following format.
> testreport ={
>      "test-xyz.t": 6.181909084320068
> }
>
> This "report.json" file will further accessed by html/javascript file to
> plot graph between testname Vs testime.
>
> diff -r f6e0718c2101 -r bdb3d7c108ba tests/run-tests.py
> --- a/tests/run-tests.py	Sun Jun 22 01:35:29 2014 +0530
> +++ b/tests/run-tests.py	Sun Jun 22 15:13:35 2014 +0530
> @@ -58,6 +58,7 @@
>   import killdaemons as killmod
>   import Queue as queue
>   import unittest
> +import json
>
>   processlock = threading.Lock()
>
> @@ -185,6 +186,8 @@
>                " (default: $%s or %d)" % defaults['timeout'])
>       parser.add_option("--time", action="store_true",
>           help="time how long each test takes")
> +    parser.add_option("--json", action="store_true",
> +        help="store timing data in 'report.json' file")
>       parser.add_option("--tmpdir", type="string",
>           help="run tests in the given temporary directory"
>                " (implies --keep-tmpdir)")
> @@ -1341,9 +1344,19 @@
>                   os.environ['PYTHONHASHSEED'])
>           if self._runner.options.time:
>               self.printtimes(result.times)
> +        if self._runner.options.json:
> +            self.getjsonfile(result.times)
>
>           return result
>
> +    def getjsonfile(self, times):
> +        """Store timing data in json format in report.json file. """

extra space

> +
> +        fp = open("report.json", "w")
> +        timedata = dict(times)
> +        fp.writelines(("testreport =", (json.dumps(timedata, indent=2))))
> +        fp.close()
> +
>       def printtimes(self, times):
>           self.stream.writeln('# Producing time report')
>           times.sort(key=lambda t: (t[1], t[0]), reverse=True)
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
>

-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list