Tests: Enhance robustness of stdout driven waiting state in Sikuli based tests.
Some tests were randomly passing, because from time to time waiting for idle was skiped. It was combination of multiple problems :
- buffering on stdout (now use readline + flush for each write to log)
- it is sometime required to wait for activity before waiting for timeout added "WaitForChangeAndIdle" to "stdoutIdleObserver"
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This file is part of Beremiz.
# See COPYING file for copyrights details.
from __future__ import absolute_import
from plcopen.XSLTModelQuery import XSLTModelQuery
class InstancesPathCollector(XSLTModelQuery):
""" object for collecting instances path list"""
def __init__(self, controller):
self.Instances = []
XSLTModelQuery.__init__(self,
controller,
"instances_path.xslt",
[("AddInstance", self.AddInstance)])
def AddInstance(self, context, *args):
self.Instances.append(args[0][0])
def Collect(self, root, name, debug):
self._process_xslt(root, debug, instance_type=name)
res = self.Instances
self.Instances = []
return res