123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323 |
- /**
- * Copyright (c) 2017 committers of YAKINDU and others.
- * 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:
- * committers of YAKINDU - initial API and implementation
- */
- #include "gtest/gtest.h"
- #include "Operations.h"
- #include "OperationsRequired.h"
- class InternalOperation3aMock{
- public:
- sc_real (InternalOperation3aMock::*internalOperation3aBehavior)(sc_real);
- sc_real internalOperation3a1(const sc_real param1){
- return (param1+1.0);
- }
- void setInternalOperation3aBehavior(sc_real (InternalOperation3aMock::*func)(sc_real)){
- internalOperation3aBehavior = func;
- }
- };
- static InternalOperation3aMock* internalOperation3aMock;
- class AlwaysTrueMock{
- public:
- sc_boolean (AlwaysTrueMock::*alwaysTrueBehavior)();
- sc_boolean alwaysTrue1(){
- return (true);
- }
- void setAlwaysTrueBehavior(sc_boolean (AlwaysTrueMock::*func)()){
- alwaysTrueBehavior = func;
- }
- };
- static AlwaysTrueMock* alwaysTrueMock;
- static struct {
- sc_boolean called;
- } internalOperation1 = {false};
- static struct {
- sc_boolean called;
- sc_integer param1;
- } internalOperation2 = {false, 0};
- static struct {
- sc_boolean called;
- } internalOperation3 = {false};
- static struct {
- sc_boolean called;
- sc_real param1;
- } internalOperation3a = {false, 0.0d};
- static struct {
- sc_boolean called;
- } internalOperation4 = {false};
- static struct {
- sc_boolean called;
- sc_integer param1;
- } internalOperation4a = {false, 0};
- static struct {
- sc_boolean called;
- } internalOperation5 = {false};
- static struct {
- sc_boolean called;
- char const * param1;
- } internalOperation5a = {false, 0};
- static struct {
- sc_boolean called;
- } interface1InterfaceOperation1 = {false};
- static struct {
- sc_boolean called;
- sc_integer param1;
- } interface1InterfaceOperation2 = {false, 0};
- static struct {
- sc_boolean called;
- } interface1InterfaceOperation3 = {false};
- static struct {
- sc_boolean called;
- sc_real param1;
- } interface1InterfaceOperation3a = {false, 0.0d};
- static struct {
- sc_boolean called;
- } interface1InterfaceOperation4 = {false};
- static struct {
- sc_boolean called;
- sc_integer param1;
- } interface1InterfaceOperation4a = {false, 0};
- static struct {
- sc_boolean called;
- } interface1InterfaceOperation5 = {false};
- static struct {
- sc_boolean called;
- char const * param1;
- } interface1InterfaceOperation5a = {false, 0};
- static struct {
- sc_boolean called;
- } unnamedInterfaceOperation1 = {false};
- static struct {
- sc_boolean called;
- sc_integer param1;
- } unnamedInterfaceOperation2 = {false, 0};
- static struct {
- sc_boolean called;
- } unnamedOperation3 = {false};
- static struct {
- sc_boolean called;
- sc_real param1;
- } unnamedOperation3a = {false, 0.0d};
- static struct {
- sc_boolean called;
- } unnamedOperation4 = {false};
- static struct {
- sc_boolean called;
- sc_integer param1;
- } unnamedOperation4a = {false, 0};
- static struct {
- sc_boolean called;
- } unnamedOperation5 = {false};
- static struct {
- sc_boolean called;
- char const * param1;
- } unnamedOperation5a = {false, 0};
- Operations handle;
- class StatemachineTest : public ::testing::Test{
- protected:
- virtual void SetUp() {
- operations_init(&handle);
- }
- };
- TEST_F(StatemachineTest, operationsCalled) {
- alwaysTrueMock = new AlwaysTrueMock();
- internalOperation3aMock = new InternalOperation3aMock();
- alwaysTrueMock->setAlwaysTrueBehavior(&AlwaysTrueMock::alwaysTrue1);
- internalOperation3aMock->setInternalOperation3aBehavior(&InternalOperation3aMock::internalOperation3a1);
- operations_enter(&handle);
- EXPECT_TRUE(operations_isStateActive(&handle, Operations_main_region_A));
- operations_runCycle(&handle);
- EXPECT_TRUE(operations_isStateActive(&handle, Operations_main_region_B));
- EXPECT_TRUE(internalOperation1.called);
- EXPECT_TRUE(internalOperation2.called);
- EXPECT_TRUE(internalOperation2.param1 == 4l);
- EXPECT_TRUE(internalOperation3.called);
- EXPECT_TRUE(internalOperation3a.called);
- EXPECT_TRUE(internalOperation4.called);
- EXPECT_TRUE(internalOperation4a.called);
- EXPECT_TRUE(internalOperation4a.param1 == 5l);
- EXPECT_TRUE(internalOperation5.called);
- EXPECT_TRUE(internalOperation5a.called);
- EXPECT_TRUE(strcmp(internalOperation5a.param1, "") == 0);
- EXPECT_TRUE(internalOperation2.called);
- EXPECT_TRUE(internalOperation2.param1 == 4l);
- operationsIface_raise_ev(&handle);
- operations_runCycle(&handle);
- EXPECT_TRUE(operations_isStateActive(&handle, Operations_main_region_C));
- EXPECT_TRUE(interface1InterfaceOperation1.called);
- EXPECT_TRUE(interface1InterfaceOperation2.called);
- EXPECT_TRUE(interface1InterfaceOperation2.param1 == 4l);
- EXPECT_TRUE(interface1InterfaceOperation3.called);
- EXPECT_TRUE(interface1InterfaceOperation3a.called);
- EXPECT_TRUE(interface1InterfaceOperation3a.param1 == 1.0);
- EXPECT_TRUE(interface1InterfaceOperation4.called);
- EXPECT_TRUE(interface1InterfaceOperation4a.called);
- EXPECT_TRUE(interface1InterfaceOperation4a.param1 == 5l);
- EXPECT_TRUE(interface1InterfaceOperation5.called);
- EXPECT_TRUE(interface1InterfaceOperation5a.called);
- EXPECT_TRUE(strcmp(interface1InterfaceOperation5a.param1, "") == 0);
- operationsIface_raise_ev(&handle);
- operations_runCycle(&handle);
- EXPECT_TRUE(operations_isStateActive(&handle, Operations_main_region_D));
- EXPECT_TRUE(unnamedInterfaceOperation1.called);
- EXPECT_TRUE(unnamedInterfaceOperation2.called);
- EXPECT_TRUE(unnamedInterfaceOperation2.param1 == 4l);
- EXPECT_TRUE(unnamedOperation3.called);
- EXPECT_TRUE(unnamedOperation3a.called);
- EXPECT_TRUE(unnamedOperation3a.param1 == 1.0);
- EXPECT_TRUE(unnamedOperation4.called);
- EXPECT_TRUE(unnamedOperation4a.called);
- EXPECT_TRUE(unnamedOperation4a.param1 == 5l);
- EXPECT_TRUE(unnamedOperation5.called);
- EXPECT_TRUE(unnamedOperation5a.called);
- EXPECT_TRUE(strcmp(unnamedOperation5a.param1, "") == 0);
- }
- void operationsInternal_internalOperation1(const Operations* handle){
- internalOperation1.called = true;
- }
- sc_boolean operationsInternal_internalOperation2(const Operations* handle, const sc_integer param1){
- internalOperation2.called = true;
- internalOperation2.param1 = param1;
- return true;
- }
- sc_real operationsInternal_internalOperation3(const Operations* handle){
- internalOperation3.called = true;
- return 0.0d;
- }
- sc_real operationsInternal_internalOperation3a(const Operations* handle, const sc_real param1){
- internalOperation3a.called = true;
- internalOperation3a.param1 = param1;
- sc_real (InternalOperation3aMock::*func)(sc_real) = internalOperation3aMock->internalOperation3aBehavior;
- return (internalOperation3aMock->*func)(param1);
- }
- sc_integer operationsInternal_internalOperation4(const Operations* handle){
- internalOperation4.called = true;
- return 0;
- }
- sc_integer operationsInternal_internalOperation4a(const Operations* handle, const sc_integer param1){
- internalOperation4a.called = true;
- internalOperation4a.param1 = param1;
- return 0;
- }
- sc_string operationsInternal_internalOperation5(const Operations* handle){
- internalOperation5.called = true;
- return 0;
- }
- sc_string operationsInternal_internalOperation5a(const Operations* handle, const sc_string param1){
- internalOperation5a.called = true;
- internalOperation5a.param1 = param1;
- return 0;
- }
- void operationsIfaceInterface1_interfaceOperation1(const Operations* handle){
- interface1InterfaceOperation1.called = true;
- }
- sc_boolean operationsIfaceInterface1_interfaceOperation2(const Operations* handle, const sc_integer param1){
- interface1InterfaceOperation2.called = true;
- interface1InterfaceOperation2.param1 = param1;
- return true;
- }
- sc_real operationsIfaceInterface1_interfaceOperation3(const Operations* handle){
- interface1InterfaceOperation3.called = true;
- return 0.0d;
- }
- sc_real operationsIfaceInterface1_interfaceOperation3a(const Operations* handle, const sc_real param1){
- interface1InterfaceOperation3a.called = true;
- interface1InterfaceOperation3a.param1 = param1;
- return 0.0d;
- }
- sc_integer operationsIfaceInterface1_interfaceOperation4(const Operations* handle){
- interface1InterfaceOperation4.called = true;
- return 0;
- }
- sc_integer operationsIfaceInterface1_interfaceOperation4a(const Operations* handle, const sc_integer param1){
- interface1InterfaceOperation4a.called = true;
- interface1InterfaceOperation4a.param1 = param1;
- return 0;
- }
- sc_string operationsIfaceInterface1_interfaceOperation5(const Operations* handle){
- interface1InterfaceOperation5.called = true;
- return 0;
- }
- sc_string operationsIfaceInterface1_interfaceOperation5a(const Operations* handle, const sc_string param1){
- interface1InterfaceOperation5a.called = true;
- interface1InterfaceOperation5a.param1 = param1;
- return 0;
- }
- void operationsIface_unnamedInterfaceOperation1(const Operations* handle){
- unnamedInterfaceOperation1.called = true;
- }
- sc_boolean operationsIface_unnamedInterfaceOperation2(const Operations* handle, const sc_integer param1){
- unnamedInterfaceOperation2.called = true;
- unnamedInterfaceOperation2.param1 = param1;
- return true;
- }
- sc_real operationsIface_unnamedOperation3(const Operations* handle){
- unnamedOperation3.called = true;
- return 0.0d;
- }
- sc_real operationsIface_unnamedOperation3a(const Operations* handle, const sc_real param1){
- unnamedOperation3a.called = true;
- unnamedOperation3a.param1 = param1;
- return 0.0d;
- }
- sc_integer operationsIface_unnamedOperation4(const Operations* handle){
- unnamedOperation4.called = true;
- return 0;
- }
- sc_integer operationsIface_unnamedOperation4a(const Operations* handle, const sc_integer param1){
- unnamedOperation4a.called = true;
- unnamedOperation4a.param1 = param1;
- return 0;
- }
- sc_string operationsIface_unnamedOperation5(const Operations* handle){
- unnamedOperation5.called = true;
- return 0;
- }
- sc_string operationsIface_unnamedOperation5a(const Operations* handle, const sc_string param1){
- unnamedOperation5a.called = true;
- unnamedOperation5a.param1 = param1;
- return 0;
- }
- sc_boolean operationsIface_alwaysTrue(const Operations* handle){
- sc_boolean (AlwaysTrueMock::*func)() = alwaysTrueMock->alwaysTrueBehavior;
- return (alwaysTrueMock->*func)();
- }
|