From 9494b6165019da19ca12944d46db8ee78ad209c6 Mon Sep 17 00:00:00 2001
From: Sophie Coudert <sophie.coudert@telecom-paris.fr>
Date: Tue, 26 Nov 2024 11:19:29 +0100
Subject: [PATCH] added some test file

---
 .../cli/models/avSysML_timerRealNames.sysml   | 303 ++++++++++++++++++
 1 file changed, 303 insertions(+)
 create mode 100644 ttool/src/test/resources/cli/models/avSysML_timerRealNames.sysml

diff --git a/ttool/src/test/resources/cli/models/avSysML_timerRealNames.sysml b/ttool/src/test/resources/cli/models/avSysML_timerRealNames.sysml
new file mode 100644
index 000000000..2a36a0c4c
--- /dev/null
+++ b/ttool/src/test/resources/cli/models/avSysML_timerRealNames.sysml
@@ -0,0 +1,303 @@
+package AvatarInstance {
+    private import AvatarGeneral::*;
+    private import AvatarBlockTypes::*;
+    private import AvatarCommunication::*;
+    private import AvatarTransitionServer::*;
+
+    // DATATYPES $$$$$$$$$$$$$$$$$$$$$$$$
+
+    attribute def 'Point' :> '#AvatarDataType' { 
+        attribute x : Integer default := 0;
+        attribute y : Integer default := 0;
+    }
+
+    // COMMUNICATIONS $$$$$$$$$$$$$$$$$$$$$$$$
+
+    // Relation Sync_Relation =============
+    part Sync_Relation: '#Sync_Rel' = '#Sync_Rel'('@block1' = blk0, '@block2' = blk1_0, '@private'=true);
+
+    // Channel syn_in0_out1-------------
+    part syn_in0_out1 : '#Sync' = '#Sync'('@relation' = Sync_Relation);
+    binding : '#InSignalBinding' bind blk0.sig_in0 = syn_in0_out1;
+    binding : '#OutSignalBinding' bind blk1_0.sig_out1 = syn_in0_out1;
+    
+    // Message of signal blk0.sig_in0............
+    part def msg_in0 :> '#InMessage' {
+        private part '@channel' : '#Channel' = syn_in0_out1;
+        attribute x : Integer;
+        attribute p : 'Point';
+        attribute b : Boolean;
+    }
+    
+    // Message of signal blk1_0.sig_out1............
+    part def msg_out1 :> '#OutMessage', msg_in0 {
+        attribute x redefines x;
+        attribute p redefines p;
+        attribute b redefines b;
+    }
+
+    // Channel syn_out0_in1-------------
+    part syn_out0_in1 : '#Sync' = '#Sync'('@relation' = Sync_Relation);
+    binding : '#OutSignalBinding' bind blk0.sig_out0 = syn_out0_in1;
+    binding : '#InSignalBinding' bind blk1_0.sig_in1 = syn_out0_in1;
+    
+    // Message of signal blk1_0.sig_in1............
+    part def msg_in1 :> '#InMessage' {
+        private part '@channel' : '#Channel' = syn_out0_in1;
+        attribute x : Integer;
+        attribute p : 'Point';
+        attribute b : Boolean;
+    }
+    
+    // Message of signal blk0.sig_out0............
+    part def msg_out0 :> '#OutMessage', msg_in1 {
+        attribute x redefines x;
+        attribute p redefines p;
+        attribute b redefines b;
+    }
+
+    // BLOCKS $$$$$$$$$$$$$$$$$$$$$$$$
+
+    // Block blk1=============
+    part blk1 : '#AvatarBlock' {
+
+        // state-machine -------------------
+        exhibit state '@statemachine' : '#AvatarStateMachine' {
+
+            entry action startstate :'#AvatarStartState';
+
+            transition : '#AvatarTransition' first startstate
+                then stopstate;
+
+            exit action stopstate :'#AvatarStopState';
+        }
+
+        // Sub-Blocks øøøøøøøøøøøøøøøøøøøøøøø
+
+        // Block blk1_0=============
+        part blk1_0 : '#AvatarBlock' {
+
+            // Attributes ---------------------
+            attribute x : Integer := 0;
+            attribute b : Boolean := false;
+            attribute p : 'Point';
+
+            // Signals ---------------------
+            part sig_in1 : '#Channel';
+            part sig_out1 : '#Channel';
+
+            // Timers ---------------------
+            part tmr: '#AvatarTimer' = '#AvatarTimer'();
+
+            // state-machine -------------------
+            exhibit state '@statemachine' : '#AvatarStateMachine' {
+
+                state send_out1_0 : '#AvatarSendState';
+
+                transition : '#AvatarTransition' first send_out1_0
+                    then stopstate;
+
+                state receive_in1_0 : '#AvatarReceiveState' = '#AvatarReceiveState'(
+                    '@request' = {
+                        '#SendRequest'(
+                            '@channel'= sig_out1,
+                            '@payload' = msg_out1(
+                                x,
+                                p,
+                                b )
+                        )
+                    }
+                );
+
+                transition : '#AvatarTransition' first receive_in1_0
+                    then send_out1_0;
+
+                state state1 : '#AvatarStandardState' = '#AvatarStandardState'(
+                    '@pool' = {(
+                        '#AvatarSetTimerRequest'(
+                            '@channel'= tmr.'@set',
+                            '@payload' = '#TimerSetMsg'(10)
+                        ),
+                        '#ReceiveRequest'(
+                            '@index' =  2,
+                            '@channel'= sig_in1
+                        )
+                    )}
+                );
+
+                transition : '#AvatarTransition' first state1 if '@index' == 1
+                    then set_tmr_0;
+
+                transition : '#AvatarTransition' first state1 if '@index' == 2
+                    do action : '#ReceiveAction' {
+                        item '@msg' : msg_in1 = '@payload' as msg_in1;
+                        first start;
+                        then assign x := '@msg'.x;
+                        then assign p := '@msg'.p;
+                        then assign b := '@msg'.b;
+                        then done;
+                    } then receive_in1_0;
+
+                state set_tmr_0 : '#AvatarSetTimerState';
+
+                transition : '#AvatarTransition' first set_tmr_0
+                    then state2;
+
+                state expire_tmr_0 : '#AvatarExpireTimerState';
+
+                transition : '#AvatarTransition' first expire_tmr_0
+                    then state1;
+
+                state state2 : '#AvatarStandardState' = '#AvatarStandardState'(
+                    '@pool' = {(
+                        '#AvatarExpireTimerRequest'(
+                            '@channel'= tmr.'@expire'
+                        ),
+                        '#AvatarResetTimerRequest'(
+                            '@index' =  2,
+                            '@channel'= tmr.'@reset',
+                            '@payload' = '#TimerResetMsg'()
+                        )
+                    )}
+                );
+
+                transition : '#AvatarTransition' first state2 if '@index' == 1
+                    then expire_tmr_0;
+
+                transition : '#AvatarTransition' first state2 if '@index' == 2
+                    then reset_tmr_0;
+
+                entry action startstate :'#AvatarStartState';
+
+                transition : '#AvatarTransition' first startstate
+                    then state1;
+
+                state reset_tmr_0 : '#AvatarResetTimerState';
+
+                transition : '#AvatarTransition' first reset_tmr_0
+                    then state2;
+
+                exit action stopstate :'#AvatarStopState';
+            }
+        }
+    }
+
+    // Block blk0=============
+    part blk0 : '#AvatarBlock' {
+
+        // Attributes ---------------------
+        attribute x : Integer default := 0;
+        attribute b : Boolean default := false;
+        attribute p : 'Point';
+        attribute y : Integer default := 0;
+
+        // Methods ---------------------
+        calc make: '#AvatarCalcMethod' {
+            attribute x : Integer;
+            attribute y : Integer;
+            return : 'Point';
+        }
+        calc getx: '#AvatarCalcMethod' {
+            attribute p : 'Point';
+            return : Integer;
+        }
+        action foo: '#AvatarVoidMethod' {
+            attribute b : Boolean;
+            attribute p : 'Point';
+            attribute x : Integer;
+        }
+
+        // Signals ---------------------
+        part sig_in0 : '#Channel';
+        part sig_out0 : '#Channel';
+
+        // state-machine -------------------
+        exhibit state '@statemachine' : '#AvatarStateMachine' {
+
+            state random_0 : '#AvatarRandomState' = '#AvatarRandomState'(
+                '@request' = {
+                    if p.x > 4 ?
+                        '#immediate_request'
+                    else '#nok_request'(1)
+                },
+                '@state_action'  = '#Assignment'(
+                    '@target' = x,
+                    '@value' = '#bound_random'(0, p.y)
+                )
+            );
+
+            transition : '#AvatarTransition' first random_0
+                do action : '#TransitionAction' {
+                    first start;
+                    then action = foo(b, p, x);
+                    then done;
+                } then prercv_in0_0;
+
+            state prercv_in0_0 : '#AvatarPreReceiveState' = '#AvatarPreReceiveState' (
+                '@request' = {
+                    '#ReceiveRequest'(
+                        '@channel'= sig_in0
+                    )
+                }
+            );
+
+            transition : '#AvatarTransition' first prercv_in0_0
+                do action : '#ReceiveAction' {
+                    item '@msg' : msg_in0 = '@payload' as msg_in0;
+                    first start;
+                    then assign x := '@msg'.x;
+                    then assign p := '@msg'.p;
+                    then assign b := '@msg'.b;
+                    then done;
+                } then rcv_in0_0;
+
+            exit action stopstate :'#AvatarStopState';
+
+            state snd_out0_0 : '#AvatarSendState';
+
+            transition : '#AvatarTransition' first snd_out0_0
+                do action : '#TransitionAction' {
+                    first start;
+                    then assign p:= make(x, y);
+                    then assign x:= getx(p);
+                    then done;
+                } then random_0;
+
+            entry action startstate :'#AvatarStartState' = '#AvatarStartState'(
+                '@request' = {
+                    '#TrivialRequest'('@delay' = '#bound_random'(1, p.x))
+                }
+            );
+
+            transition : '#AvatarTransition' first startstate
+                do action : '#TransitionAction' {
+                    first start;
+                    then assign x:= 1;
+                    then assign b:= true;
+                    then assign p::x:= x;
+                    then done;
+                } then presnd_out0_0;
+
+            state presnd_out0_0 : '#AvatarPreSendState' = '#AvatarPreSendState' (
+                '@request' = {
+                    '#SendRequest'(
+                        '@channel'= sig_out0,
+                        '@payload' = msg_out0(
+                            x,
+                            p,
+                            b )
+                    )
+                }
+            );
+
+            transition : '#AvatarTransition' first presnd_out0_0 then snd_out0_0;
+
+            state rcv_in0_0 : '#AvatarReceiveState';
+
+            transition : '#AvatarTransition' first rcv_in0_0
+                then stopstate;
+        }
+    }
+    // Block Shortcut Links $$$$$$$$$$$$
+    part blk1_0 : '#AvatarBlock' :> blk1.blk1_0 = blk1.blk1_0;
+}
-- 
GitLab