diff --git a/expect/linux-tpm-384.exp b/expect/linux-tpm-384.exp
index 262cf4c..88410ed 100644
--- a/expect/linux-tpm-384.exp
+++ b/expect/linux-tpm-384.exp
@@ -13,32 +13,12 @@
 
 # File to store the event log from the ftpm service.
 set TFA_DIGEST [get_param tfa_digest "tfa_event_log"]
+set FTPM_DIGEST [get_param ftpm_digest "ftpm_event_log"]
 
 # regexp for non-zero PCR0
 set non_zero_pcr "(?!(\\s00){16})((\\s(\[0-9a-f\]){2}){16}\\s)"
 
-expect {
-        # Wait for the start of the event log dump.
-        "TCG_EfiSpecIDEvent:" {
-                set digest_log [open $TFA_DIGEST w]
-        }
-}
-
-expect {
-        # Parse the event log from the debug logs and store the digests
-        # so they can be matched later with what the fTPM reads.
-
-        -re "Digest(\\s|\\w)*:\\s(\\w{2}\\s){16}|\
-        : (\\w{2}\\s){16}|\
-        Event(\\s|\\w)*:\\s\\w+\\s" {
-                puts $digest_log $expect_out(0,string)
-                exp_continue
-        }
-
-        -exact "Booting BL31" {
-                close $digest_log
-        }
-}
+capture_log $TFA_DIGEST "Booting BL31"
 
 expect {
         "login" {
@@ -72,12 +52,4 @@
 
 expect_string "#" "finished reading PCRs"
 
-# Match the previously stored digest with the one generated by the
-# fTPM service. The pass criteria is that both digests must match,
-# meaning that TF-A successfully passed the event log to the TPM service.
-if {[catch {exec diff -s $TFA_DIGEST ftpm_event_log} result options] == 0} {
-        message "tests succeeded, digests matched"
-} else {
-        message "tests failed, digests did not match"
-        exit_uart -1
-}
+compare_log $TFA_DIGEST $FTPM_DIGEST
\ No newline at end of file
diff --git a/expect/linux-tpm.exp b/expect/linux-tpm.exp
index 8aff8ce..e5d255c 100644
--- a/expect/linux-tpm.exp
+++ b/expect/linux-tpm.exp
@@ -11,33 +11,13 @@
 
 # File to store the event log from the ftpm service.
 set TFA_DIGEST [get_param tfa_digest "tfa_event_log"]
+set FTPM_DIGEST [get_param ftpm_digest "ftpm_event_log"]
 
 # regexp for non-zero PCR0
 set non_zero_pcr "(?!(\\s00){16})((\\s(\[0-9a-f\]){2}){16}\\s)"
 set zero_pcr "(\\s00){16}\\s+(00\\s){16}"
 
-expect {
-        # Wait for the start of the event log dump.
-        "TCG_EfiSpecIDEvent:" {
-                set digest_log [open $TFA_DIGEST w]
-        }
-}
-
-expect {
-        # Parse the event log from the debug logs and store the digests
-        # so they can be matched later with what the fTPM reads.
-
-        -re "Digest(\\s|\\w)*:\\s(\\w{2}\\s){16}|\
-        : (\\w{2}\\s){16}|\
-        Event(\\s|\\w)*:\\s\\w+\\s" {
-                puts $digest_log $expect_out(0,string)
-                exp_continue
-        }
-
-        -exact "Booting BL31" {
-                close $digest_log
-        }
-}
+capture_log $TFA_DIGEST "Booting BL31"
 
 expect {
         "login" {
@@ -90,12 +70,4 @@
 
 expect_string "#" "finished reading PCRs"
 
-# Match the previously stored digest with the one generated by the
-# fTPM service. The pass criteria is that both digests must match,
-# meaning that TF-A successfully passed the event log to the TPM service.
-if {[catch {exec diff -s $TFA_DIGEST ftpm_event_log} result options] == 0} {
-        message "tests succeeded, digests matched"
-} else {
-        message "tests failed, digests did not match"
-        exit_uart -1
-}
+compare_log $TFA_DIGEST $FTPM_DIGEST
\ No newline at end of file
diff --git a/expect/tpm-logs.exp b/expect/tpm-logs.exp
index 7ed4479..e46beb6 100644
--- a/expect/tpm-logs.exp
+++ b/expect/tpm-logs.exp
@@ -11,23 +11,7 @@
 
 # File to store the event log from the ftpm service.
 set FTPM_DIGEST [get_param ftpm_digest "ftpm_event_log"]
-set event_log [open $FTPM_DIGEST w]
 
-expect -exact "Event log size"
+capture_log $FTPM_DIGEST "returned value"
 
-expect {
-        # Parse the event log from the debug logs and store the digests
-        # so they can be matched later with what TF-A stored on the event log.
-        -re "Digest(\\s|\\w)*:\\s(\\w{2}\\s){16}|\
-        : (\\w{2}\\s){16}|\
-        Event(\\s|\\w)*:\\s\\w+\\s" {
-                puts $event_log $expect_out(0,string)
-                exp_continue
-        }
-
-        -exact "returned value" {
-                close $event_log
-        }
-}
-
-source [file join [file dirname [info script]] uart-hold.inc]
+source [file join [file dirname [info script]] uart-hold.inc]
\ No newline at end of file
diff --git a/expect/utils.inc b/expect/utils.inc
index d9113d7..db3935b 100644
--- a/expect/utils.inc
+++ b/expect/utils.inc
@@ -125,10 +125,7 @@
     }
 }
 
-proc capture_and_compare_log {out end_re compare} {
-    set event_log [open $out w]
-    capture_log $out $end_re
-
+proc compare_log {out compare} {
     # Match the previously the given digests. The pass criteria is that both
     # digests must match.
     if {[catch {exec diff -s $out $compare} result options] == 0} {
@@ -138,3 +135,10 @@
             exit_uart -1
     }
 }
+
+proc capture_and_compare_log {out end_re compare} {
+    set event_log [open $out w]
+    capture_log $out $end_re
+
+    compare_log $out $compare
+}
