| /******************************************************************************* |
| * Copyright (c) 2011 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 2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * CONTRIBUTORS: |
| * Thomas Schuetz (initial contribution) |
| * |
| *******************************************************************************/ |
| |
| |
| /* |
| * TestEtUnit.c |
| * |
| * Created on: 16.01.2012 |
| * Author: tschuetz |
| */ |
| |
| #include "TestEtUnit.h" |
| #include "etUnit/etUnit.h" |
| |
| #include <assert.h> |
| |
| void TestEtUnit_Expect(etInt16 id){ |
| EXPECT_TRUE(id, "EXPECT_TRUE", ET_TRUE); |
| EXPECT_FALSE(id, "EXPECT_FALSE", ET_FALSE); |
| |
| /* signed integer values */ |
| EXPECT_EQUAL_INT8(id, "EXPECT_EQUAL_INT8", -123, -123); |
| EXPECT_EQUAL_INT16(id, "EXPECT_EQUAL_INT16", -12345, -12345); |
| EXPECT_EQUAL_INT32(id, "EXPECT_EQUAL_INT32", -1234567, -1234567); |
| |
| /* unsigned integer values */ |
| EXPECT_EQUAL_UINT8(id, "EXPECT_EQUAL_INT8", 123, 123); |
| EXPECT_EQUAL_UINT16(id, "EXPECT_EQUAL_INT16", 12345, 12345); |
| EXPECT_EQUAL_UINT32(id, "EXPECT_EQUAL_INT32", 1234567, 1234567); |
| |
| /* float values */ |
| #ifdef ET_FLOAT32 |
| EXPECT_EQUAL_FLOAT32(id, "EXPECT_EQUAL_FLOAT32", (etFloat32) 123.456, (etFloat32) 123.456, (etFloat32) 0.0001); |
| EXPECT_EQUAL_FLOAT32(id, "EXPECT_EQUAL_FLOAT32", (etFloat32) 123.456, (etFloat32) 123.456, (etFloat32) 0.0001); |
| #endif |
| |
| /* Pointers */ |
| etUInt16 value; |
| etUInt16* valuePtr = &value; |
| |
| EXPECT_EQUAL_PTR(id, "EXPECT_EQUAL_PTR", &value, valuePtr); |
| } |
| |
| |
| void TestEtUnit_Expect_Order(etInt16 id){ |
| etInt16 list[] = {1,2,3,4}; |
| EXPECT_ORDER_START(id, list, 4); |
| EXPECT_ORDER(id, "id=1", 1); |
| EXPECT_ORDER(id, "id=2", 2); |
| EXPECT_ORDER(id, "id=3", 3); |
| EXPECT_ORDER_END(id, "id=4", 4); |
| } |
| |
| void TestEtUnit_Parallel_TestCase(){ |
| etUnit_setParallelTestCases(true); |
| { |
| etInt16 id1 = etUnit_openTestCase("Parallel_Tc_1"); |
| etInt16 id2 = etUnit_openTestCase("Parallel_Tc_2"); |
| |
| assert(id1 > 0); |
| EXPECT_TRUE(id1, "id > 0", id1 > 0); |
| assert(id2 > 0); |
| EXPECT_TRUE(id2, "id > 0", id2 > 0); |
| assert(id2 == id1 + 1); |
| EXPECT_TRUE(id2, "id incremented", id2 == id1 + 1); |
| |
| etUnit_closeTestCase(id1); |
| etUnit_closeTestCase(id2); |
| } |
| etUnit_setParallelTestCases(false); |
| } |
| |
| void TestEtUnit_Singleton_TestCase(){ |
| etInt16 id = etUnit_openTestCase("Singleton_Tc_1"); |
| assert(id == 0); |
| ETUNIT_EQUAL_INT("id=0", id, 0); |
| etUnit_closeTestCase(0); |
| |
| id = etUnit_openTestCase("Singleton_Tc_2"); |
| assert(id == 0); |
| ETUNIT_FALSE("id=0", id); |
| etUnit_closeTestCase(0); |
| } |
| |
| void TestEtUnit_Skip_TestCase(){ |
| etInt16 id = etUnit_openTestCase("SkipTestcase"); |
| assert(id == 0); |
| etUnit_skipTestCase(0, "skip msg"); |
| } |
| |
| void TestEtUnit_runSuite(void){ |
| etUnit_openTestSuite("org.eclipse.etrice.runtime.c.tests.TestEtUnit"); |
| // test parallel first due test case number restriction |
| TestEtUnit_Parallel_TestCase(); |
| TestEtUnit_Singleton_TestCase(); |
| TestEtUnit_Skip_TestCase(); |
| ADD_TESTCASE(TestEtUnit_Expect_Order); |
| ADD_TESTCASE(TestEtUnit_Expect); |
| etUnit_closeTestSuite(); |
| } |
| |
| |