[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 |