Patches for testing to allow predictable random number and date generation.
[asdcplib.git] / src / KM_util.cpp
index da8d7327c0b3ea60b681580dfa095c61aa8e6bce..6d364ccb7154cfa64fb18a0f601dc7ef956dfadb 100755 (executable)
@@ -40,6 +40,8 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include <map>
 #include <string>
 
+bool Kumu::cth_test = false;
+
 const char*
 Kumu::Version()
 {
@@ -589,6 +591,13 @@ Kumu::GenRandomValue(UUID& ID)
   ID.Set(tmp_buf);
 }
 
+void
+Kumu::ResetTestRNG()
+{
+  FortunaRNG RNG;
+  RNG.Reset();
+}
+
 //
 void
 Kumu::GenRandomUUID(byte_t* buf)
@@ -745,7 +754,14 @@ Kumu::write_BER(byte_t* buf, ui64_t val, ui32_t ber_len)
 
 //
 Kumu::Timestamp::Timestamp() : m_TZOffsetMinutes(0) {
-  m_Timestamp.now();
+  if (cth_test)
+    {
+      m_Timestamp.x = 42;
+    }
+  else
+    {
+      m_Timestamp.now();
+    }
 }
 
 Kumu::Timestamp::Timestamp(const Timestamp& rhs) {