diff options
author | Mike Jones <mjjones@us.ibm.com> | 2013-03-13 20:39:31 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-04-15 15:42:50 -0500 |
commit | 54a7754855469231b10e644abaa5b3f367fcf00e (patch) | |
tree | b3439b41b90e9b6d315ad43cf3d463e64fc97612 /src/usr/hwpf/test/fapiAttrTest.C | |
parent | 6e42444a52f2910a0a6f9a898c2ba4a9e8201a17 (diff) | |
download | talos-hostboot-54a7754855469231b10e644abaa5b3f367fcf00e.tar.gz talos-hostboot-54a7754855469231b10e644abaa5b3f367fcf00e.zip |
Extend Attribute Override/Sync to work on Targeting attributes
Change-Id: Icf8d84e741212f31c1065146ac1ea96c4c7d75c5
RTC: 51707
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/3548
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Tested-by: Jenkins Server
Diffstat (limited to 'src/usr/hwpf/test/fapiAttrTest.C')
-rw-r--r-- | src/usr/hwpf/test/fapiAttrTest.C | 585 |
1 files changed, 585 insertions, 0 deletions
diff --git a/src/usr/hwpf/test/fapiAttrTest.C b/src/usr/hwpf/test/fapiAttrTest.C new file mode 100644 index 000000000..1a97afaf3 --- /dev/null +++ b/src/usr/hwpf/test/fapiAttrTest.C @@ -0,0 +1,585 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/usr/hwpf/test/fapiAttrTest.C $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 2013 */ +/* */ +/* p1 */ +/* */ +/* Object Code Only (OCO) source materials */ +/* Licensed Internal Code Source Materials */ +/* IBM HostBoot Licensed Internal Code */ +/* */ +/* The source code for this program is not published or otherwise */ +/* divested of its trade secrets, irrespective of what has been */ +/* deposited with the U.S. Copyright Office. */ +/* */ +/* Origin: 30 */ +/* */ +/* IBM_PROLOG_END_TAG */ +/** + * @file fapiAttrTest.C + * + * @brief Implements FAPI Attribute unit test functions. + * + * This is provided by FAPI and can be pulled into any unit test framework. + * Each unit test returns 0 for success, else error value. + */ + +/* + * Change Log ****************************************************************** + * Flag Defect/Feature User Date Description + * ------ -------------- ---------- ----------- ---------------------------- + * mjjones 02/15/2013 Created. Ported from HWP. + */ + +#include <fapi.H> + +namespace fapi +{ + +//****************************************************************************** +// attrTest1. Test ATTR_SCRATCH_UINT8_1 +//****************************************************************************** +uint32_t attrTest1() +{ + uint32_t l_result = 0; + + do + { + fapi::ReturnCode l_rc; + + uint8_t l_uint8 = 0x87; + + // Test set + l_rc = FAPI_ATTR_SET(ATTR_SCRATCH_UINT8_1, NULL, l_uint8); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest1: ATTR_SCRATCH_UINT8_1. Error from SET (1)"); + l_result = 1; + break; + } + + // Test get + l_uint8 = 8; + l_rc = FAPI_ATTR_GET(ATTR_SCRATCH_UINT8_1, NULL, l_uint8); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest1: ATTR_SCRATCH_UINT8_1. Error from GET (2)"); + l_result = 2; + break; + } + + // Check value + if (l_uint8 != 0x87) + { + FAPI_ERR("attrTest1: ATTR_SCRATCH_UINT8_1. GET returned %d (3)", + l_uint8); + l_result = 3; + break; + } + + // Set to zero + l_uint8 = 0; + l_rc = FAPI_ATTR_SET(ATTR_SCRATCH_UINT8_1, NULL, l_uint8); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest1: ATTR_SCRATCH_UINT8_1. Error from SET (4)"); + l_result = 4; + break; + } + + } while (0); + + if (!l_result) + { + FAPI_INF("attrTest1: unit test success"); + } + return l_result; +} + +//****************************************************************************** +// attrTest2. Test ATTR_SCRATCH_UINT32_1 +//****************************************************************************** +uint32_t attrTest2() +{ + uint32_t l_result = 0; + + do + { + fapi::ReturnCode l_rc; + + uint32_t l_uint32 = 0x80000001; + + // Test set + l_rc = FAPI_ATTR_SET(ATTR_SCRATCH_UINT32_1, NULL, l_uint32); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest2: ATTR_SCRATCH_UINT32_1. Error from SET (1)"); + l_result = 1; + break; + } + + // Test get + l_uint32 = 8; + l_rc = FAPI_ATTR_GET(ATTR_SCRATCH_UINT32_1, NULL, l_uint32); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest2: ATTR_SCRATCH_UINT32_1. Error from GET (2)"); + l_result = 2; + break; + } + + // Check value + if (l_uint32 != 0x80000001) + { + FAPI_ERR("attrTest2: ATTR_SCRATCH_UINT32_1. GET returned %d (3)", + l_uint32); + l_result = 3; + break; + } + + // Set to zero + l_uint32 = 0; + l_rc = FAPI_ATTR_SET(ATTR_SCRATCH_UINT32_1, NULL, l_uint32); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest2: ATTR_SCRATCH_UINT32_1. Error from SET (4)"); + l_result = 4; + break; + } + + } while (0); + + if (!l_result) + { + FAPI_INF("attrTest2: unit test success"); + } + return l_result; +} + +//****************************************************************************** +// attrTest3. Test ATTR_SCRATCH_UINT64_1 +//****************************************************************************** +uint32_t attrTest3() +{ + uint32_t l_result = 0; + + do + { + fapi::ReturnCode l_rc; + + uint64_t l_uint64 = 3; + + // Test set + l_rc = FAPI_ATTR_SET(ATTR_SCRATCH_UINT64_1, NULL, l_uint64); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest3: ATTR_SCRATCH_UINT64_1. Error from SET (1)"); + l_result = 1; + break; + } + + // Test get + l_uint64 = 8; + l_rc = FAPI_ATTR_GET(ATTR_SCRATCH_UINT64_1, NULL, l_uint64); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest3: ATTR_SCRATCH_UINT64_1. Error from GET (2)"); + l_result = 2; + break; + } + + // Check value + if (l_uint64 != 3) + { + FAPI_ERR("attrTest3: ATTR_SCRATCH_UINT64_1. GET returned %d (3)", + static_cast<uint32_t>(l_uint64)); + l_result = 3; + break; + } + + // Set to zero + l_uint64 = 0; + l_rc = FAPI_ATTR_SET(ATTR_SCRATCH_UINT64_1, NULL, l_uint64); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest3: ATTR_SCRATCH_UINT64_1. Error from SET (4)"); + l_result = 4; + break; + } + + } while (0); + + if (!l_result) + { + FAPI_INF("attrTest3: unit test success"); + } + return l_result; +} + +//****************************************************************************** +// attrTest4. Test ATTR_SCRATCH_UINT8_ARRAY_1 +//****************************************************************************** +uint32_t attrTest4() +{ + uint32_t l_result = 0; + + do + { + fapi::ReturnCode l_rc; + + uint8_t l_uint8array1[32]; + + // Test set + for (uint32_t i = 0; i < 32; i++) + { + l_uint8array1[i] = i + 1; + } + + l_rc = FAPI_ATTR_SET(ATTR_SCRATCH_UINT8_ARRAY_1, NULL, l_uint8array1); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest4: ATTR_SCRATCH_UINT8_ARRAY_1. Error from SET (1)"); + l_result = 1; + break; + } + + // Test get + for (uint32_t i = 0; i < 32; i++) + { + l_uint8array1[i] = 0; + } + + l_rc = FAPI_ATTR_GET(ATTR_SCRATCH_UINT8_ARRAY_1, NULL, l_uint8array1); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest4: ATTR_SCRATCH_UINT8_ARRAY_1. Error from GET (2)"); + l_result = 2; + break; + } + + // Check value + for (uint32_t i = 0; i < 32; i++) + { + if (l_uint8array1[i] != (i + 1)) + { + FAPI_ERR("attrTest4: ATTR_SCRATCH_UINT8_ARRAY_1. GET [%d] returned %d (3)", + i, l_uint8array1[i]); + l_result = 3; + break; + } + } + + if (l_result) + { + break; + } + + // Set to zero + for (uint32_t i = 0; i < 32; i++) + { + l_uint8array1[i] = 0; + } + + l_rc = FAPI_ATTR_SET(ATTR_SCRATCH_UINT8_ARRAY_1, NULL, l_uint8array1); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest4: ATTR_SCRATCH_UINT8_ARRAY_1. Error from SET (4)"); + l_result = 4; + break; + } + + } while (0); + + if (!l_result) + { + FAPI_INF("attrTest4: unit test success"); + } + return l_result; +} + +//****************************************************************************** +// attrTest5. Test ATTR_SCRATCH_UINT32_ARRAY_2 +//****************************************************************************** +uint32_t attrTest5() +{ + uint32_t l_result = 0; + + do + { + fapi::ReturnCode l_rc; + + uint32_t l_uint32 = 1; + uint32_t l_uint32array2[2][3]; + + // Test set + l_uint32 = 1; + for (uint32_t i = 0; i < 2; i++) + { + for (uint32_t j = 0; j < 3; j++) + { + l_uint32array2[i][j] = l_uint32++; + } + } + + l_rc = FAPI_ATTR_SET(ATTR_SCRATCH_UINT32_ARRAY_2, NULL, l_uint32array2); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest5: ATTR_SCRATCH_UINT32_ARRAY_2. Error from SET (1)"); + l_result = 1; + break; + } + + // Test get + for (uint32_t i = 0; i < 2; i++) + { + for (uint32_t j = 0; j < 3; j++) + { + l_uint32array2[i][j] = 0; + } + } + + l_rc = FAPI_ATTR_GET(ATTR_SCRATCH_UINT32_ARRAY_2, NULL, l_uint32array2); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest5: ATTR_SCRATCH_UINT32_ARRAY_2. Error from GET (2)"); + l_result = 2; + break; + } + + // Check value + l_uint32 = 1; + for (uint32_t i = 0; i < 2; i++) + { + for (uint32_t j = 0; j < 3; j++) + { + if (l_uint32array2[i][j] != l_uint32++) + { + FAPI_ERR("attrTest5: ATTR_SCRATCH_UINT32_ARRAY_2. GET [%d:%d] returned %d (3)", + i, j, l_uint32array2[i][j]); + l_result = 3; + break; + } + } + if (l_result) + { + break; + } + } + + if (l_result) + { + break; + } + + // Set to zero + for (uint32_t i = 0; i < 2; i++) + { + for (uint32_t j = 0; j < 3; j++) + { + l_uint32array2[i][j]= 0; + } + } + + l_rc = FAPI_ATTR_SET(ATTR_SCRATCH_UINT32_ARRAY_2, NULL, l_uint32array2); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest5: ATTR_SCRATCH_UINT32_ARRAY_2. Error from SET (4)"); + l_result = 4; + break; + } + + } while (0); + + if (!l_result) + { + FAPI_INF("attrTest5: unit test success"); + } + return l_result; +} + +//****************************************************************************** +// attrTest6. Test ATTR_SCRATCH_UINT64_ARRAY_2 +//****************************************************************************** +uint32_t attrTest6() +{ + uint32_t l_result = 0; + + do + { + fapi::ReturnCode l_rc; + + uint64_t l_uint64 = 1; + uint64_t l_uint64array2[2][2]; + + // Test set + l_uint64 = 1; + for (uint32_t i = 0; i < 2; i++) + { + for (uint32_t j = 0; j < 2; j++) + { + l_uint64array2[i][j] = l_uint64++; + } + } + + l_rc = FAPI_ATTR_SET(ATTR_SCRATCH_UINT64_ARRAY_2, NULL, l_uint64array2); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest6: ATTR_SCRATCH_UINT64_ARRAY_2. Error from SET (1)"); + l_result = 1; + break; + } + + // Test get + for (uint32_t i = 0; i < 2; i++) + { + for (uint32_t j = 0; j < 2; j++) + { + l_uint64array2[i][j] = 0; + } + } + + l_rc = FAPI_ATTR_GET(ATTR_SCRATCH_UINT64_ARRAY_2, NULL, l_uint64array2); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest6: ATTR_SCRATCH_UINT64_ARRAY_2. Error from GET (2)"); + l_result = 2; + break; + } + + // Check value + l_uint64 = 1; + for (uint32_t i = 0; i < 2; i++) + { + for (uint32_t j = 0; j < 2; j++) + { + if (l_uint64array2[i][j] != l_uint64++) + { + FAPI_ERR("attrTest6: ATTR_SCRATCH_UINT64_ARRAY_2. GET [%d:%d] returned %d (3)", + i, j, static_cast<uint32_t>(l_uint64array2[i][j])); + l_result = 3; + break; + } + } + if (l_result) + { + break; + } + } + + if (l_result) + { + break; + } + + // Set to zero + for (uint32_t i = 0; i < 2; i++) + { + for (uint32_t j = 0; j < 2; j++) + { + l_uint64array2[i][j]= 0; + } + } + + l_rc = FAPI_ATTR_SET(ATTR_SCRATCH_UINT64_ARRAY_2, NULL, l_uint64array2); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest6: ATTR_SCRATCH_UINT64_ARRAY_2. Error from SET (4)"); + l_result = 4; + break; + } + } while (0); + + if (!l_result) + { + FAPI_INF("attrTest6: unit test success"); + } + return l_result; +} + +//****************************************************************************** +// attrTest7. Test setting and getting an enum value from a scratch attribute +//****************************************************************************** +uint32_t attrTest7() +{ + uint32_t l_result = 0; + + do + { + fapi::ReturnCode l_rc; + + uint64_t l_uint64 = fapi::ENUM_ATTR_SCRATCH_UINT64_2_VAL_C; + + // Test set + l_rc = FAPI_ATTR_SET(ATTR_SCRATCH_UINT64_2, NULL, l_uint64); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest7: ATTR_SCRATCH_UINT64_2. Error from SET (enum) (1)"); + l_result = 1; + break; + } + + // Test get + l_uint64 = 0; + l_rc = FAPI_ATTR_GET(ATTR_SCRATCH_UINT64_2, NULL, l_uint64); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest7: ATTR_SCRATCH_UINT64_2. Error from GET (enum) (2)"); + l_result = 2; + break; + } + + // Check value + if (l_uint64 != fapi::ENUM_ATTR_SCRATCH_UINT64_2_VAL_C) + { + FAPI_ERR("attrTest7: ATTR_SCRATCH_UINT64_2. GET returned %d (enum) (3)", + static_cast<uint32_t>(l_uint64)); + l_result = 3; + break; + } + + // Set to zero + l_uint64 = 0; + l_rc = FAPI_ATTR_SET(ATTR_SCRATCH_UINT64_2, NULL, l_uint64); + if (l_rc) + { + fapiLogError(l_rc); + FAPI_ERR("attrTest7: ATTR_SCRATCH_UINT64_2. Error from SET (enum2) (4)"); + l_result = 4; + break; + } + + } while (0); + + if (!l_result) + { + FAPI_INF("attrTest7: unit test success"); + } + return l_result; +} + +} |