blob: 6b29ea8051552dddb7e2acd976c8509289319b7f [file] [log] [blame]
/*******************************************************************************
* 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();
}