diff options
| author | Theofilos Augoustis <37243696+taugoust@users.noreply.github.com> | 2025-11-20 10:45:44 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-20 10:45:44 +0100 |
| commit | a46ed05611d4fd2d6663d1b9265e9426c17a63ad (patch) | |
| tree | 461b5ade37723321025a59285615cd0f23c63c66 | |
| parent | dae5b391c2042ca70359cf9c93e62b1d4c903e71 (diff) | |
| parent | 88c17c3e83842690a7d76f0376511b20df508fa4 (diff) | |
| download | focaccia-a46ed05611d4fd2d6663d1b9265e9426c17a63ad.tar.gz focaccia-a46ed05611d4fd2d6663d1b9265e9426c17a63ad.zip | |
Merge pull request #28 from TUM-DSE/ta/fixes
Fixes for deterministic events
| -rw-r--r-- | src/focaccia/_deterministic_impl.py | 6 | ||||
| -rw-r--r-- | src/focaccia/deterministic.py | 3 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/focaccia/_deterministic_impl.py b/src/focaccia/_deterministic_impl.py index fc85b9a..119a4cb 100644 --- a/src/focaccia/_deterministic_impl.py +++ b/src/focaccia/_deterministic_impl.py @@ -305,7 +305,7 @@ class DeterministicLog: raise NotImplementedError(f'Cannot support system call buffer events yet: {event}') if event_type == 'signal': signal = raw_event.event.signal - signal_descriptor = SignalDescriptor(signal.arch, + signal_descriptor = SignalDescriptor(signal.siginfoArch, signal.siginfo, signal.deterministic, signal.disposition) @@ -314,7 +314,7 @@ class DeterministicLog: if event_type == 'signalDelivery': signal = raw_event.event.signalDelivery - signal_descriptor = SignalDescriptor(signal.arch, + signal_descriptor = SignalDescriptor(signal.siginfoArch, signal.siginfo, signal.deterministic, signal.disposition) @@ -323,7 +323,7 @@ class DeterministicLog: if event_type == 'signalHandler': signal = raw_event.event.signalHandler - signal_descriptor = SignalDescriptor(signal.arch, + signal_descriptor = SignalDescriptor(signal.siginfoArch, signal.siginfo, signal.deterministic, signal.disposition) diff --git a/src/focaccia/deterministic.py b/src/focaccia/deterministic.py index ffd519c..2f3980a 100644 --- a/src/focaccia/deterministic.py +++ b/src/focaccia/deterministic.py @@ -160,7 +160,7 @@ class SignalEvent(Event): self.signal_delivery = signal_delivery self.signal_handler = signal_handler - if [self.signal_number, self.signal_delivery, self.signal_handler].count(None) != 1: + if [self.signal_number, self.signal_delivery, self.signal_handler].count(None) != 2: raise ValueError(f'A signal event may be either a signal number, delivery or handler event') def __repr__(self) -> str: @@ -300,6 +300,7 @@ finally: self.matched_count = None if from_state: self.match(from_state) + self.matched_count -= 1 def match(self, state: ReadableProgramState) -> Event | None: if self.matched_count is None: |