Belle II Software  release-05-01-25
stop_on_error.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 import os
5 import basf2
6 from ROOT import Belle2
7 
8 basf2.set_random_seed("")
9 
10 
11 class ErrorInInit(basf2.Module):
12  """test"""
13 
14  def initialize(self):
15  """reimplementation of Module::initialize()."""
16  basf2.B2ERROR("In module " + self.name())
17 
18 
19 class ErrorInEvent(basf2.Module):
20  """test"""
21 
22  def event(self):
23  """reimplementation of Module::event()."""
24  # error level to check that this doesn't prevent execution
25  basf2.B2ERROR("In module " + self.name())
26 
27 
28 noerrors = basf2.Path()
29 noerrors.add_module('EventInfoSetter')
30 
31 # no errors at all
32 basf2.process(noerrors)
33 
34 errorsinevent = basf2.Path()
35 errorsinevent.add_module('EventInfoSetter')
36 errorsinevent.add_module(ErrorInEvent())
37 
38 # no errors before event processing
39 basf2.process(errorsinevent)
40 
41 # there were errors in event() of previous run
42 basf2.process(noerrors)
43 basf2.process(noerrors)
44 basf2.process(errorsinevent)
45 # there were some more errors in event() of previous run
46 basf2.process(noerrors)
47 
48 # errors in initialize() -> fail
49 if os.fork() == 0:
50  noerrors.add_module(ErrorInInit())
51  basf2.process(noerrors)
52 else:
53  assert os.wait()[1] != 0
54 
55 # errors before process() -> fail
56 if os.fork() == 0:
57  basf2.B2ERROR("htns")
58  basf2.process(noerrors)
59 else:
60  assert os.wait()[1] != 0
61 
62 basf2.B2INFO('everything was OK.')
stop_on_error.ErrorInEvent
Definition: stop_on_error.py:19
stop_on_error.ErrorInInit
Definition: stop_on_error.py:11
basf2.process
def process(path, max_event=0)
Definition: __init__.py:25
stop_on_error.ErrorInEvent.event
def event(self)
Definition: stop_on_error.py:22
stop_on_error.ErrorInInit.initialize
def initialize(self)
Definition: stop_on_error.py:14