summaryrefslogtreecommitdiffstats
path: root/src/test/testExecutorPSU.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/testExecutorPSU.py')
-rw-r--r--src/test/testExecutorPSU.py140
1 files changed, 140 insertions, 0 deletions
diff --git a/src/test/testExecutorPSU.py b/src/test/testExecutorPSU.py
new file mode 100644
index 00000000..5c58a954
--- /dev/null
+++ b/src/test/testExecutorPSU.py
@@ -0,0 +1,140 @@
+#!/usr/bin/python
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/test/testExecutorPSU.py $
+#
+# OpenPOWER sbe Project
+#
+# Contributors Listed Below - COPYRIGHT 2016
+#
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+#
+# IBM_PROLOG_END_TAG
+'''
+#############################################################
+# @file testExecutor.py
+# @author: George Keishing <gkeishin@in.ibm.com>
+# @brief Framework to test Host SBE interface on simics
+#
+# Created on March 29, 2016
+# ----------------------------------------------------
+# @version Developer Date Description
+# ----------------------------------------------------
+# 1.0 gkeishin 29/03/16 Initial create
+#############################################################
+'''
+
+import testPSUUtil
+import testRegistry as reg
+
+#-------------------------------
+# This is a Test Expected Data
+#-------------------------------
+'''
+This data are the values or strings that needs to be validated for the test.
+'''
+SBE_TEST_EXPECT_DEFAULT = "None"
+
+HOST_TEST_EXPECT_DEFAULT = "None"
+HOST_TEST_EXPECT_MBOX04 = "0000000000F0D101"
+
+'''
+The test data is designed to accomodate as many as new entries a test needs
+and can also increase the field in it to add new action associated with it.
+'''
+#---------------------
+# SBE side test data
+#---------------------
+'''
+Every test data entry itself represent an action associated with it's data.
+The data is validated as it executes.
+
+The Test Expected Data if "None" signifies that this test entry is not to be
+validated else it would validated against the expected value in the field.
+On success returns macro SUCCESS else FAILURE
+
+Refer Documentation for the data used here directly.
+'''
+
+sbe_test_data = (
+ #-----------------------------------------------------------------------------------------------------
+ # OP Reg Value size Test Expected Data Description
+ #-----------------------------------------------------------------------------------------------------
+ ["write", reg.REG_MBOX0, "0000030100F0D101", 8, SBE_TEST_EXPECT_DEFAULT, "Writing to MBOX0 address"],
+ ["write", reg.REG_MBOX1, "0000000000001000", 8, SBE_TEST_EXPECT_DEFAULT, "Writing to MBOX1 address"],
+ ["write", reg.PSU_SBE_DOORBELL_REG_WO_OR, "8000000000000000", 8, SBE_TEST_EXPECT_DEFAULT, "Update SBE Doorbell register to interrupt SBE"],
+ )
+
+#---------------------
+# Host side test data
+#---------------------
+'''
+This Host data indicates that this will validate the SBE test set execution
+if the overall test is a success or failure.
+
+It can have as many entries which are needed to be validated.
+'''
+host_test_data = (
+ #----------------------------------------------------------------------------------------------------------------
+ # OP Reg Value size Test Expected Data Description
+ #----------------------------------------------------------------------------------------------------------------
+ ["read", reg.REG_MBOX4, "0000000000000000", 8, HOST_TEST_EXPECT_MBOX04, "Reading Host MBOX4 data to Validate"],
+ )
+
+'''
+User can define a function which does some task and returns SUCCESS or FAILURE.
+one can simply call that function like any OP in the test data and still work.
+
+Define those function in testClassUtil.py context for this to work.
+'''
+
+SAMPLE_TEST_EXPECT_FUNC = "None"
+PARM_DATA = [1, 2, 3, 4] # sample 4 input paramters
+sample_test_data = (
+ #----------------------------------------------------------------------------------------------------------------
+ # OP function Name Parameters NA Test Expected Data Description
+ #----------------------------------------------------------------------------------------------------------------
+ ["func", "classUtilFuncSample", PARM_DATA, 0, SAMPLE_TEST_EXPECT_FUNC, "Load func and do task"],
+ )
+
+#-------------------------
+# Main Function
+#-------------------------
+def main():
+
+ # Intialize the class obj instances
+ print "\n Initializing Registry instances ...."
+ regObj = testPSUUtil.registry() # Registry obj def for operation
+
+ print "\n Execute SBE Test set [ PSU ] ...\n"
+ # Sim obj Target Test set Raise Exception
+ rc_test = regObj.ExecuteTestOp(testPSUUtil.simSbeObj,sbe_test_data, True)
+ if rc_test != testPSUUtil.SUCCESS:
+ print " SBE Test data set .. [ Failed ] .."
+ else:
+ print " SBE Test data set .. [ OK ] "
+ print "\n Poll on Host side for INTR ...\n"
+ # Sim obj Target Test set Max timedout
+ rc_intr = regObj.pollingOn(testPSUUtil.simSbeObj,host_test_data,20)
+ if rc_intr == testPSUUtil.SUCCESS:
+ print " Interrupt Event Recieved .. Success !!"
+ else:
+ print " Interrupt not Recieved.. Exiting .."
+
+ print "\n"
+
+if __name__=="__main__":
+ main()
+
OpenPOWER on IntegriCloud