def add_node(self, prev, worker, gstate, do_hash=True): if do_hash: hash = gstate.compute_hash() if hash is not None: node = self.statespace.get_node_by_hash(hash) if node is not None: return (node, False) else: hash = None uid = str(self.statespace.nodes_count) node = Node(uid, hash) logging.debug("New node %s", node.uid) if prev: node.prev = prev self.statespace.add_node(node) if self.debug_compare_states is not None \ and node.uid in self.debug_compare_states: if self.debug_captured_states is None: self.debug_captured_states = [] logging.debug("Capturing %s", node) self.debug_captured_states.append((gstate.copy(), worker)) if self.statespace.nodes_count > self.max_states: logging.info("Maximal number of states reached") if self.debug_compare_states is not None: self.debug_compare() raise ErrorFound() if self.debug_state == uid: context = Context(self, node, None) context.add_error_and_throw( errormsg.StateCaptured(context, uid=uid)) return (node, True)
def add_node(self, prev, gstate, do_hash=True): if do_hash: hash = gstate.compute_hash() if hash is not None: node = self.statespace.get_node_by_hash(hash) if node is not None: return (node, False) else: hash = None uid = str(self.statespace.nodes_count) node = Node(uid, hash) logging.debug("New node %s", node.uid) if prev: node.prev = prev self.statespace.add_node(node) if self.debug_state == uid: context = Context(self, node, None) context.add_error_and_throw(errormsg.StateCaptured(context, uid=uid)) return (node, True)