Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse Titan » About compiling 3GPP and ETSI test suites
About compiling 3GPP and ETSI test suites [message #1766654] Sat, 24 June 2017 06:54
Elemer Lelik is currently offline Elemer LelikFriend
Messages: 1120
Registered: January 2015
Senior Member
Dear all,


a number of 3GPP and ETSI test suites are available for download on the ttcn-3.org site
and we often receive questions about errors that pop up when attempting to compile them; these questions reveal a fundamental misunderstanding about these test suites.
Let's examine them closer and see how justified are expectations regarding their compile-ability.

In general, a TTCN-3 test suite will consist of two parts:
the ATS or Abstract Test Suite, written in TTCN-3 , and a number of additions, such as test adapters, codecs, and external functions,
all written in an implementation-specific language.

+------------------------------------------------------------------------+   +---------------+
|         +-----------------------------------------------+              |   |               |
|         |                                               |              |   |               |
|         |                                               |              |   |               |
|         |                                               |     portable |   |               |
|         |                                               |              |   |               |
|         |       ATS (TTCN-3)                            |              |   |     SUT       |
|         |                                               |              |   |               |
|         |                                               |              |   |               |
|         |                                               |              |   |               |
|         |                                               |              |   |               |
|         |                                               |              |   |               |
+-----------------------------+---------------+--------------------------+   +--^------------+
          |                   |   Codecs      |           |                     |
          |    Test adapter   |   (impl.      |Ext.       |                     |
          |    (implementation|   dependent)  |functions  |                     |
          |    dependent-     |               |(impl.     |                     |
          |    C++, Java etc.)|               |dependent) |  <------------+     |
          |                   |               |           |                     |
          |                   |               |           |   not portable      |
          |                   |               |           |                     |
          +---------+---------+---------------+-----------+                     |
                    |                                                           |
                    |                                                           |
                    |                                                           |
                    |                                                           |
                    +-----------------------------------------------------------+



The test adapters, or test ports, are pieces of code that make the communication possible between the ATS and SUT.
Codecs permit conversion between the abstract syntax (TTCN-3 or ASN.1 structures) and transfer syntax (encoding on the wire).
Finally external functions are functions declared in TTCN-3 but the body written in some other language, typically
extending the language with some specific functionality needed in the test suite, encryption or mathematical functions being good examples.

Now here's the catch: the test adapters, codecs, external functions are not covered by the TTCN-3 language standard,
they are implemented differently in different tool implementations: some might use C++, some Java ,
or any other language; hence these are not portable between tools, and as such they are not published together with the ATS.

What you download as 3GPP or ETSI test suite is the ATS only, code that is portable, but incapable to compile and run on its own.
It has to be complemented with tool specific additions in order to compile and run.



So let's see what is needed when one tries to adapt such a test suite to Titan:

-external functions are usually the simplest part of the story, they have to be implemented in C++ to match the intent and TTCN-3 declaration
https://github.com/eclipse/titan.Libraries.TCCUsefulFunctions offers some examples that can be modified or re-used directly

-test ports will have to be implemented in C++ from scratch or by modifying the ones published
ch. 2 of the Titan API guide offers all information needed to write such a test port , but of course,
besides that a good understanding of the ATS-SUT communication is needed

-codecs: here the user has in general two options:
writing these codecs as external functions from scratch or using Titan's native codecs; the latter usually means
decorating the TTCN-3 code with encoding instructions, which assumes a degree of familiarity with Titan.
Both alternatives are far from being easy and require an amount of mental investment.

A special case is PER encoding , which is not supported natively by Titan, so a 3rd party alternative (either open source or commercial)
has to be sought. The one open source alternative that can be considered (asn1c ) is incomplete.
Details about Titan codecs and PER coding have been published in earlier posts.


Bottom line is , nobody should be surprised that the downloaded code does not compile, that's the natural order or things.
It would not compile on any other tool either, unless complemented with the above.
After downloading the code, please investigate and understand what is necessary to add to make it compile-able and executable.
Once again, life proves that there is no such thing as free lunch.



Best regards
Elemer

[Updated on: Sat, 24 June 2017 09:40]

Report message to a moderator

Previous Topic:Resolve the reference definition in the cygwin of Titan 6.1.0
Next Topic:Using the TLS_Handler part 1
Goto Forum:
  


Current Time: Fri Apr 26 06:47:43 GMT 2024

Powered by FUDForum. Page generated in 0.02809 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top