diff --git a/tf_fuzz/lib/tfm_boilerplate.txt b/tf_fuzz/lib/tfm_boilerplate.txt
index 952d4ad..c093730 100644
--- a/tf_fuzz/lib/tfm_boilerplate.txt
+++ b/tf_fuzz/lib/tfm_boilerplate.txt
@@ -101,7 +101,7 @@
         return;
     }
 
-    TEST_LOG("Test $purpose");
+    TEST_LOG("Test $purpose\n");
 `004
     static int $var = $init;
 `005
@@ -168,8 +168,8 @@
         return;
     }
     /* Check that the data is correct */
-    if (memcmp($act_data, $exp_data,
-                   $length) != $check_expect) {
+
+    if ($length > 0 && memcmp($act_data, $exp_data, $act_length) != $check_expect) {
         TEST_FAIL("Read data should be equal to result data");
         return;
     }
diff --git a/tf_fuzz/tfz-cpp/calls/psa_call.cpp b/tf_fuzz/tfz-cpp/calls/psa_call.cpp
index 0e1680b..98c7ba2 100644
--- a/tf_fuzz/tfz-cpp/calls/psa_call.cpp
+++ b/tf_fuzz/tfz-cpp/calls/psa_call.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019-2020, Arm Limited. All rights reserved.
+ * Copyright (c) 2019-2024, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
@@ -399,5 +399,3 @@
 /**********************************************************************************
    End of methods of class security_call.
 **********************************************************************************/
-
-
diff --git a/tf_fuzz/tfz-cpp/calls/sst_call.cpp b/tf_fuzz/tfz-cpp/calls/sst_call.cpp
index ac71a8d..5007314 100644
--- a/tf_fuzz/tfz-cpp/calls/sst_call.cpp
+++ b/tf_fuzz/tfz-cpp/calls/sst_call.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019-2022, Arm Limited. All rights reserved.
+ * Copyright (c) 2019-2024, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
@@ -332,7 +332,7 @@
 
 void sst_get_call::fill_in_command (void)
 {
-    string exp_var_name, act_var_name, act_data_length, hash_var_name,
+    string exp_var_name, act_var_name, length_var_name,act_data_length, hash_var_name,
     id_string, var_name_suffix;
 
 /* TODO:  Flesh-out/fix this (it was a good try/start, but not quite right):
@@ -399,11 +399,12 @@
     find_replace_all ("$act_data", act_var_name, call_code);
     find_replace_all ("$act_length", act_data_length, call_code);
     // Perform most of the same substitutions in the check_code:
-// TODO:  Make data checks contingent upon the PSA call itself passing?
+    // TODO:  Make data checks contingent upon the PSA call itself passing?
     find_replace_1st ("$offset", "0", check_code);
     find_replace_1st ("$exp_data", exp_var_name, check_code);
     find_replace_all ("$act_data", act_var_name, check_code);
-    find_replace_all ("$length", act_data_length, check_code);
+    find_replace_all ("$length", to_string(set_data.get().length()), check_code);
+    find_replace_all ("$act_length", act_data_length, check_code);
     if (print_data) {
         check_code.append (test_state->bplate->bplate_string[test_log]);
         find_replace_1st ("$message", act_var_name, check_code);
@@ -492,4 +493,3 @@
 /**********************************************************************************
    End of methods of class sst_remove_call.
 **********************************************************************************/
-
diff --git a/tf_fuzz/tfz-cpp/regression/000001_set_sst_uid_data_expect_pass/exp_test.c b/tf_fuzz/tfz-cpp/regression/000001_set_sst_uid_data_expect_pass/exp_test.c
index bc4cc05..a6e429a 100644
--- a/tf_fuzz/tfz-cpp/regression/000001_set_sst_uid_data_expect_pass/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000001_set_sst_uid_data_expect_pass/exp_test.c
@@ -33,7 +33,7 @@
         return;
     }
 
-    TEST_LOG("Test to create an SST asset");
+    TEST_LOG("Test to create an SST asset\n");
 
 
     /* PSA calls to test: */
diff --git a/tf_fuzz/tfz-cpp/regression/000002_set_sst_name_data_expect_nothing/exp_test.c b/tf_fuzz/tfz-cpp/regression/000002_set_sst_name_data_expect_nothing/exp_test.c
index f4377a1..c3cb327 100644
--- a/tf_fuzz/tfz-cpp/regression/000002_set_sst_name_data_expect_nothing/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000002_set_sst_name_data_expect_nothing/exp_test.c
@@ -33,7 +33,7 @@
         return;
     }
 
-    TEST_LOG("Test to give assets a human name");
+    TEST_LOG("Test to give assets a human name\n");
 
 
     /* PSA calls to test: */
diff --git a/tf_fuzz/tfz-cpp/regression/000003_set_sst_name_data/exp_test.c b/tf_fuzz/tfz-cpp/regression/000003_set_sst_name_data/exp_test.c
index f000d80..046787d 100644
--- a/tf_fuzz/tfz-cpp/regression/000003_set_sst_name_data/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000003_set_sst_name_data/exp_test.c
@@ -33,7 +33,7 @@
         return;
     }
 
-    TEST_LOG("Test to show that TF-Fuzz can \"infer\" \"results\"");
+    TEST_LOG("Test to show that TF-Fuzz can \"infer\" \"results\"\n");
 
 
     /* PSA calls to test: */
diff --git a/tf_fuzz/tfz-cpp/regression/000004_set_sst_name_rand_data/exp_test.c b/tf_fuzz/tfz-cpp/regression/000004_set_sst_name_rand_data/exp_test.c
index e2edc02..5bfd6c9 100644
--- a/tf_fuzz/tfz-cpp/regression/000004_set_sst_name_rand_data/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000004_set_sst_name_rand_data/exp_test.c
@@ -33,7 +33,7 @@
         return;
     }
 
-    TEST_LOG("Test to show how to randomize data");
+    TEST_LOG("Test to show how to randomize data\n");
 
 
     /* PSA calls to test: */
diff --git a/tf_fuzz/tfz-cpp/regression/000005_set_sst_rand_name_rand_data/exp_test.c b/tf_fuzz/tfz-cpp/regression/000005_set_sst_rand_name_rand_data/exp_test.c
index 9868812..d9de188 100644
--- a/tf_fuzz/tfz-cpp/regression/000005_set_sst_rand_name_rand_data/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000005_set_sst_rand_name_rand_data/exp_test.c
@@ -33,7 +33,7 @@
         return;
     }
 
-    TEST_LOG("Test to show how to randomize name and data");
+    TEST_LOG("Test to show how to randomize name and data\n");
 
 
     /* PSA calls to test: */
diff --git a/tf_fuzz/tfz-cpp/regression/000006_set_sst_multi_name_rand_data/exp_test.c b/tf_fuzz/tfz-cpp/regression/000006_set_sst_multi_name_rand_data/exp_test.c
index 0821cb6..430e642 100644
--- a/tf_fuzz/tfz-cpp/regression/000006_set_sst_multi_name_rand_data/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000006_set_sst_multi_name_rand_data/exp_test.c
@@ -41,7 +41,7 @@
         return;
     }
 
-    TEST_LOG("Test to show a nice party trick");
+    TEST_LOG("Test to show a nice party trick\n");
 
 
     /* PSA calls to test: */
diff --git a/tf_fuzz/tfz-cpp/regression/000007_set_sst_multi_uid_rand_data/exp_test.c b/tf_fuzz/tfz-cpp/regression/000007_set_sst_multi_uid_rand_data/exp_test.c
index 3516c14..df0f585 100644
--- a/tf_fuzz/tfz-cpp/regression/000007_set_sst_multi_uid_rand_data/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000007_set_sst_multi_uid_rand_data/exp_test.c
@@ -43,7 +43,7 @@
         return;
     }
 
-    TEST_LOG("Test same with UIDs");
+    TEST_LOG("Test same with UIDs\n");
 
 
     /* PSA calls to test: */
diff --git a/tf_fuzz/tfz-cpp/regression/000008_set_sst_name_rand_data_read_check_wrong/exp_test.c b/tf_fuzz/tfz-cpp/regression/000008_set_sst_name_rand_data_read_check_wrong/exp_test.c
index 0084b1f..3bd4fcc 100644
--- a/tf_fuzz/tfz-cpp/regression/000008_set_sst_name_rand_data_read_check_wrong/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000008_set_sst_name_rand_data_read_check_wrong/exp_test.c
@@ -36,7 +36,7 @@
         return;
     }
 
-    TEST_LOG("Test to create and show an asset");
+    TEST_LOG("Test to create and show an asset\n");
 
 
     /* PSA calls to test: */
@@ -54,8 +54,8 @@
         return;
     }
     /* Check that the data is correct */
-    if \(memcmp\(snortwaggle_act_data, snortwaggle_exp_data,
-                   snortwaggle_act_length\) == 0\) {
+
+    if \(\d+ > 0 && memcmp\(snortwaggle_act_data, snortwaggle_exp_data, snortwaggle_act_length\) == 0\) {
         TEST_FAIL("Read data should not be equal to result data");
         return;
     }
diff --git a/tf_fuzz/tfz-cpp/regression/000009_set_sst_name_rand_data_read_check_var_read_print/exp_test.c b/tf_fuzz/tfz-cpp/regression/000009_set_sst_name_rand_data_read_check_var_read_print/exp_test.c
index 610f051..8e71a93 100644
--- a/tf_fuzz/tfz-cpp/regression/000009_set_sst_name_rand_data_read_check_var_read_print/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000009_set_sst_name_rand_data_read_check_var_read_print/exp_test.c
@@ -37,7 +37,7 @@
         return;
     }
 
-    TEST_LOG("Test to check against a variable or dump into the log");
+    TEST_LOG("Test to check against a variable or dump into the log\n");
 
 
     /* PSA calls to test: */
@@ -55,8 +55,8 @@
         return;
     }
     /* Check that the data is correct */
-    if (memcmp(greebledorf_act_data, a_variable,
-                   greebledorf_act_length) != 0) {
+
+    if \(\d+ > 0 && memcmp\(greebledorf_act_data, a_variable, greebledorf_act_length\) != 0\) {
         TEST_FAIL("Read data should be equal to result data");
         return;
     }
diff --git a/tf_fuzz/tfz-cpp/regression/000010_read_nonexistent_sst_check_string/exp_test.c b/tf_fuzz/tfz-cpp/regression/000010_read_nonexistent_sst_check_string/exp_test.c
index 0cd77b8..1eedaf5 100644
--- a/tf_fuzz/tfz-cpp/regression/000010_read_nonexistent_sst_check_string/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000010_read_nonexistent_sst_check_string/exp_test.c
@@ -34,7 +34,7 @@
         return;
     }
 
-    TEST_LOG("Test to show what happens when you 'read' a non-existent asset");
+    TEST_LOG("Test to show what happens when you 'read' a non-existent asset\n");
 
 
     /* PSA calls to test: */
@@ -45,8 +45,8 @@
         return;
     }
     /* Check that the data is correct */
-    if \(memcmp\(napoleon_act_data, napoleon_exp_data,
-                   napoleon_act_length\) == 0\) {
+
+    if \(\d+ > 0 && memcmp\(napoleon_act_data, napoleon_exp_data, napoleon_act_length\) == 0\) {
         TEST_FAIL("Read data should not be equal to result data");
         return;
     }
diff --git a/tf_fuzz/tfz-cpp/regression/000011_read_nonexistent_sst_check_string_expect_pass/exp_test.c b/tf_fuzz/tfz-cpp/regression/000011_read_nonexistent_sst_check_string_expect_pass/exp_test.c
index 2d464b0..19862a3 100644
--- a/tf_fuzz/tfz-cpp/regression/000011_read_nonexistent_sst_check_string_expect_pass/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000011_read_nonexistent_sst_check_string_expect_pass/exp_test.c
@@ -34,7 +34,7 @@
         return;
     }
 
-    TEST_LOG("Test to illustrate that you can override TF-Fuzz's expected result");
+    TEST_LOG("Test to illustrate that you can override TF-Fuzz's expected result\n");
 
 
     /* PSA calls to test: */
@@ -45,8 +45,8 @@
         return;
     }
     /* Check that the data is correct */
-    if \(memcmp\(napoleon_act_data, napoleon_exp_data,
-                   napoleon_act_length\) != 0\) \{
+
+    if \(\d+ > 0 && memcmp\(napoleon_act_data, napoleon_exp_data, napoleon_act_length\) != 0\) \{
         TEST_FAIL("Read data should be equal to result data");
         return;
     }
diff --git a/tf_fuzz/tfz-cpp/regression/000012_read_nonexistent_sst_check_string_expect_other/exp_test.c b/tf_fuzz/tfz-cpp/regression/000012_read_nonexistent_sst_check_string_expect_other/exp_test.c
index 93e16b5..6b4980d 100644
--- a/tf_fuzz/tfz-cpp/regression/000012_read_nonexistent_sst_check_string_expect_other/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000012_read_nonexistent_sst_check_string_expect_other/exp_test.c
@@ -34,7 +34,7 @@
         return;
     }
 
-    TEST_LOG("Test to more-specifically override TF-Fuzz's expected result");
+    TEST_LOG("Test to more-specifically override TF-Fuzz's expected result\n");
 
 
     /* PSA calls to test: */
@@ -45,8 +45,8 @@
         return;
     }
     /* Check that the data is correct */
-    if \(memcmp\(napoleon_act_data, napoleon_exp_data,
-                   napoleon_act_length\) == 0\) \{
+
+    if \(\d+ > 0 && memcmp\(napoleon_act_data, napoleon_exp_data, napoleon_act_length\) == 0\) \{
         TEST_FAIL("Read data should not be equal to result data");
         return;
     }
diff --git a/tf_fuzz/tfz-cpp/regression/000013_set_sst_name_rand_data_remove_twice/exp_test.c b/tf_fuzz/tfz-cpp/regression/000013_set_sst_name_rand_data_remove_twice/exp_test.c
index 57810a8..1735dae 100644
--- a/tf_fuzz/tfz-cpp/regression/000013_set_sst_name_rand_data_remove_twice/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000013_set_sst_name_rand_data_remove_twice/exp_test.c
@@ -33,7 +33,7 @@
         return;
     }
 
-    TEST_LOG("Test to illustrate deleting assets");
+    TEST_LOG("Test to illustrate deleting assets\n");
 
 
     /* PSA calls to test: */
diff --git a/tf_fuzz/tfz-cpp/regression/000014_set_sst_name_rand_data_remove_other/exp_test.c b/tf_fuzz/tfz-cpp/regression/000014_set_sst_name_rand_data_remove_other/exp_test.c
index 5e93196..e585026 100644
--- a/tf_fuzz/tfz-cpp/regression/000014_set_sst_name_rand_data_remove_other/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000014_set_sst_name_rand_data_remove_other/exp_test.c
@@ -33,7 +33,7 @@
         return;
     }
 
-    TEST_LOG("Test to remove something that doesn't exist");
+    TEST_LOG("Test to remove something that doesn't exist\n");
 
 
     /* PSA calls to test: */
diff --git a/tf_fuzz/tfz-cpp/regression/000015_set_sst_name_only/exp_test.c b/tf_fuzz/tfz-cpp/regression/000015_set_sst_name_only/exp_test.c
index 082816a..4366331 100644
--- a/tf_fuzz/tfz-cpp/regression/000015_set_sst_name_only/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000015_set_sst_name_only/exp_test.c
@@ -35,7 +35,7 @@
         return;
     }
 
-    TEST_LOG("Test to show that if you don't have say anything about data to randomize it");
+    TEST_LOG("Test to show that if you don't have say anything about data to randomize it\n");
 
 
     /* PSA calls to test: */
diff --git a/tf_fuzz/tfz-cpp/regression/000016_set_sst_single_asset_set_multiple_times/exp_test.c b/tf_fuzz/tfz-cpp/regression/000016_set_sst_single_asset_set_multiple_times/exp_test.c
index 709c28e..763d670 100644
--- a/tf_fuzz/tfz-cpp/regression/000016_set_sst_single_asset_set_multiple_times/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000016_set_sst_single_asset_set_multiple_times/exp_test.c
@@ -41,7 +41,7 @@
         return;
     }
 
-    TEST_LOG("Test to assign a sequence of values to a single asset");
+    TEST_LOG("Test to assign a sequence of values to a single asset\n");
 
 
     /* PSA calls to test: */
diff --git a/tf_fuzz/tfz-cpp/regression/000017_read_sst_check_single_asset_multiple_times/exp_test.c b/tf_fuzz/tfz-cpp/regression/000017_read_sst_check_single_asset_multiple_times/exp_test.c
index 609d8e9..51977c4 100644
--- a/tf_fuzz/tfz-cpp/regression/000017_read_sst_check_single_asset_multiple_times/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000017_read_sst_check_single_asset_multiple_times/exp_test.c
@@ -38,7 +38,7 @@
         return;
     }
 
-    TEST_LOG("Test to read the value of a single asset multiple times");
+    TEST_LOG("Test to read the value of a single asset multiple times\n");
 
 
     /* PSA calls to test: */
@@ -56,8 +56,8 @@
         return;
     }
     /* Check that the data is correct */
-    if \(memcmp\(just_checking_act_data, just_checking_exp_data,
-                   just_checking_act_length\) == 0\) {
+
+    if \(\d+ > 0 && memcmp\(just_checking_act_data, just_checking_exp_data, just_checking_act_length\) == 0\) {
         TEST_FAIL("Read data should not be equal to result data");
         return;
     }
@@ -68,8 +68,8 @@
         return;
     }
     /* Check that the data is correct */
-    if \(memcmp\(just_checking_act_data, just_checking_exp_data_1,
-                   just_checking_act_length\) == 0\) {
+
+    if \(\d+ > 0 && memcmp\(just_checking_act_data, just_checking_exp_data_1, just_checking_act_length\) == 0\) {
         TEST_FAIL("Read data should not be equal to result data");
         return;
     }
@@ -80,8 +80,8 @@
         return;
     }
     /* Check that the data is correct */
-    if \(memcmp\(just_checking_act_data, just_checking_exp_data_2,
-                   just_checking_act_length\) == 0\) {
+
+    if \(\d+ > 0 && memcmp\(just_checking_act_data, just_checking_exp_data_2, just_checking_act_length\) == 0\) {
         TEST_FAIL("Read data should not be equal to result data");
         return;
     }
diff --git a/tf_fuzz/tfz-cpp/regression/000018_000016_and_000017/exp_test.c b/tf_fuzz/tfz-cpp/regression/000018_000016_and_000017/exp_test.c
index 6f04987..5fadc9e 100644
--- a/tf_fuzz/tfz-cpp/regression/000018_000016_and_000017/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000018_000016_and_000017/exp_test.c
@@ -48,7 +48,7 @@
         return;
     }
 
-    TEST_LOG("Test to both read the value of a single asset multiple times and assign a sequence of values to a single asset");
+    TEST_LOG("Test to both read the value of a single asset multiple times and assign a sequence of values to a single asset\n");
 
 
     /* PSA calls to test: */
@@ -66,8 +66,8 @@
         return;
     }
     /* Check that the data is correct */
-    if (memcmp(indecisive_act_data, indecisive_exp_data,
-                   indecisive_act_length\) == 0\) {
+
+    if \(\d+ > 0 && memcmp\(indecisive_act_data, indecisive_exp_data, indecisive_act_length\) == 0\) {
         TEST_FAIL("Read data should not be equal to result data");
         return;
     }
@@ -85,8 +85,8 @@
         return;
     }
     /* Check that the data is correct */
-    if (memcmp(indecisive_act_data, indecisive_exp_data_1,
-                   indecisive_act_length) == 0) {
+
+    if \(\d+ > 0 && memcmp\(indecisive_act_data, indecisive_exp_data_1, indecisive_act_length\) == 0\) {
         TEST_FAIL("Read data should not be equal to result data");
         return;
     }
@@ -111,8 +111,8 @@
         return;
     }
     /* Check that the data is correct */
-    if (memcmp(indecisive_act_data, indecisive_exp_data_2,
-                   indecisive_act_length) == 0) {
+
+    if \(\d+ > 0 && memcmp\(indecisive_act_data, indecisive_exp_data_2, indecisive_act_length\) == 0\) {
         TEST_FAIL("Read data should not be equal to result data");
         return;
     }
diff --git a/tf_fuzz/tfz-cpp/regression/000019_read_asset_to_variable_set_other_asset/exp_test.c b/tf_fuzz/tfz-cpp/regression/000019_read_asset_to_variable_set_other_asset/exp_test.c
index a235358..f23da46 100644
--- a/tf_fuzz/tfz-cpp/regression/000019_read_asset_to_variable_set_other_asset/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000019_read_asset_to_variable_set_other_asset/exp_test.c
@@ -39,7 +39,7 @@
         return;
     }
 
-    TEST_LOG("Test to read an asset into a named variable the set another asset from that variable");
+    TEST_LOG("Test to read an asset into a named variable the set another asset from that variable\n");
 
 
     /* PSA calls to test: */
@@ -57,8 +57,8 @@
         return;
     }
     /* Check that the data is correct */
-    if (memcmp(transfer_data, source_exp_data,
-                   transfer_length) != 0) {
+
+    if \(\d+ > 0 && memcmp\(transfer_data, source_exp_data, transfer_length\) != 0\) {
         TEST_FAIL("Read data should be equal to result data");
         return;
     }
@@ -76,8 +76,8 @@
         return;
     }
     /* Check that the data is correct */
-    if (memcmp(transfer_data, intermediate_exp_data,
-                   transfer_length) != 0) {
+
+    if \(\d+ > 0 && memcmp\(transfer_data, intermediate_exp_data, transfer_length\) != 0\) {
         TEST_FAIL("Read data should be equal to result data");
         return;
     }
@@ -95,8 +95,8 @@
         return;
     }
     /* Check that the data is correct */
-    if (memcmp(destination_act_data, transfer,
-                   destination_act_length) != 0) {
+
+    if \(\d+ > 0 && memcmp\(destination_act_data, transfer, destination_act_length\) != 0\) {
         TEST_FAIL("Read data should be equal to result data");
         return;
     }
diff --git a/tf_fuzz/tfz-cpp/regression/000021_abbreviated_result_codes/exp_test.c b/tf_fuzz/tfz-cpp/regression/000021_abbreviated_result_codes/exp_test.c
index 93e16b5..6b4980d 100644
--- a/tf_fuzz/tfz-cpp/regression/000021_abbreviated_result_codes/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000021_abbreviated_result_codes/exp_test.c
@@ -34,7 +34,7 @@
         return;
     }
 
-    TEST_LOG("Test to more-specifically override TF-Fuzz's expected result");
+    TEST_LOG("Test to more-specifically override TF-Fuzz's expected result\n");
 
 
     /* PSA calls to test: */
@@ -45,8 +45,8 @@
         return;
     }
     /* Check that the data is correct */
-    if \(memcmp\(napoleon_act_data, napoleon_exp_data,
-                   napoleon_act_length\) == 0\) \{
+
+    if \(\d+ > 0 && memcmp\(napoleon_act_data, napoleon_exp_data, napoleon_act_length\) == 0\) \{
         TEST_FAIL("Read data should not be equal to result data");
         return;
     }
diff --git a/tf_fuzz/tfz-cpp/regression/000022_SST_offset/exp_test.c b/tf_fuzz/tfz-cpp/regression/000022_SST_offset/exp_test.c
index 4bc8e80..3d1fba6 100644
--- a/tf_fuzz/tfz-cpp/regression/000022_SST_offset/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000022_SST_offset/exp_test.c
@@ -35,7 +35,7 @@
         return;
     }
 
-    TEST_LOG("Test to set an offset on psa_ps_get()");
+    TEST_LOG("Test to set an offset on psa_ps_get()\n");
 
 
     /* PSA calls to test: */
diff --git a/tf_fuzz/tfz-cpp/regression/000023_SST_creation_flags/exp_test.c b/tf_fuzz/tfz-cpp/regression/000023_SST_creation_flags/exp_test.c
index 805495d..42a54a2 100644
--- a/tf_fuzz/tfz-cpp/regression/000023_SST_creation_flags/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000023_SST_creation_flags/exp_test.c
@@ -41,7 +41,7 @@
         return;
     }
 
-    TEST_LOG("Test to set SST creation flags");
+    TEST_LOG("Test to set SST creation flags\n");
 
 
     /* PSA calls to test: */
diff --git a/tf_fuzz/tfz-cpp/regression/000024_SST_write_once/exp_test.c b/tf_fuzz/tfz-cpp/regression/000024_SST_write_once/exp_test.c
index 0683390..c11a6ac 100644
--- a/tf_fuzz/tfz-cpp/regression/000024_SST_write_once/exp_test.c
+++ b/tf_fuzz/tfz-cpp/regression/000024_SST_write_once/exp_test.c
@@ -37,7 +37,7 @@
         return;
     }
 
-    TEST_LOG("Test to verify we can't write multiple times to a write-once SST asset");
+    TEST_LOG("Test to verify we can't write multiple times to a write-once SST asset\n");
 
 
     /* PSA calls to test: */
diff --git a/tf_fuzz/tfz-cpp/utility/data_blocks.hpp b/tf_fuzz/tfz-cpp/utility/data_blocks.hpp
index 723ee95..5b26e1b 100644
--- a/tf_fuzz/tfz-cpp/utility/data_blocks.hpp
+++ b/tf_fuzz/tfz-cpp/utility/data_blocks.hpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019-2022, Arm Limited. All rights reserved.
+ * Copyright (c) 2019-2024, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
@@ -228,4 +228,3 @@
 
 
 #endif // DATA_BLOCKS_HPP
-
diff --git a/tf_fuzz/tfz-cpp/utility/randomization.cpp b/tf_fuzz/tfz-cpp/utility/randomization.cpp
index 65f4a01..c8cdd38 100644
--- a/tf_fuzz/tfz-cpp/utility/randomization.cpp
+++ b/tf_fuzz/tfz-cpp/utility/randomization.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019-2022, Arm Limited. All rights reserved.
+ * Copyright (c) 2019-2024, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
@@ -101,4 +101,3 @@
     }
     return "";  /* placate compiler */
 }
-
