This module provides the bases to start the development of any Conformance Testing project or Interoperability Testing project.
It contains:
- A set C/C++ modules such as logging, codec support,
- A set of TTCN-3 modules such as LibHttp
- A set of TTCN-3 modules such as LibHelper or LibHttp
## How to use it
### The layers
The purpose of a lower test adapter is to prepare and adapt the protocol messages used by TTCN-3 test suites so that they can be transmitted successfully to the SUT.
The lower layers implement and encapsulate protocol messages accordingly. For instance, TCP need to be encapsulated into IP layer and ETHERNET layer.
Each Layer is responsible for encapsulating and decapsulating packets and transmitting result to lower using send_data()/receive_data() methods
#### Final layers
The final layer is where the physical communication is done. PCAP is an example a the final layer: this layer read and write data to the network interface controller (NIC).
Some final layer such as PCAP, PCAP_OFFLINE, SCTP are provided by this framework to facilitate the development of the Test Adapter.
#### Layers
Some layers such as ETHERNET, IP, TCP or UDP are provided by this framework to facilitate the development of the Test Adapter.
### The C++ libraries
This framework provides some C++ and TTCN-3 libraries such as layer parameters processor (class params), base time (class base_time), basic data convertions (class converter).
These classes can be derived to enhance and add new functionalities.
### The external functions
This framework provides some useful TTCN-3 external function such as time access (e.g. fx__getCurrentTimeUtc) or base 64 encoding/decoding.
### The logger class
This class provides a logging framework with log levels and some special features such as hexadecimal dump of TITAN data structure logging (e.g. RECORD...).
### The TTCN-3 libraries
This framework provides some TTCN-3 libraries such as LibXSD, libHTTP or LibJson.
These libraries provides the typing and the templates to manipulate these protocols.
They can be used and extend to enhance and add new typings and functionalities.
### The LibSecurity
This libraries provides the minimal set of functionalities such SHA and HMAC computing, Signature and Certificates manipulations.
## How to add it in your project
When you create your project, you just need to add it as a GIT submodule: