From 030987b4d64bbfb175768b2cb821229f9b8e0193 Mon Sep 17 00:00:00 2001
From: Jason Hiser <jdhiser@gmail.com>
Date: Sun, 16 Dec 2018 00:56:27 +0000
Subject: [PATCH] added self-validation

---
 src/ehwrite.cpp | 11 ++++++++++-
 src/zipr.cpp    |  3 +++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/ehwrite.cpp b/src/ehwrite.cpp
index b9686a2..12a7b6f 100644
--- a/src/ehwrite.cpp
+++ b/src/ehwrite.cpp
@@ -883,10 +883,19 @@ void EhWriterImpl_t<ptrsize>::BuildFDEs()
 			current_fde->extend(this_insn,this);
 		}
 	}
+
+	const auto avg_insn_per_fde = insns_with_frame/(float)all_fdes.size();
+
+
+        assert(getenv("SELF_VALIDATE")==nullptr || all_fdes.size() > 10 ) ;
+        assert(getenv("SELF_VALIDATE")==nullptr || all_cies.size() > 0 ) ;
+        assert(getenv("SELF_VALIDATE")==nullptr || insns_with_frame > 10 );
+        assert(getenv("SELF_VALIDATE")==nullptr ||  avg_insn_per_fde > 1 ) ;
+
 	cout<<"# ATTRIBUTE ExceptionHandlerWrite::fdes_calculated="<<dec<<all_fdes.size()<<endl;
 	cout<<"# ATTRIBUTE ExceptionHandlerWrite::cies_calculated="<<dec<<all_cies.size()<<endl;
 	cout<<"# ATTRIBUTE ExceptionHandlerWrite::insns_with_eh_info="<<dec<<insns_with_frame<<endl;
-	cout<<"# ATTRIBUTE ExceptionHandlerWrite::avg_insns_per_fde="<<dec<<insns_with_frame/(float)all_fdes.size()<<endl;
+	cout<<"# ATTRIBUTE ExceptionHandlerWrite::avg_insns_per_fde="<<dec<<avg_insn_per_fde<<endl;
 }
 
 template<int ptrsize>
diff --git a/src/zipr.cpp b/src/zipr.cpp
index 92ec7d8..b652248 100644
--- a/src/zipr.cpp
+++ b/src/zipr.cpp
@@ -2221,6 +2221,9 @@ void ZiprImpl_t::PlaceDollops()
 		count_pins++;
 	}
 
+	assert(getenv("SELF_VALIDATE")==nullptr || count_pins > 10 ) ;
+	assert(getenv("SELF_VALIDATE")==nullptr || placement_queue.size() > 30 ) ;
+
 	cout<<"# ATTRIBUTE Zipr::pins_detected="<<dec<<count_pins<<endl;
 	cout<<"# ATTRIBUTE Zipr::placement_queue_size="<<dec<<placement_queue.size()<<endl;
 
-- 
GitLab