From 2cae2023175d76e94271a4dc57f562a46477a46d Mon Sep 17 00:00:00 2001
From: balaskoa <Jeno.Balasko@ericsson.com>
Date: Fri, 20 Sep 2019 10:51:32 +0200
Subject: [PATCH] New tests in TboolOper.ttcn

Signed-off-by: balaskoa <Jeno.Balasko@ericsson.com>
Change-Id: I2c7a94b2ec1c7e86f3e63a1317c44721d3e4fc15
---
 regression_test/boolOper/TboolOper.ttcn | 44 +++++++++++++++++++++++--
 1 file changed, 42 insertions(+), 2 deletions(-)

diff --git a/regression_test/boolOper/TboolOper.ttcn b/regression_test/boolOper/TboolOper.ttcn
index b3d9d8d59..5edc81626 100644
--- a/regression_test/boolOper/TboolOper.ttcn
+++ b/regression_test/boolOper/TboolOper.ttcn
@@ -18,6 +18,8 @@ module TboolOper
 {
 
 modulepar boolean tsp_uninit;
+modulepar boolean tsp_init := true;
+
 const boolean TboolOper_const1:=true;
 type component boolOper_comptype { };
 
@@ -383,6 +385,15 @@ testcase boolUninitNot() runs on boolOper_comptype {
   }
 }
 
+testcase boolUninitLog() runs on boolOper_comptype {
+  var boolean x1;
+  if (log2str(x1) == "<unbound>") { 
+    setverdict(pass, "x1: ",x1);
+  } else { 
+    setverdict(fail);
+  }
+}
+
 testcase boolUninitTemplate() runs on boolOper_comptype {
   var template boolean x2;
   var boolean x1;
@@ -410,7 +421,7 @@ testcase boolUninitTemplate() runs on boolOper_comptype {
   }
 }
 
-testcase boolUninitModulepar() runs on boolOper_comptype {
+testcase boolModulepar() runs on boolOper_comptype {
   var template boolean x2;
   var boolean x1 := true;
   @try {
@@ -435,6 +446,17 @@ testcase boolUninitModulepar() runs on boolOper_comptype {
     //check e
     setverdict(pass);
   }
+  if (true != tsp_init) { 
+    setverdict(fail);
+  }
+  if (log2str(tsp_uninit) == "<unbound>") { 
+    setverdict(pass);
+  } else { 
+    setverdict(fail);
+  }
+  if (log2str(tsp_init) != "true") {
+    setverdict(fail);
+  }
 }
 
 type boolean myb1
@@ -477,6 +499,13 @@ testcase boolIsvalue() runs on boolOper_comptype{
 
   if ( isvalue(vt0) ) { setverdict(fail); } else { setverdict(pass); };
   if ( isvalue(vt1) ) { setverdict(fail); } else { setverdict(pass); };
+
+  var boolean x1 := true;
+  if (isvalue(x1) ){ 
+    setverdict (pass);
+  } else  {
+    setverdict (fail);
+  }
 }
 
 type union TestUnion {
@@ -533,6 +562,15 @@ testcase boolShortCircuit() runs on boolOper_comptype {
   setverdict(pass);
 }
 
+testcase boolUnion() runs on boolOper_comptype {
+  // create a union variable, make sure the boolean field is not chosen
+  var TestUnion myUnion := { b := true };
+  if (ischosen(myUnion.b))  {
+    setverdict(pass,"The value of the field: ", myUnion.b);
+  }
+
+}
+
 type record MyRecord {
   integer a optional
 }
@@ -565,8 +603,10 @@ control {
   execute(boolUninitOr());
   execute(boolUninitAnd());
   execute(boolUninitNot());
+  execute(boolUninitLog());
   execute(boolUninitTemplate());
-  execute(boolUninitModulepar());
+  execute(boolModulepar());
+  execute(boolUnion());
 }
 
 }
-- 
GitLab