|
[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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |