diff options
author | Patrick Williams <iawillia@us.ibm.com> | 2012-08-07 15:42:05 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2012-08-15 12:27:55 -0500 |
commit | eedc0bb29e002418c53a13a96030a980a4f6b26b (patch) | |
tree | d09470895bb63ff41dc531049d095408d7bc93bc /src/usr/testcore/lib/string.H | |
parent | a346e4fa854de69dcd6a0ebfddf4c5530a175504 (diff) | |
download | talos-hostboot-eedc0bb29e002418c53a13a96030a980a4f6b26b.tar.gz talos-hostboot-eedc0bb29e002418c53a13a96030a980a4f6b26b.zip |
Additional needed utilities for PRD port.
Implement assorted utilities and STL templates for the
port of existing PRD code from FSP:
* strcat / strncat
* std::generate_n
* std::transform
* std::back_inserter
RTC: 44531
Change-Id: I9992f78222cbc2f74da15eea74c9b2cad602ad59
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/1501
Tested-by: Jenkins Server
Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com>
Reviewed-by: Christopher T. Phan <cphan@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/testcore/lib/string.H')
-rw-r--r-- | src/usr/testcore/lib/string.H | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/src/usr/testcore/lib/string.H b/src/usr/testcore/lib/string.H new file mode 100644 index 000000000..fb6906166 --- /dev/null +++ b/src/usr/testcore/lib/string.H @@ -0,0 +1,91 @@ +/* IBM_PROLOG_BEGIN_TAG + * This is an automatically generated prolog. + * + * $Source: src/usr/testcore/lib/string.H $ + * + * IBM CONFIDENTIAL + * + * COPYRIGHT International Business Machines Corp. 2012 + * + * 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 other- + * wise divested of its trade secrets, irrespective of what has + * been deposited with the U.S. Copyright Office. + * + * Origin: 30 + * + * IBM_PROLOG_END_TAG + */ +#ifndef __TESTCORE_LIB_STRING_H +#define __TESTCORE_LIB_STRING_H + +#include <string.h> + +/** @file string.H + * @brief Test cases for the string.h system library header. + */ + +class StringTest : public CxxTest::TestSuite +{ + private: + static const char * string1; + static const char * string2; + + public: + /** + * Tests for strcat. + */ + void testStrcat() + { + char a[64]; + + size_t len1 = strlen(string1); + + strcpy(a, string1); + strcat(a, string2); + + if (0 != memcmp(a, string1, len1)) + { + TS_FAIL("strcat: String1 contents not copied properly."); + } + if (0 != strcmp(&a[len1], string2)) + { + TS_FAIL("strcat: String2 contents not cat'd properly."); + } + } + + /** + * Tests for strncat. + */ + void testStrncat() + { + char a[64]; + memset(a, '\0', sizeof(a)); + + size_t len1 = strlen(string1); + + strcpy(a, string1); + strncat(a, string2, 7); + + if (0 != memcmp(a, string1, len1)) + { + TS_FAIL("strncat: String1 contents not copied properly."); + } + if (0 != strcmp(&a[len1], "Another")) + { + TS_FAIL("strncat: String2 contents not cat'd properly."); + } + + } +}; + +const char * StringTest::string1 = "This is a string."; +const char * StringTest::string2 = "Another string am I."; + + +#endif |