Commit 5ce2e7ed authored by Maxime Perrotin's avatar Maxime Perrotin

Add test case for AIR

checking that if PI and RI have different names, the corresponding port
names follow
parent 7febc678
This diff is collapsed.
---------------------------------------------------
-- AADL2.2
-- TASTE type concurrencyview
--
-- generated code: do not edit
---------------------------------------------------
PROPERTY SET AI IS
Root_System : AADLSTRING
APPLIES TO(SYSTEM IMPLEMENTATION);
Disabled_Processing_Tools : LIST OF AADLSTRING
APPLIES TO(SYSTEM IMPLEMENTATION);
END AI;
PACKAGE concurrencyview::CV
PUBLIC
WITH AI;
WITH DataView;
WITH Arinc653;
WITH ocarina_processors_leon;
WITH deploymentview::DV::Node1;
PROCESSOR Node1_proc1_cv
EXTENDS ocarina_processors_leon::leon3
END Node1_proc1_cv;
PROCESSOR IMPLEMENTATION Node1_proc1_cv.final
EXTENDS ocarina_processors_leon::leon3.AIR
SUBCOMPONENTS
part1_VP : VIRTUAL PROCESSOR deploymentview::DV::Node1::part1_VP.others;
part2_VP : VIRTUAL PROCESSOR deploymentview::DV::Node1::part2_VP.others;
PROPERTIES
SCHEDULING_PROTOCOL => (POSIX_1003_Highest_Priority_First_Protocol) APPLIES TO part1_VP;
SCHEDULING_PROTOCOL => (POSIX_1003_Highest_Priority_First_Protocol) APPLIES TO part2_VP;
ARINC653::DAL => LEVEL_A APPLIES TO part1_VP;
ARINC653::DAL => LEVEL_A APPLIES TO part2_VP;
END Node1_proc1_cv.final;
PROCESS part1
EXTENDS deploymentview::DV::Node1::part1
FEATURES
INPORT_vt_hello_s_s : IN EVENT DATA PORT DataView::TASTE_Boolean_Buffer.impl;
END part1;
PROCESS IMPLEMENTATION part1.final
SUBCOMPONENTS
vt_hello_s : THREAD vt_hello_s_vt_hello_s.others;
hello_pi_s : SUBPROGRAM hello_pi_s.final;
CONNECTIONS
PORT INPORT_vt_hello_s_s -> vt_hello_s.INPORT_artificial_s;
END part1.final;
PROCESS part2
EXTENDS deploymentview::DV::Node1::part2
FEATURES
OUTPORT_vt_read_h_s : OUT EVENT DATA PORT DataView::TASTE_Boolean_Buffer.impl;
END part2;
PROCESS IMPLEMENTATION part2.final
SUBCOMPONENTS
vt_read_h : THREAD vt_read_h_vt_read_h.others;
read_pi_h : SUBPROGRAM read_pi_h.final;
CONNECTIONS
PORT vt_read_h.OUTPORT_s_vt -> OUTPORT_vt_read_h_s;
END part2.final;
SYSTEM deploymentview
END deploymentview;
SYSTEM IMPLEMENTATION deploymentview.final
SUBCOMPONENTS
part1 : PROCESS part1.final;
part2 : PROCESS part2.final;
Node1_proc1_cv : PROCESSOR Node1_proc1_cv.final;
Node1_main_memory : MEMORY deploymentview::DV::Node1::main_memory.others;
CONNECTIONS
part1_s_vt_read_h_conn_cv : PORT part2.OUTPORT_vt_read_h_s -> part1.INPORT_vt_hello_s_s;
PROPERTIES
AI::ROOT_SYSTEM => "generated";
ACTUAL_PROCESSOR_BINDING => (REFERENCE(Node1_proc1_cv.part1_VP)) APPLIES TO part1;
ACTUAL_PROCESSOR_BINDING => (REFERENCE(Node1_proc1_cv.part2_VP)) APPLIES TO part2;
ACTUAL_MEMORY_BINDING => (Reference(Node1_main_memory.part1_Segment)) APPLIES TO part1;
ACTUAL_MEMORY_BINDING => (Reference(Node1_main_memory.part2_Segment)) APPLIES TO part2;
ARINC653::MODULE_MAJOR_FRAME => 3000ms APPLIES TO Node1_proc1_cv;
ARINC653::MODULE_SCHEDULE => (
[PARTITION=>Reference(Node1_proc1_cv.part1_VP);Duration=>1600ms;PERIODIC_PROCESSING_START=>FALSE;],
[PARTITION=>Reference(Node1_proc1_cv.part2_VP);Duration=>1400ms;PERIODIC_PROCESSING_START=>FALSE;]
) APPLIES TO Node1_proc1_cv;
END deploymentview.final;
THREAD vt_hello_s_vt_hello_s
FEATURES
INPORT_artificial_s : IN EVENT DATA PORT DataView::TASTE_Boolean_Buffer.impl {
QUEUE_SIZE => 5;
};
END vt_hello_s_vt_hello_s;
THREAD IMPLEMENTATION vt_hello_s_vt_hello_s.others
CALLS
MyCalls : {
MyCall : SUBPROGRAM hello_pi_s;
};
PROPERTIES
DISPATCH_PROTOCOL => Sporadic;
PERIOD => 10ms;
DEADLINE => 5ms;
COMPUTE_EXECUTION_TIME => 0ms..2ms;
END vt_hello_s_vt_hello_s.others;
THREAD vt_read_h_vt_read_h
FEATURES
OUTPORT_s_vt : OUT EVENT DATA PORT DataView::TASTE_Boolean_Buffer.impl;
END vt_read_h_vt_read_h;
THREAD IMPLEMENTATION vt_read_h_vt_read_h.others
CALLS
MyCalls : {
MyCall : SUBPROGRAM read_pi_h;
};
PROPERTIES
DISPATCH_PROTOCOL => Periodic;
PERIOD => 100ms;
DEADLINE => 10ms;
COMPUTE_EXECUTION_TIME => 0ms..3ms;
END vt_read_h_vt_read_h.others;
SUBPROGRAM hello_pi_s
PROPERTIES
COMPUTE_EXECUTION_TIME => 2ms..2ms;
SOURCE_LANGUAGE => (C);
SOURCE_NAME => "hello_pi_s";
SOURCE_TEXT => ("hello/hello.c");
END hello_pi_s;
SUBPROGRAM IMPLEMENTATION hello_pi_s.final
END hello_pi_s.final;
SUBPROGRAM read_pi_h
PROPERTIES
COMPUTE_EXECUTION_TIME => 3ms..3ms;
SOURCE_LANGUAGE => (C);
SOURCE_NAME => "read_pi_h";
SOURCE_TEXT => ("read/read.c");
END read_pi_h;
SUBPROGRAM IMPLEMENTATION read_pi_h.final
END read_pi_h.final;
END concurrencyview::CV;
--------------------------------------------------------
--! File generated by asn2aadl v2.1.39: DO NOT EDIT !
--------------------------------------------------------
--! InputASN1FileChecksum:6bf664b31ce9ca6fd89af52cea7ea0f2:/home/taste/tool-src/kazoo/test/test-air-portnames/DataView.asn:
--! InputASN1FileChecksum:ee8a7e01f29874c0d50f437d5abb9599:/home/taste/tool-inst/share/taste-types/taste-types.asn:
--------------------------------------------------------
package DataView
public
with Data_Model;
with Taste;
with Base_Types;
with Deployment;
DATA Simulink_Tunable_Parameter
PROPERTIES
TASTE::Ada_Package_Name => "TASTE_Directives";
Type_Source_Name => "Simulink-Tunable-Parameter";
Deployment::ASN1_Module_Name => "TASTE-Directives";
TASTE::Forbid_in_PI => true;
END Simulink_Tunable_Parameter;
DATA Timer
PROPERTIES
TASTE::Ada_Package_Name => "TASTE_Directives";
Type_Source_Name => "Timer";
Deployment::ASN1_Module_Name => "TASTE-Directives";
TASTE::Forbid_in_PI => true;
END Timer;
DATA Taste_directive
PROPERTIES
TASTE::Ada_Package_Name => "TASTE_Directives";
Type_Source_Name => "Taste-directive";
Deployment::ASN1_Module_Name => "TASTE-Directives";
TASTE::Forbid_in_PI => true;
END Taste_directive;
data Stream_Element_Buffer
-- Root type for buffer elements
properties
Data_Model::Data_Representation => Character;
end Stream_Element_Buffer;
DATA T_Boolean
PROPERTIES
-- name of the ASN.1 source file:
Source_Text => ("/home/taste/tool-inst/share/taste-types/taste-types.asn");
TASTE::Ada_Package_Name => "TASTE_BasicTypes";
Deployment::ASN1_Module_Name => "TASTE-BasicTypes";
Source_Language => (ASN1);
-- Size of a buffer to cover all forms of message representation:
-- Real message size is 1; suggested aligned message buffer is...
Source_Data_Size => 8 Bytes;
-- name of the corresponding data type in the source file:
Type_Source_Name => "T-Boolean";
TASTE::Position_In_File => [ line => 14 ; column => 1 ; ];
-- what kind of type is this?
TASTE::ASN1_Basic_Type =>aBOOLEAN;
END T_Boolean;
DATA IMPLEMENTATION T_Boolean.impl
END T_Boolean.impl;
DATA T_Boolean_Buffer_Max
END T_Boolean_Buffer_Max;
DATA IMPLEMENTATION T_Boolean_Buffer_Max.impl
-- Buffer to hold a marshalled data of type T_Boolean
PROPERTIES
Data_Model::Data_Representation => array;
Data_Model::Dimension => (8); -- Size of the buffer
Source_Data_Size => 8 Bytes; -- Size of the buffer in bytes
Data_Model::Base_Type => (classifier (DataView::Stream_Element_Buffer));
END T_Boolean_Buffer_Max.impl;
DATA T_Boolean_Buffer
END T_Boolean_Buffer;
DATA IMPLEMENTATION T_Boolean_Buffer.impl
-- Buffer to hold a marshalled data of type T_Boolean
SUBCOMPONENTS
Buffer : data T_Boolean_Buffer_Max.impl;
Length : data Base_Types::Unsigned_32;
PROPERTIES
Data_Model::Data_Representation => Struct;
Source_Data_Size => 24 Bytes; -- Size of the buffer in bytes
END T_Boolean_Buffer.impl;
DATA T_Int32
PROPERTIES
-- name of the ASN.1 source file:
Source_Text => ("/home/taste/tool-inst/share/taste-types/taste-types.asn");
TASTE::Ada_Package_Name => "TASTE_BasicTypes";
Deployment::ASN1_Module_Name => "TASTE-BasicTypes";
Source_Language => (ASN1);
-- Size of a buffer to cover all forms of message representation:
-- Real message size is 8; suggested aligned message buffer is...
Source_Data_Size => 8 Bytes;
-- name of the corresponding data type in the source file:
Type_Source_Name => "T-Int32";
TASTE::Position_In_File => [ line => 6 ; column => 1 ; ];
-- what kind of type is this?
TASTE::ASN1_Basic_Type =>aINTEGER;
END T_Int32;
DATA IMPLEMENTATION T_Int32.impl
END T_Int32.impl;
DATA T_Int32_Buffer_Max
END T_Int32_Buffer_Max;
DATA IMPLEMENTATION T_Int32_Buffer_Max.impl
-- Buffer to hold a marshalled data of type T_Int32
PROPERTIES
Data_Model::Data_Representation => array;
Data_Model::Dimension => (8); -- Size of the buffer
Source_Data_Size => 8 Bytes; -- Size of the buffer in bytes
Data_Model::Base_Type => (classifier (DataView::Stream_Element_Buffer));
END T_Int32_Buffer_Max.impl;
DATA T_Int32_Buffer
END T_Int32_Buffer;
DATA IMPLEMENTATION T_Int32_Buffer.impl
-- Buffer to hold a marshalled data of type T_Int32
SUBCOMPONENTS
Buffer : data T_Int32_Buffer_Max.impl;
Length : data Base_Types::Unsigned_32;
PROPERTIES
Data_Model::Data_Representation => Struct;
Source_Data_Size => 24 Bytes; -- Size of the buffer in bytes
END T_Int32_Buffer.impl;
DATA T_Int8
PROPERTIES
-- name of the ASN.1 source file:
Source_Text => ("/home/taste/tool-inst/share/taste-types/taste-types.asn");
TASTE::Ada_Package_Name => "TASTE_BasicTypes";
Deployment::ASN1_Module_Name => "TASTE-BasicTypes";
Source_Language => (ASN1);
-- Size of a buffer to cover all forms of message representation:
-- Real message size is 8; suggested aligned message buffer is...
Source_Data_Size => 8 Bytes;
-- name of the corresponding data type in the source file:
Type_Source_Name => "T-Int8";
TASTE::Position_In_File => [ line => 10 ; column => 1 ; ];
-- what kind of type is this?
TASTE::ASN1_Basic_Type =>aINTEGER;
END T_Int8;
DATA IMPLEMENTATION T_Int8.impl
END T_Int8.impl;
DATA T_Int8_Buffer_Max
END T_Int8_Buffer_Max;
DATA IMPLEMENTATION T_Int8_Buffer_Max.impl
-- Buffer to hold a marshalled data of type T_Int8
PROPERTIES
Data_Model::Data_Representation => array;
Data_Model::Dimension => (8); -- Size of the buffer
Source_Data_Size => 8 Bytes; -- Size of the buffer in bytes
Data_Model::Base_Type => (classifier (DataView::Stream_Element_Buffer));
END T_Int8_Buffer_Max.impl;
DATA T_Int8_Buffer
END T_Int8_Buffer;
DATA IMPLEMENTATION T_Int8_Buffer.impl
-- Buffer to hold a marshalled data of type T_Int8
SUBCOMPONENTS
Buffer : data T_Int8_Buffer_Max.impl;
Length : data Base_Types::Unsigned_32;
PROPERTIES
Data_Model::Data_Representation => Struct;
Source_Data_Size => 24 Bytes; -- Size of the buffer in bytes
END T_Int8_Buffer.impl;
DATA T_UInt32
PROPERTIES
-- name of the ASN.1 source file:
Source_Text => ("/home/taste/tool-inst/share/taste-types/taste-types.asn");
TASTE::Ada_Package_Name => "TASTE_BasicTypes";
Deployment::ASN1_Module_Name => "TASTE-BasicTypes";
Source_Language => (ASN1);
-- Size of a buffer to cover all forms of message representation:
-- Real message size is 8; suggested aligned message buffer is...
Source_Data_Size => 8 Bytes;
-- name of the corresponding data type in the source file:
Type_Source_Name => "T-UInt32";
TASTE::Position_In_File => [ line => 8 ; column => 1 ; ];
-- what kind of type is this?
TASTE::ASN1_Basic_Type =>aINTEGER;
END T_UInt32;
DATA IMPLEMENTATION T_UInt32.impl
END T_UInt32.impl;
DATA T_UInt32_Buffer_Max
END T_UInt32_Buffer_Max;
DATA IMPLEMENTATION T_UInt32_Buffer_Max.impl
-- Buffer to hold a marshalled data of type T_UInt32
PROPERTIES
Data_Model::Data_Representation => array;
Data_Model::Dimension => (8); -- Size of the buffer
Source_Data_Size => 8 Bytes; -- Size of the buffer in bytes
Data_Model::Base_Type => (classifier (DataView::Stream_Element_Buffer));
END T_UInt32_Buffer_Max.impl;
DATA T_UInt32_Buffer
END T_UInt32_Buffer;
DATA IMPLEMENTATION T_UInt32_Buffer.impl
-- Buffer to hold a marshalled data of type T_UInt32
SUBCOMPONENTS
Buffer : data T_UInt32_Buffer_Max.impl;
Length : data Base_Types::Unsigned_32;
PROPERTIES
Data_Model::Data_Representation => Struct;
Source_Data_Size => 24 Bytes; -- Size of the buffer in bytes
END T_UInt32_Buffer.impl;
DATA T_UInt8
PROPERTIES
-- name of the ASN.1 source file:
Source_Text => ("/home/taste/tool-inst/share/taste-types/taste-types.asn");
TASTE::Ada_Package_Name => "TASTE_BasicTypes";
Deployment::ASN1_Module_Name => "TASTE-BasicTypes";
Source_Language => (ASN1);
-- Size of a buffer to cover all forms of message representation:
-- Real message size is 8; suggested aligned message buffer is...
Source_Data_Size => 8 Bytes;
-- name of the corresponding data type in the source file:
Type_Source_Name => "T-UInt8";
TASTE::Position_In_File => [ line => 12 ; column => 1 ; ];
-- what kind of type is this?
TASTE::ASN1_Basic_Type =>aINTEGER;
END T_UInt8;
DATA IMPLEMENTATION T_UInt8.impl
END T_UInt8.impl;
DATA T_UInt8_Buffer_Max
END T_UInt8_Buffer_Max;
DATA IMPLEMENTATION T_UInt8_Buffer_Max.impl
-- Buffer to hold a marshalled data of type T_UInt8
PROPERTIES
Data_Model::Data_Representation => array;
Data_Model::Dimension => (8); -- Size of the buffer
Source_Data_Size => 8 Bytes; -- Size of the buffer in bytes
Data_Model::Base_Type => (classifier (DataView::Stream_Element_Buffer));
END T_UInt8_Buffer_Max.impl;
DATA T_UInt8_Buffer
END T_UInt8_Buffer;
DATA IMPLEMENTATION T_UInt8_Buffer.impl
-- Buffer to hold a marshalled data of type T_UInt8
SUBCOMPONENTS
Buffer : data T_UInt8_Buffer_Max.impl;
Length : data Base_Types::Unsigned_32;
PROPERTIES
Data_Model::Data_Representation => Struct;
Source_Data_Size => 24 Bytes; -- Size of the buffer in bytes
END T_UInt8_Buffer.impl;
DATA TASTE_Boolean
PROPERTIES
-- name of the ASN.1 source file:
Source_Text => ("/home/taste/tool-src/kazoo/test/test-air-portnames/DataView.asn");
TASTE::Ada_Package_Name => "TASTE_Dataview";
Deployment::ASN1_Module_Name => "TASTE-Dataview";
Source_Language => (ASN1);
-- Size of a buffer to cover all forms of message representation:
-- Real message size is 1; suggested aligned message buffer is...
Source_Data_Size => 8 Bytes;
-- name of the corresponding data type in the source file:
Type_Source_Name => "TASTE-Boolean";
TASTE::Position_In_File => [ line => 5 ; column => 1 ; ];
-- what kind of type is this?
TASTE::ASN1_Basic_Type =>aBOOLEAN;
END TASTE_Boolean;
DATA IMPLEMENTATION TASTE_Boolean.impl
END TASTE_Boolean.impl;
DATA TASTE_Boolean_Buffer_Max
END TASTE_Boolean_Buffer_Max;
DATA IMPLEMENTATION TASTE_Boolean_Buffer_Max.impl
-- Buffer to hold a marshalled data of type TASTE_Boolean
PROPERTIES
Data_Model::Data_Representation => array;
Data_Model::Dimension => (8); -- Size of the buffer
Source_Data_Size => 8 Bytes; -- Size of the buffer in bytes
Data_Model::Base_Type => (classifier (DataView::Stream_Element_Buffer));
END TASTE_Boolean_Buffer_Max.impl;
DATA TASTE_Boolean_Buffer
END TASTE_Boolean_Buffer;
DATA IMPLEMENTATION TASTE_Boolean_Buffer.impl
-- Buffer to hold a marshalled data of type TASTE_Boolean
SUBCOMPONENTS
Buffer : data TASTE_Boolean_Buffer_Max.impl;
Length : data Base_Types::Unsigned_32;
PROPERTIES
Data_Model::Data_Representation => Struct;
Source_Data_Size => 24 Bytes; -- Size of the buffer in bytes
END TASTE_Boolean_Buffer.impl;
SYSTEM Taste_DataView
END Taste_DataView;
SYSTEM IMPLEMENTATION Taste_DataView.others
SUBCOMPONENTS
T_Boolean : DATA T_Boolean.impl;
T_Int32 : DATA T_Int32.impl;
T_Int8 : DATA T_Int8.impl;
T_UInt32 : DATA T_UInt32.impl;
T_UInt8 : DATA T_UInt8.impl;
TASTE_Boolean : DATA TASTE_Boolean.impl;
END Taste_DataView.others;
end DataView;
TASTE-Dataview DEFINITIONS ::=
BEGIN
IMPORTS T-Int32, T-UInt32, T-Int8, T-UInt8, T-Boolean FROM TASTE-BasicTypes;
TASTE-Boolean ::= BOOLEAN
-- ASN.1 Type definitions must start with an uppercase
-- Field names in records (SEQUENCE) must start with a lowercase
-- Underscores are not allowed: use dash (hyphen)
-- Simple types:
-- MyInteger ::= INTEGER (0..255)
-- MyReal ::= REAL (0.0 .. 1000.0)
-- MyBool ::= BOOLEAN
-- MyEnum ::= ENUMERATED { hello, world, how-are-you }
-- Complex types:
-- MySeq ::= SEQUENCE {
-- input-data MyInteger,
-- output-data MyInteger,
-- validity ENUMERATED { valid, invalid }
-- }
--
-- MyChoice ::= CHOICE {
-- a BOOLEAN,
-- b MySeq
-- }
--
-- MySeqOf ::= SEQUENCE (SIZE (2)) OF MyEnum
--
-- MyOctStr ::= OCTET STRING (SIZE (3))
--
-- -- You can also declare constants
-- myVar MySeqOf ::= { hello, world }
END
---------------------------------------------------
-- AADL2.1
-- TASTE type deploymentview
--
-- generated code: do not edit
---------------------------------------------------
PACKAGE deploymentview::DV::Node1
PUBLIC
WITH Taste;
WITH Deployment;
WITH TASTE_DV_Properties;
WITH deploymentview::DV;
WITH Memory_Properties;
WITH ARINC653;
PROCESS part1
END part1;
PROCESS IMPLEMENTATION part1.others
END part1.others;
VIRTUAL PROCESSOR part1_VP
PROPERTIES
Deployment::Execution_Platform => AIR;
ARINC653::Partition_Identifier => 0;
END part1_VP;
VIRTUAL PROCESSOR IMPLEMENTATION part1_VP.others
END part1_VP.others;
PROCESS part2
END part2;
PROCESS IMPLEMENTATION part2.others
END part2.others;
VIRTUAL PROCESSOR part2_VP
PROPERTIES
Deployment::Execution_Platform => AIR;
ARINC653::Partition_Identifier => 1;
END part2_VP;
VIRTUAL PROCESSOR IMPLEMENTATION part2_VP.others
END part2_VP.others;
PROCESS part3
END part3;
PROCESS IMPLEMENTATION part3.others
END part3.others;
VIRTUAL PROCESSOR part3_VP
PROPERTIES
Deployment::Execution_Platform => AIR;
ARINC653::Partition_Identifier => 2;
END part3_VP;
VIRTUAL PROCESSOR IMPLEMENTATION part3_VP.others
END part3_VP.others;
PROCESS part4
END part4;
PROCESS IMPLEMENTATION part4.others
END part4.others;
VIRTUAL PROCESSOR part4_VP
PROPERTIES
Deployment::Execution_Platform => AIR;
ARINC653::Partition_Identifier => 3;
END part4_VP;
VIRTUAL PROCESSOR IMPLEMENTATION part4_VP.others
END part4_VP.others;
MEMORY main_memory
END main_memory;
MEMORY IMPLEMENTATION main_memory.others
SUBCOMPONENTS
part1_Segment : MEMORY deploymentview::DV::partition_memory.others {
Base_Address => 16#200000#;
Memory_Size => 16#200000#Bytes;
Byte_Count => 16#200000#;
};
part2_Segment : MEMORY deploymentview::DV::partition_memory.others {
Base_Address => 16#500000#;
Memory_Size => 16#200000#Bytes;
Byte_Count => 16#200000#;
};
part3_Segment : MEMORY deploymentview::DV::partition_memory.others {
Base_Address => 16#700000#;
Memory_Size => 16#200000#Bytes;
Byte_Count => 16#200000#;
};
part4_Segment : MEMORY deploymentview::DV::partition_memory.others {
Base_Address => 16#900000#;
Memory_Size => 16#200000#Bytes;
Byte_Count => 16#200000#;
};
END main_memory.others;
END deploymentview::DV::Node1;
PACKAGE deploymentview::DV
PUBLIC
WITH interfaceview::IV::hello;
WITH interfaceview::IV::read;
WITH interfaceview::IV::Function1;
WITH interfaceview::IV::Function2;
WITH ocarina_processors_leon;
WITH ARINC653;
WITH deploymentview::DV::Node1;