about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorTheofilos Augoustis <37243696+taugoust@users.noreply.github.com>2025-11-20 10:45:44 +0100
committerGitHub <noreply@github.com>2025-11-20 10:45:44 +0100
commita46ed05611d4fd2d6663d1b9265e9426c17a63ad (patch)
tree461b5ade37723321025a59285615cd0f23c63c66 /src
parentdae5b391c2042ca70359cf9c93e62b1d4c903e71 (diff)
parent88c17c3e83842690a7d76f0376511b20df508fa4 (diff)
downloadfocaccia-a46ed05611d4fd2d6663d1b9265e9426c17a63ad.tar.gz
focaccia-a46ed05611d4fd2d6663d1b9265e9426c17a63ad.zip
Merge pull request #28 from TUM-DSE/ta/fixes
Fixes for deterministic events
Diffstat (limited to 'src')
-rw-r--r--src/focaccia/_deterministic_impl.py6
-rw-r--r--src/focaccia/deterministic.py3
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: