| /******************************************************************************* |
| * Copyright (c) 2016 protos software gmbh (http://www.protos.de). |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * CONTRIBUTORS: |
| * Thomas Schuetz (initial contribution) |
| * |
| *******************************************************************************/ |
| |
| #include "StaticStringTest.h" |
| |
| #include "common/containers/StaticString.h" |
| #include "util/etAssert.h" |
| |
| using namespace etRuntime; |
| |
| void StaticStringTest::testConstructors(void) { |
| // default constructors for simple types |
| StaticString<5> string1; // nothing happens, but should not crash |
| StaticString<10> string2("eTrice"); |
| StaticString<8> string3(string2); // copy construction for unequal sizes |
| |
| EXPECT_EQUAL_INT8(m_caseId, "default string is not 0 at pos 0", 0, |
| string1[0]); |
| EXPECT_EQUAL_INT8(m_caseId, "value for string2 at pos 2 is wrong", 'r', |
| string2[2]); |
| EXPECT_EQUAL_INT8(m_caseId, "value for string2 at pos 4 is wrong", 'c', |
| string2[4]); |
| |
| EXPECT_EQUAL_INT8(m_caseId, "copy constructor for string3 wrong", 'e', |
| string3[0]); |
| EXPECT_EQUAL_INT8(m_caseId, "copy constructor for string3 wrong", 'r', |
| string3[2]); |
| EXPECT_EQUAL_INT8(m_caseId, "copy constructor for string3 wrong", 'c', |
| string3[4]); |
| } |
| |
| void StaticStringTest::testSettersAndGetters(void) { |
| StaticString<8> string1("eTrice"); // nothing happens, but should not crash |
| |
| // getSize |
| EXPECT_EQUAL_INT8(m_caseId, "length wrong", 6, string1.length()); |
| |
| // getData |
| EXPECT_EQUAL_INT8(m_caseId, "getData wrong", 'i', string1.getData()[3]); |
| } |
| |
| void StaticStringTest::testOperators(void) { |
| StaticString<8> string1("eTrice"); // nothing happens, but should not crash |
| |
| StaticString<8> string2; |
| string2 = string1; |
| EXPECT_TRUE(m_caseId, "strings should be equal", std::strcmp(string1.getData(), string2.getData())==0); |
| |
| string2 = "ROOM"; |
| EXPECT_TRUE(m_caseId, "strings should be equal", std::strcmp("ROOM", string2.getData())==0); |
| |
| StaticString<32> string3("ROOM with "); |
| string3 += "eTrice"; |
| EXPECT_TRUE(m_caseId, "strings should be equal", std::strcmp("ROOM with eTrice", string3.getData())==0); |
| |
| StaticString<32> string4("ROOM with "); |
| StaticString<32> string5("eTrice"); |
| string4 += string5; |
| EXPECT_TRUE(m_caseId, "strings should be equal", std::strcmp("ROOM with eTrice", string4.getData())==0); |
| |
| StaticString<32> string6("ROOM with "); |
| StaticString<32> string7("eTrice"); |
| StaticString<32> string8 = string6 + string7; |
| EXPECT_TRUE(m_caseId, "strings should be equal", std::strcmp("ROOM with eTrice", string8.getData())==0); |
| |
| StaticString<32> string9("ROOM with "); |
| StaticString<32> string10 = string9 + "eTrice"; |
| EXPECT_TRUE(m_caseId, "strings should be equal", std::strcmp("ROOM with eTrice", string10.getData())==0); |
| |
| StaticString<32> string11("something"); |
| EXPECT_TRUE(m_caseId, "strings should be equal", string11=="something"); |
| |
| StaticString<32> string12("something"); |
| EXPECT_TRUE(m_caseId, "strings should be equal", string11==string12); |
| } |
| |
| void StaticStringTest::runAllTestCases() { |
| ADD_TESTCASE_CPP(testConstructors) |
| ADD_TESTCASE_CPP(testSettersAndGetters) |
| ADD_TESTCASE_CPP(testOperators) |
| } |