[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [XTF PATCH 3/3] xtf-runner: support two modes for getting output



Wei Liu writes ("[XTF PATCH 3/3] xtf-runner: support two modes for getting 
output"):
> We need two modes for getting output:
...
> +    # Use time to generate unique stamps
> +    start_stamp = "===== XTF TEST START %s =====" % local_time
> +    end_stamp = "===== XTF TEST END %s =====" % local_time

This will go wrong if someone runs the same test very rapidly in a
loop.  It needs to be augmented, at least.

Ideally with the domid, but AFAICT that's not available here.  If you
can't think of anything else, use, in addition to the timestamp, the
pid of the xtf-runner process, plus a counter.  (The counter is
necessary in case the same xtf-runner process is used to run the same
test multiple times.)

> +    f = open(fn, "rb")
> +    output = f.readlines()
> +    f.close()
> +    lines = []
> +    found = False
> +    for line in output:
> +        if end_stamp in line:
> +            break
> +        if start_stamp in line:
> +            found = True
> +            continue
> +        if not found:
> +            continue
> +        lines.append(line)

This is accidentally quadratic in the number of test executions.
Do we care ?

If we do care, we should read the file backwards.  AFAICT "tac" can do
this in a manner that's not quadratic in the size of the logfile:

mariner:iwj> time tac v | head | sha256sum 
55748d8a2243c7a8978eccf24bb4f603091ecf4be836294e7009695426971485  -

real    0m0.019s
user    0m0.000s
sys     0m0.000s
mariner:iwj> time cat v | tail | tac | sha256sum 
55748d8a2243c7a8978eccf24bb4f603091ecf4be836294e7009695426971485  -

real    0m11.286s
user    0m0.296s
sys     0m1.096s
mariner:iwj> ll --hu v
-rw-rw-r-- 1 iwj iwj 638M Aug 11 11:42 v
mariner:iwj>

Or you could write your own implementation.  The algorithm is to read
increasingly large chunks of the tail of the file, into memory, until
you find all of the part you're looking for.

HTH.

Ian.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.