summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/test/fapiTargetTest.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/hwpf/test/fapiTargetTest.C')
-rw-r--r--src/usr/hwpf/test/fapiTargetTest.C295
1 files changed, 295 insertions, 0 deletions
diff --git a/src/usr/hwpf/test/fapiTargetTest.C b/src/usr/hwpf/test/fapiTargetTest.C
new file mode 100644
index 000000000..634a42222
--- /dev/null
+++ b/src/usr/hwpf/test/fapiTargetTest.C
@@ -0,0 +1,295 @@
+/**
+ * @file fapitargetTest.C
+ *
+ * @brief Implements Target class unit test functions.
+ */
+
+/*
+ * Change Log ******************************************************************
+ * Flag Defect/Feature User Date Description
+ * ------ -------------- ---------- ----------- ----------------------------
+ * mjjones 04/13/2011 Created.
+ *
+ */
+
+#include <fapi.H>
+
+namespace fapi
+{
+
+//******************************************************************************
+// targetTest1
+//******************************************************************************
+uint32_t targetTest1()
+{
+ uint32_t l_result = 0;
+
+ // Create Target using default constructor
+ Target l_target;
+
+ // Ensure that the handle pointer is NULL
+ void * l_pHandle = l_target.get();
+
+ if (l_pHandle != NULL)
+ {
+ FAPI_ERR("targetTest1. Handle is not NULL");
+ l_result = 1;
+ }
+ else
+ {
+ // Ensure that the type is TARGET_TYPE_NONE
+ TargetType l_type = l_target.getType();
+
+ if (l_type != TARGET_TYPE_NONE)
+ {
+ FAPI_ERR("targetTest1. Type is 0x%x, expected NONE", l_type);
+ l_result = 2;
+ }
+ }
+
+ return l_result;
+}
+
+//******************************************************************************
+// targetTest2
+//******************************************************************************
+uint32_t targetTest2()
+{
+ uint32_t l_result = 0;
+ uint8_t l_handle = 7;
+ void * l_pHandle = reinterpret_cast<void *>(&l_handle);
+
+ // Create Target
+ Target l_target(TARGET_TYPE_DIMM, l_pHandle);
+
+ // Ensure that the handle pointer is as expected
+ void * l_pHandleCheck = l_target.get();
+
+ if (l_pHandleCheck != l_pHandle)
+ {
+ FAPI_ERR("targetTest2. Handle is not as expected");
+ l_result = 1;
+ }
+ else
+ {
+ // Ensure that the type is TARGET_TYPE_DIMM
+ TargetType l_type = l_target.getType();
+
+ if (l_type != TARGET_TYPE_DIMM)
+ {
+ FAPI_ERR("targetTest2. Type is 0x%x, expected DIMM", l_type);
+ l_result = 2;
+ }
+ }
+
+ // Set the handle pointer to NULL to prevent any problem on destruction
+ l_target.set(NULL);
+
+ return l_result;
+}
+
+//******************************************************************************
+// targetTest3
+//******************************************************************************
+uint32_t targetTest3()
+{
+ uint32_t l_result = 0;
+
+ // Create Target using default constructor
+ Target l_target;
+
+ // Set the handle
+ uint8_t l_handle = 7;
+ void * l_pHandle = reinterpret_cast<void *>(&l_handle);
+ l_target.set(l_pHandle);
+
+ // Ensure that the handle pointer is as expected
+ void * l_pHandleCheck = l_target.get();
+
+ if (l_pHandleCheck != l_pHandle)
+ {
+ FAPI_ERR("targetTest3. Handle is not as expected");
+ l_result = 1;
+ }
+ else
+ {
+ // Set the type
+ l_target.setType(TARGET_TYPE_DIMM);
+
+ // Ensure that the type is TARGET_TYPE_DIMM
+ TargetType l_type = l_target.getType();
+
+ if (l_type != TARGET_TYPE_DIMM)
+ {
+ FAPI_ERR("targetTest3. Type is 0x%x, expected DIMM", l_type);
+ l_result = 2;
+ }
+ }
+
+ return l_result;
+}
+
+//******************************************************************************
+// targetTest4
+//******************************************************************************
+uint32_t targetTest4()
+{
+ uint32_t l_result = 0;
+
+ // Create Target
+ uint8_t l_handle = 7;
+ void * l_pHandle = reinterpret_cast<void *>(&l_handle);
+ Target l_target(TARGET_TYPE_DIMM, l_pHandle);
+
+ // Create Target using copy constructor
+ Target l_target2(l_target);
+
+ // Ensure that the target types are the same
+ TargetType l_type = l_target.getType();
+ TargetType l_type2 = l_target2.getType();
+
+ if (l_type != l_type2)
+ {
+ FAPI_ERR("targetTest4. Types are not the same (0x%x, 0x%x)", l_type,
+ l_type2);
+ l_result = 1;
+ }
+ else
+ {
+ // Ensure that the handles are the same
+ void * l_han1 = l_target.get();
+ void * l_han2 = l_target2.get();
+
+ if (l_han1 != l_han2)
+ {
+ FAPI_ERR("targetTest4. Handles are not the same");
+ l_result = 2;
+ }
+ }
+
+ return l_result;
+}
+
+//******************************************************************************
+// targetTest5
+//******************************************************************************
+uint32_t targetTest5()
+{
+ uint32_t l_result = 0;
+
+ // Create Target
+ uint8_t l_handle = 7;
+ void * l_pHandle = reinterpret_cast<void *>(&l_handle);
+ Target l_target(TARGET_TYPE_DIMM, l_pHandle);
+
+ // Create Target using assignment operator
+ Target l_target2;
+ l_target2 = l_target;
+
+ // Ensure that the target types are the same
+ TargetType l_type = l_target.getType();
+ TargetType l_type2 = l_target2.getType();
+
+ if (l_type != l_type2)
+ {
+ FAPI_ERR("targetTest5. Types are not the same (0x%x, 0x%x)", l_type,
+ l_type2);
+ l_result = 1;
+ }
+ else
+ {
+ // Ensure that the handles are the same
+ void * l_han1 = l_target.get();
+ void * l_han2 = l_target2.get();
+
+ if (l_han1 != l_han2)
+ {
+ FAPI_ERR("targetTest5. Handles are not the same");
+ l_result = 2;
+ }
+ }
+
+ return l_result;
+}
+
+//******************************************************************************
+// targetTest6
+//******************************************************************************
+uint32_t targetTest6()
+{
+ uint32_t l_result = 0;
+
+ // Create similar Targets
+ uint8_t l_handle = 7;
+ void * l_pHandle = reinterpret_cast<void *>(&l_handle);
+ Target l_target(TARGET_TYPE_DIMM, l_pHandle);
+ Target l_target2(TARGET_TYPE_DIMM, l_pHandle);
+
+ // Ensure that the equality comparison returns true
+ if (!(l_target == l_target2))
+ {
+ FAPI_ERR("targetTest6. 1. Equality comparison false");
+ l_result = 1;
+ }
+ else
+ {
+ // Ensure that the inequality comparison returns false
+ if (l_target != l_target2)
+ {
+ FAPI_ERR("targetTest6. 2. Inequality comparison true");
+ l_result = 2;
+ }
+ else
+ {
+ // Change the target type of l_target2
+ (void)l_target2.setType(TARGET_TYPE_PROC_CHIP);
+
+ // Ensure that the equality comparison returns false
+ if (l_target == l_target2)
+ {
+ FAPI_ERR("targetTest6. 3. Equality comparison true");
+ l_result = 3;
+ }
+ else
+ {
+ // Ensure that the inequality comparison returns true
+ if (!(l_target != l_target2))
+ {
+ FAPI_ERR("targetTest6. 4. Inequality comparison false");
+ l_result = 4;
+ }
+ else
+ {
+ // Reset the target type of l_target2
+ (void)l_target2.setType(TARGET_TYPE_DIMM);
+
+ // Change the handle of l_target
+ uint8_t l_handle2 = 7;
+ void * l_pHandle2 = reinterpret_cast<void *>(&l_handle2);
+ (void)l_target.set(l_pHandle2);
+
+ // Ensure that the equality comparison returns false
+ if (l_target == l_target2)
+ {
+ FAPI_ERR("targetTest6. 5. Equality comparison true");
+ l_result = 5;
+ }
+ else
+ {
+ // Ensure that the inequality comparison returns true
+ if (!(l_target != l_target2))
+ {
+ FAPI_ERR("targetTest6. 6. Inequality comparison "
+ "false");
+ l_result = 6;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return l_result;
+}
+
+}
OpenPOWER on IntegriCloud