From 5a7fe385957f4a58135db963e64df8f5b33b444d Mon Sep 17 00:00:00 2001
From: guptar <guptar@mycompany.com>
Date: Sat, 3 Oct 2015 07:10:12 +0000
Subject: [PATCH] added new test cases for PHY unitary simulation for secuirity

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7878 818b1a75-f10b-46b9-bf7c-635c3b92a50f
---
 cmake_targets/autotests/0300/CMakeLists.txt   | 15 +++
 cmake_targets/autotests/0301/CMakeLists.txt   | 15 +++
 cmake_targets/autotests/0302/CMakeLists.txt   | 15 +++
 cmake_targets/autotests/0303/CMakeLists.txt   | 15 +++
 cmake_targets/autotests/0304/CMakeLists.txt   | 15 +++
 cmake_targets/autotests/0305/CMakeLists.txt   | 15 +++
 cmake_targets/autotests/0306/CMakeLists.txt   | 15 +++
 cmake_targets/autotests/0307/CMakeLists.txt   | 15 +++
 cmake_targets/autotests/0308/CMakeLists.txt   | 15 +++
 cmake_targets/autotests/0309/CMakeLists.txt   | 15 +++
 .../autotests/run_compilation_autotests.bash  |  4 +-
 .../autotests/run_exec_autotests.bash         | 97 ++++++++++++++-----
 12 files changed, 226 insertions(+), 25 deletions(-)
 create mode 100644 cmake_targets/autotests/0300/CMakeLists.txt
 create mode 100644 cmake_targets/autotests/0301/CMakeLists.txt
 create mode 100644 cmake_targets/autotests/0302/CMakeLists.txt
 create mode 100644 cmake_targets/autotests/0303/CMakeLists.txt
 create mode 100644 cmake_targets/autotests/0304/CMakeLists.txt
 create mode 100644 cmake_targets/autotests/0305/CMakeLists.txt
 create mode 100644 cmake_targets/autotests/0306/CMakeLists.txt
 create mode 100644 cmake_targets/autotests/0307/CMakeLists.txt
 create mode 100644 cmake_targets/autotests/0308/CMakeLists.txt
 create mode 100644 cmake_targets/autotests/0309/CMakeLists.txt

diff --git a/cmake_targets/autotests/0300/CMakeLists.txt b/cmake_targets/autotests/0300/CMakeLists.txt
new file mode 100644
index 0000000000..36a9eb75da
--- /dev/null
+++ b/cmake_targets/autotests/0300/CMakeLists.txt
@@ -0,0 +1,15 @@
+cmake_minimum_required(VERSION 2.8)
+set(PACKAGE_NAME "unitary_tests_simulators")
+set(PHYSIM True)
+set(RF_BOARD None)
+set(XFORMS False)
+
+set(DEBUG_PHY False)
+set(MU_RECIEVER Flase)
+set(RANDOM_BF False)
+set(PBS_SIM False)
+set(PERFECT_CE False)
+set(NAS_UE False)
+set(MESSAGE_CHART_GENERATOR False)
+
+include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
diff --git a/cmake_targets/autotests/0301/CMakeLists.txt b/cmake_targets/autotests/0301/CMakeLists.txt
new file mode 100644
index 0000000000..36a9eb75da
--- /dev/null
+++ b/cmake_targets/autotests/0301/CMakeLists.txt
@@ -0,0 +1,15 @@
+cmake_minimum_required(VERSION 2.8)
+set(PACKAGE_NAME "unitary_tests_simulators")
+set(PHYSIM True)
+set(RF_BOARD None)
+set(XFORMS False)
+
+set(DEBUG_PHY False)
+set(MU_RECIEVER Flase)
+set(RANDOM_BF False)
+set(PBS_SIM False)
+set(PERFECT_CE False)
+set(NAS_UE False)
+set(MESSAGE_CHART_GENERATOR False)
+
+include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
diff --git a/cmake_targets/autotests/0302/CMakeLists.txt b/cmake_targets/autotests/0302/CMakeLists.txt
new file mode 100644
index 0000000000..36a9eb75da
--- /dev/null
+++ b/cmake_targets/autotests/0302/CMakeLists.txt
@@ -0,0 +1,15 @@
+cmake_minimum_required(VERSION 2.8)
+set(PACKAGE_NAME "unitary_tests_simulators")
+set(PHYSIM True)
+set(RF_BOARD None)
+set(XFORMS False)
+
+set(DEBUG_PHY False)
+set(MU_RECIEVER Flase)
+set(RANDOM_BF False)
+set(PBS_SIM False)
+set(PERFECT_CE False)
+set(NAS_UE False)
+set(MESSAGE_CHART_GENERATOR False)
+
+include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
diff --git a/cmake_targets/autotests/0303/CMakeLists.txt b/cmake_targets/autotests/0303/CMakeLists.txt
new file mode 100644
index 0000000000..36a9eb75da
--- /dev/null
+++ b/cmake_targets/autotests/0303/CMakeLists.txt
@@ -0,0 +1,15 @@
+cmake_minimum_required(VERSION 2.8)
+set(PACKAGE_NAME "unitary_tests_simulators")
+set(PHYSIM True)
+set(RF_BOARD None)
+set(XFORMS False)
+
+set(DEBUG_PHY False)
+set(MU_RECIEVER Flase)
+set(RANDOM_BF False)
+set(PBS_SIM False)
+set(PERFECT_CE False)
+set(NAS_UE False)
+set(MESSAGE_CHART_GENERATOR False)
+
+include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
diff --git a/cmake_targets/autotests/0304/CMakeLists.txt b/cmake_targets/autotests/0304/CMakeLists.txt
new file mode 100644
index 0000000000..36a9eb75da
--- /dev/null
+++ b/cmake_targets/autotests/0304/CMakeLists.txt
@@ -0,0 +1,15 @@
+cmake_minimum_required(VERSION 2.8)
+set(PACKAGE_NAME "unitary_tests_simulators")
+set(PHYSIM True)
+set(RF_BOARD None)
+set(XFORMS False)
+
+set(DEBUG_PHY False)
+set(MU_RECIEVER Flase)
+set(RANDOM_BF False)
+set(PBS_SIM False)
+set(PERFECT_CE False)
+set(NAS_UE False)
+set(MESSAGE_CHART_GENERATOR False)
+
+include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
diff --git a/cmake_targets/autotests/0305/CMakeLists.txt b/cmake_targets/autotests/0305/CMakeLists.txt
new file mode 100644
index 0000000000..36a9eb75da
--- /dev/null
+++ b/cmake_targets/autotests/0305/CMakeLists.txt
@@ -0,0 +1,15 @@
+cmake_minimum_required(VERSION 2.8)
+set(PACKAGE_NAME "unitary_tests_simulators")
+set(PHYSIM True)
+set(RF_BOARD None)
+set(XFORMS False)
+
+set(DEBUG_PHY False)
+set(MU_RECIEVER Flase)
+set(RANDOM_BF False)
+set(PBS_SIM False)
+set(PERFECT_CE False)
+set(NAS_UE False)
+set(MESSAGE_CHART_GENERATOR False)
+
+include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
diff --git a/cmake_targets/autotests/0306/CMakeLists.txt b/cmake_targets/autotests/0306/CMakeLists.txt
new file mode 100644
index 0000000000..36a9eb75da
--- /dev/null
+++ b/cmake_targets/autotests/0306/CMakeLists.txt
@@ -0,0 +1,15 @@
+cmake_minimum_required(VERSION 2.8)
+set(PACKAGE_NAME "unitary_tests_simulators")
+set(PHYSIM True)
+set(RF_BOARD None)
+set(XFORMS False)
+
+set(DEBUG_PHY False)
+set(MU_RECIEVER Flase)
+set(RANDOM_BF False)
+set(PBS_SIM False)
+set(PERFECT_CE False)
+set(NAS_UE False)
+set(MESSAGE_CHART_GENERATOR False)
+
+include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
diff --git a/cmake_targets/autotests/0307/CMakeLists.txt b/cmake_targets/autotests/0307/CMakeLists.txt
new file mode 100644
index 0000000000..36a9eb75da
--- /dev/null
+++ b/cmake_targets/autotests/0307/CMakeLists.txt
@@ -0,0 +1,15 @@
+cmake_minimum_required(VERSION 2.8)
+set(PACKAGE_NAME "unitary_tests_simulators")
+set(PHYSIM True)
+set(RF_BOARD None)
+set(XFORMS False)
+
+set(DEBUG_PHY False)
+set(MU_RECIEVER Flase)
+set(RANDOM_BF False)
+set(PBS_SIM False)
+set(PERFECT_CE False)
+set(NAS_UE False)
+set(MESSAGE_CHART_GENERATOR False)
+
+include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
diff --git a/cmake_targets/autotests/0308/CMakeLists.txt b/cmake_targets/autotests/0308/CMakeLists.txt
new file mode 100644
index 0000000000..36a9eb75da
--- /dev/null
+++ b/cmake_targets/autotests/0308/CMakeLists.txt
@@ -0,0 +1,15 @@
+cmake_minimum_required(VERSION 2.8)
+set(PACKAGE_NAME "unitary_tests_simulators")
+set(PHYSIM True)
+set(RF_BOARD None)
+set(XFORMS False)
+
+set(DEBUG_PHY False)
+set(MU_RECIEVER Flase)
+set(RANDOM_BF False)
+set(PBS_SIM False)
+set(PERFECT_CE False)
+set(NAS_UE False)
+set(MESSAGE_CHART_GENERATOR False)
+
+include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
diff --git a/cmake_targets/autotests/0309/CMakeLists.txt b/cmake_targets/autotests/0309/CMakeLists.txt
new file mode 100644
index 0000000000..36a9eb75da
--- /dev/null
+++ b/cmake_targets/autotests/0309/CMakeLists.txt
@@ -0,0 +1,15 @@
+cmake_minimum_required(VERSION 2.8)
+set(PACKAGE_NAME "unitary_tests_simulators")
+set(PHYSIM True)
+set(RF_BOARD None)
+set(XFORMS False)
+
+set(DEBUG_PHY False)
+set(MU_RECIEVER Flase)
+set(RANDOM_BF False)
+set(PBS_SIM False)
+set(PERFECT_CE False)
+set(NAS_UE False)
+set(MESSAGE_CHART_GENERATOR False)
+
+include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
diff --git a/cmake_targets/autotests/run_compilation_autotests.bash b/cmake_targets/autotests/run_compilation_autotests.bash
index 20ccf57dee..b6a7c12aa0 100755
--- a/cmake_targets/autotests/run_compilation_autotests.bash
+++ b/cmake_targets/autotests/run_compilation_autotests.bash
@@ -16,7 +16,7 @@ source $OPENAIR_DIR/cmake_targets/tools/test_helper
 
 test_compile() {
     xUnit_start
-    test_name=$1
+    test_name=$1.$2
     compile_prog=$2
     exec_prog=$3
     build_dir=$tdir/$1/build
@@ -101,8 +101,6 @@ test_compile \
     test.0104 mbmssim \
     mbmssim  $tdir/bin/mbmssim mbmssim.Rel8
 
-simlist=" secu_knas_encrypt_eea2 secu_knas kdf aes128_cmac_encrypt secu_knas_encrypt_eia2"
-
 test_compile \
     test.0104 test_secu_knas_encrypt_eia1 \
     test_secu_knas_encrypt_eia1  $tdir/bin/test_secu_knas_encrypt_eia1 test_secu_knas_encrypt_eia1.Rel10
diff --git a/cmake_targets/autotests/run_exec_autotests.bash b/cmake_targets/autotests/run_exec_autotests.bash
index 6731bcc12d..427ff85130 100755
--- a/cmake_targets/autotests/run_exec_autotests.bash
+++ b/cmake_targets/autotests/run_exec_autotests.bash
@@ -1,14 +1,15 @@
 #!/bin/bash
 
-if [ -s $OPENAIR_DIR/cmake_targets/tools/test_helper ] ; then
-   source $OPENAIR_DIR/cmake_targets/tools/test_helper
+if [ -s $OPENAIR_DIR/cmake_targets/tools/build_helper ] ; then
+   source $OPENAIR_DIR/cmake_targets/tools/build_helper
 else
    echo "Error: no file in the file tree: is OPENAIR_DIR variable set?"
    exit 1
 fi
 
+source $OPENAIR_DIR/cmake_targets/tools/test_helper
 
-SUDO="sudo -E "
+#SUDO="sudo -E "
 tdir=$OPENAIR_DIR/cmake_targets/autotests
 mkdir -p $tdir/bin $tdir/log
 results_file="$tdir/log/execution_autotests.xml"
@@ -29,11 +30,12 @@ cd $tdir
 #\param $6 -> name of executable
 #\param $7 -> arguments for running the program
 #\param $8 -> search expression
-#\param $9 -> number of runs
+#\param $9 -> search expression which should NOT be found (for ex. segmentation fault) 
+#\param $10 -> number of runs
 
 test_compile_and_run() {
     xUnit_start
-    test_case_name=$1
+    test_case_name=$1.$2
     log_dir=$tdir/log
     log_file=$tdir/log/test.$1.txt
     compile_prog=$2
@@ -42,7 +44,8 @@ test_compile_and_run() {
     pre_exec_args=$5
     exec_args=$7
     search_expr=$8
-    nruns=$9
+    search_expr_negative=$9
+    nruns=${10}
     build_dir=$tdir/$1/build
     exec_file=$build_dir/$6
     
@@ -54,13 +57,17 @@ test_compile_and_run() {
     rm -fr $build_dir
     mkdir -p $build_dir
 
-#    echo "log_dir = $log_dir"
-#    echo "log_file = $log_file"
-#    echo "exec_file = $exec_file"
-#    echo "args = $args"
-#    echo "search_expr = $search_expr"
-#    echo "pre_exec_file = $pre_exec_file"
+    #echo "log_dir = $log_dir"
+    #echo "log_file = $log_file"
+    #echo "exec_file = $exec_file"
+    #echo "args = $args"
+    #echo "search_expr = $search_expr"
+    #echo "pre_exec_file = $pre_exec_file"
+    #echo "nruns = $nruns"
     
+
+ 
+
     echo "<COMPILATION LOG>" > $log_file
     cd $build_dir
     {
@@ -78,18 +85,40 @@ test_compile_and_run() {
      echo "-----------------------------------------------------------------------------" >> $log_file  2>&1
      echo "<EXECUTION LOG Run = $run_index >" >> $log_file  2>&1
  
+     if [ -n "$pre_exec_file" ]; then
+       { source $pre_exec_file $pre_exec_args; } >> $log_file  2>&1
+     fi
+
+     { $exec_file $exec_args ;} > $temp_exec_log  2>&1
+
+
 
-     source $pre_exec_file $pre_exec_args >> $log_file  2>&1
-     $exec_file $exec_args > $temp_exec_log  2>&1
      cat $temp_exec_log >> $log_file  2>&1
      echo "</EXECUTION LOG Run = $run_index >" >> $log_file  2>&1
 
-     search_result=`grep "$search_expr" $temp_exec_log`
-
+     search_result=`grep -E "$search_expr" $temp_exec_log`
+     test_case_result=""
      if [ -z "$search_result" ]; then
-        xUnit_fail "execution" "$test_case_name" "FAIL" "$run_index"
+        test_case_result="FAIL"
      else
-	xUnit_success "execution" "$test_case_name" "PASS" "$run_index"
+        test_case_result="PASS"
+     fi
+    
+     #If we find a negative search result then there is crash of program and test case is failed even if above condition is true
+
+     search_result=`grep -iE "$search_expr_negative" $temp_exec_log`
+     if [ -n "$search_result" ]; then
+        test_case_result="FAIL"
+     fi
+     
+     if [ "$test_case_result" == "FAIL" ]; then
+        echo_error "execution $test_case_name  FAIL $run_index"
+        xUnit_fail "execution" "$test_case_name" "FAIL" "$run_index"
+     fi
+
+     if [ "$test_case_result" == "PASS" ]; then
+        echo_success "execution $test_case_name  PASS $run_index"
+	xUnit_success "execution" "$test_case_name" "PASS" "$run_index"        
      fi
 
 # End of for loop
@@ -130,12 +159,36 @@ fi
 #$5 -> arguments of pre-executable
 #$6 -> name of executable
 #$7 -> arguments for running the program
-#$8 -> search expression
-#$9 -> number of runs
+#$8 -> search expression which needs to be found
+#$9 -> search expression which should NOT be found (for ex. segmentation fault) 
+#$10 -> number of runs
+
+#oaisim tests
+test_compile_and_run 0200 "oaisim_nos1" "" "$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1" "" "oaisim_nos1" " -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -b1 -u1 -n1000" "RRC_CONN" "segmentation fault|assertion" 3
+
+test_compile_and_run 0201 "oaisim_nos1" "" "$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1" "" "oaisim_nos1" " -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -b1 -u1 -a -n1000" "RRC_CONN" "segmentation fault|assertion" 3
+
+#PHY unitary simulations for secuirity tests
+
+test_compile_and_run 0300 "test_aes128_cmac_encrypt" "" "" "" "test_aes128_cmac_encrypt" " --verbose" "finished with 0 errors" "segmentation fault|assertion" 3
+
+test_compile_and_run 0301 "test_aes128_ctr_decrypt" "" "" "" "test_aes128_ctr_decrypt" " --verbose" "finished with 0 errors" "segmentation fault|assertion" 3
+
+test_compile_and_run 0302 "test_aes128_ctr_encrypt" "" "" "" "test_aes128_ctr_encrypt" " --verbose" "finished with 0 errors" "segmentation fault|assertion" 3
+
+test_compile_and_run 0303 "test_secu_kenb" "" "" "" "test_secu_kenb" " --verbose" "finished with 0 errors" "segmentation fault|assertion" 3
+
+test_compile_and_run 0304 "test_secu_knas" "" "" "" "test_secu_knas" " --verbose" "finished with 0 errors" "segmentation fault|assertion" 3
+
+test_compile_and_run 0305 "test_secu_knas_encrypt_eea1" "" "" "" "test_secu_knas_encrypt_eea1" " --verbose" "finished with 0 errors" "segmentation fault|assertion"  3
+
+test_compile_and_run 0306 "test_secu_knas_encrypt_eea2" "" "" "" "test_secu_knas_encrypt_eea2" " --verbose" "finished with 0 errors" "segmentation fault|assertion"  3
+
+test_compile_and_run 0307 "test_secu_knas_encrypt_eia1" "" "" "" "test_secu_knas_encrypt_eia1" " --verbose" "finished with 0 errors" "segmentation fault|assertion"  3
 
-test_compile_and_run 0200 "oaisim_nos1" "" "$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1" "" "oaisim_nos1" " -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -b1 -u1 -n1000" "RRC_CONN" 3
+test_compile_and_run 0308 "test_secu_knas_encrypt_eia2" "" "" "" "test_secu_knas_encrypt_eia2" " --verbose" "finished with 0 errors" "segmentation fault|assertion"  3
 
-test_compile_and_run 0201 "oaisim_nos1" "" "$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1" "" "oaisim_nos1" " -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -b1 -u1 -a -n1000" "RRC_CONN" 3
+test_compile_and_run 0309 "test_kdf" "" "" "" "test_kdf" " --verbose" "finished with 0 errors" "segmentation fault|assertion" 3
 
 #test_compile_and_run 0200 "oaisim_nos1" "" "$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1" "" "oaisim_nos1" " -O /home/calisson/rohit/oai_snav/taets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -b1 -u1 -a " "RRC_CONN" 3
 
-- 
GitLab