![]() |
![]() |
![]() |
![]() |
![]() |
Known Issues
SDL and TTCN Suite common tools known issues
Supported architectures
The delivered executables and object libraries for Linux and Sun Sparc are compiled in 32-bit mode.
LP64 Architectures
Though not supported, limited testing of the generated code is performed for the SDL Suite under LP64 architectures (primarily 64 bit Solaris). For Solaris, a special version of post.o is available for 64-bit platforms (lib/sunos5lib/post64.o). The TTCN Suite has not been tested under LP64 architectures.
General
Not all tools are able to handle file names with spaces, such tools are Simulator/Explorer, CIF tools and ASN.1 to SDL tool.
ASN.1 Utilities
Undefined components of OBJECT IDENTIFIER are not reported.
Predefined OBJECT IDENTIFIER components have no value in SDL.
When we use PermittedAlphabet constraint for some string type, and then assign Tuple or Quadruple, which is out of constraint, no error message is reported, for example, T ::= IA5String ( FROM ( "a" | "b" ) ) t2 T ::= { 1,1 } does not produce any messages.Values for integer types with constraints outside the range of 32 bit integers, cannot be handled correctly.
ASN.1 BER/PER Encoding/Decoding
Empty SEQUENCE has no values in SDL. Consider the following example:
T1 ::= SEQUENCE {}v11 T1 ::= {}this is mapped to the following SDL:newtype T1endnewtype;synonym v11 T1 = (. .);The SDL type T1 do not have any values and the synonym will not be accepted by the SDL Analyzer. When mapping WITH COMPONENT constraint to SDL inline types are created on fly, information about them is not stored in the internal ASN.1 representation and type structures for those inline types are not generated for encoders/decoders generation request. This will produce compile errors for C code generated from the SDL package when Encode and Decode operators are generated for SDL types, because they will reference type information that does not exist.
T1 ::= SET OF INTEGERT2 ::= T1 ( WITH COMPONENT( 0 .. 5 ) )newtype T1String (Integer, emptystring)endnewtype;syntype T2 = T2_INLINE_0 endsyntype;newtype T2_INLINE_0 /*#SYNT*/String (T2_INLINE_1, emptystring)endnewtype;syntype T2_INLINE_1 = Integer constants 0 : 5 endsyntype;Information about T2_INLINE_0 and T2_INLINE_1 is generated only to SDL and is not generated to type structures for coders.
Simple workaround is not to use WITH COMPONENT, but create a new type which will be used in SET OF type:
ConstrainedINTEGER ::= INTEGER ( 0 .. 5 )T1 ::= SET OF INTEGERT2 ::= SET OF ConstrainedINTEGERTTCN generator: Automatic tagging is not mapped correctly to TTCN. When automatic tagging is applied, all implicit automatic tags are mapped as explicit to TTCN, because there are no means to define automatic tags for TTCN ASN.1 types. In ASN.1 automatic tagging assume IMPLICIT type of tags, but when mapped to TTCN this information is lost, and tags are treated as EXPLICIT.
MDEFINITIONS AUTOMATIC TAGS ::=BEGINS ::= SEQUENCE {x BIT STRING,y INTEGER}ENDTypes for fields x and y should have [1] IMPLICIT and [2] IMPLICIT tags after automatic tagging.
S ::= SEQUENCE {x [0] BIT STRING,y [1] INTEGER}Tags for fields x and y are EXPLICIT by default, which is not consistent with ASN.1 semantics.
This problem does not influence the encoding and decoding because tags are extracted from the generated type info for each type, which is correct, and not from the TTCN internal type description.
Java Interface
In the file postmaster.java, line 53, you must change the string "libsdtpost" to "sdtpost" before compiling. Additionally you must change the name of the library on Windows, not UNIX, from libsdtpost.dll to sdtpost.dll.
Online Help
On UNIX, when using netscape as help viewer the preference netscapecommand is never used. Instead the preference firefoxcommand is used for both help viewers netscape and firefox. Also the Set Default menu command in the preference tool is never dimmed when the help viewer is set to Firefox.
Microsoft Word Integration (Windows only)
When you add/remove a link between two endpoints belonging to documents loaded in MS Word, only one of them changes character format.
All used colors are displayed as white when using the option WebPrint on UNIX.
Text Editor
When you deselect text in the Text Editor on UNIX, endpoints fail to redraw endpoint underlines under the selection.
Work-around: Use <Ctrl-L> to redraw the text after deselecting a selection covering endpoints.
SDL Suite known issues
Cadvanced / Cbasic SDL to C Compiler
Combinations of component selections sometime give C compilation errors. Assume the following types in SDL:
newtype s structa, b integer;endnewtype;newtype t string(s, empty)endnewtype;dcl v t;When now the following two level component selection is performed:
v(2) ! ai.e. select struct component a in the second string component a compilation error might occur, as the string component selection must be performed using a function, while struct component selection can be performed using standard C ".". The generated C code will thus look something like:
Extr_t(v, 2).aThe problem is that not all compilers accept component selection on a function result.
A suitable work around is perform the component selection in two steps:
tmp := v(2),x := tmp ! a;Cmicro SDL to C Compiler / Cmicro Library
The SDL to c compiler generates superfluous macro calls in the parameter list for operators defined in SDL. These macro calls will cause compiler errors. This only affects tight integrations.
If un-defining the flag XMK_USE_RECEIVER_PID_IN_SIGNAL it is not possible to use xRouteSignal() function in any case.
Copy & Paste in graphical editors
1007394 (Windows only): Problem with copy & paste of strings which includes Japanese characters. This problem only occurs when copying strings between two symbols.
Work-around: After copying the string, paste the string in a text editor and then copy it from the text editor and paste it in the second symbol.
CPP2SDL
If, on Unix, the CC or cc compiler is used for preprocessing the input to CPP2SDL, and messages are output during preprocessing, these messages will be present in the preprocessed file. This could lead to problems when this file is translated to SDL.
Work-around: Make sure that no messages will be issued during preprocessing by first preprocessing the files from the command-line.
Tagged types, where the name of the tag is the same as another declaration in the same scope, are not handled in an acceptable way. There will be errors when the generated code is compiled.
struct S {};int S;Work-around: Change the name of either the tag or the other declaration.
Overloading on the dereferencing operator (*) is not correctly handled by the Code Generator.
Complex combinations of pointers and multi-dimensional arrays are not correctly handled by the Code Generator.
The Simulator will not be able to simulate an SDL system that uses a C++ class with public members that are inherited from a base class with virtual inheritance. However, application generation for such a system works.
In Windows, CPP2SDL sometimes reports syntax errors in the preprocessed file rather than in the header file. Such an error message is therefore not navigable from the Organizer Log.
MSC Editor
- Defect 10149: If you use the "Edit | Make Space..." command with a value larger 100 or larger the symbols below your selected object will "disappear". The error occurs, since only one page is added to the diagram. You can reclaim your symbols by increase the diagram size with the "Edit | Drawing Size..." command.
- Defect 13737: If you are running the MSC Editor Standalone (i.e. not started from the Organizer), the preference changes you make in the Organizer takes no effect automatically. In order for the changes to take effect you have to copy the sdt.ini (on Windows) or .sdtpref (on UNIX) to the directory from where you are starting the editor in order for the preferences to take effect. E.g. if you are want to try out the example in the msctrace directory, you should copy the preference file to the <install dir>/examples/msctrace/<platform>.
- When opening an MSC PR file in the MSC Editor all the notes ( /* ... */ ) written in PR will be lost when the diagram is converted to MSC GR.
- Sometimes lines or symbols might get unconnected. If you experience this problem in some rare case, you should proceed as follows to avoid a crash: Try to drag the symbol or the (end of) the line so that it gets reconnected. If you succeed with this everything is fine again. What you definitely should avoid is to delete the symbol that the "unconnected" symbol or line was connected to before getting "unconnected", since if you then move the "unconnected" symbol or line, the editor will crash.
- When generating Encapsulated Postscript files (EPS) for multiple page Message Sequence Charts, only one file is generated containing the last page of the MSC.
SC to SDL converter
Converting SC to SDL does not work unless case sensitivity in SDL is set to OFF.
SDL Editor
Text outside drawing area:
If you type a lot of text in an object or if you open a diagram and the font that is used is larger than when the diagram was last saved, the text may flow outside the drawing area. This is visible if the text appears to the right or below the bottom of the drawing area, and the whole drawing area is visible in the window.
Connect to Text Editor:
When you select Connect to Text Editor - to edit object text in another text editor - and then exit the Organizer before you exit the Text Editor, a number of error messages may be displayed.
Work-around: Close the Text Editor or the SDL Editor before you close the Organizer.
The preference Editor*GateSymbolColor is ignored by the SDL Editor.
SDL Index Viewer
The normal search function in the Index Viewer can in some situations not find all occurrences of a text string.
Work-around: Make sure that no symbol is selected before the search begins or use the fast search function instead (by just typing on the keyboard when the Index Viewer window is in focus).
SDL Info Server
The SDL Info Server is used by the Signal Dictionary in the SDL Editor and the Type Viewer.
When using the Signal Dictionary, the SDL Info Server is not able to find signals sent in algorithms in task-symbols. E.g.:
task {if (IsCorrect)output ok;};Here the signal ok will not be found.
The following examples will not the SDL Info Server be able to parse:
newtype a inherits boperatorsputbits: W -> W;endnewtype ;newtype a inherits b addingoperatorsputbits: W -> W;endnewtype ;SDL Simulator
Transitions in global procedures are not handled in coverage table.
Undo does not work correctly if the system contains external synonyms.
Undo does not work correctly if Define-Continue-Mode is set to `On'.
SDL SimUI / ExpUI
When you simulate or validate in the UI and regenerate the running simulator/explorer in the Organizer and then choose select Restart in the UI, the UI might hang.
Quotation marks that are not within a string are consumed by the UI. So e.g. patterns in SDL Explorer commands can only be enclosed in apostrophes.
SDL Explorer
Transitions in global procedures are not handled in coverage table.
Time syntype in SDL system leads to compilation error for xEq_SDL_Time
Work-around: Do not use syntype of time.
Faulty behavior if queues are added to channels to or within block instance sets with the Define-Queue command.
ANY in an expression is deterministic. Only one result is given.
Work-around: If possible, use ANY in a decision instead. The SDL Explorer will then explore all the decision alternatives.
The MSC trace of input none in the Simulator is output of none with no input. This type of MSC cannot be verified in the SDL Explorer. In the SDL Explorer there is no trace of input none.
Work-around: Remove them manually.
MSC verification of block instance sets is not correct. The SDL Explorer cannot differ between signals sent from environment to one specific instance of the block type.
Targeting Expert
Windows only: The Targeting Expert will not work if the SDL Suite installation is done in a directory path containing spaces.
Target directory structure ...
When building a Threaded Light Integration for OSE with the coder library, a linker error may occur (efs_stderr not found at linking).
Work-around: Change the linking order in the generated makefile so that the OSE libs are linked in after the coder library.
Threaded Integration does not work with following options: MSC Trace, Handle time in seconds or Alternative signal sending.
Target Tester
If 'Allow large signal parameters' for the target library, the MSC trace is wrong (the output of the signal containing the large signal parameter is missing). In addition you'll get the following error in the text trace:
**ERR: Unknown trace message cannot be converted
**ERR: to MSCE message. Message will be ignored.
Complex signal parameters may lead to wrong values in the trace.
Complex signal parameters may lead to wrong values in the trace.
The Target Tester sometimes cannot establish contact to the Organizer, although the Organizer is running. Start the Target Tester again, it always works in the second attempt.
UNIX only: The Target Tester cannot remove some temporary files below the /tmp directory accordingly in some machine configurations. The result is that /tmp contains many files called /tmp/.sdt.cmicro.*. It is possible to either remove the files by hand (rm /tmp/.sdt.cmicro.*) or to use the reset command from the Cmicro postmaster $sdtbin/sdtmpm -r). This problem has to do with Solaris 2.5, which contains a bug when socket connections are to be finished.
Threaded Light Integration
When building an OSE threaded light integration using the TCP/IP module, an include path is missing in the Targeting Expert.
Work-around: Add -I$(OSEROOT)/sfk-solaris2/std-include in the "Include" text box in the "Compiler" tab in the Targeting Expert.
TTCN Suite known issues
General
TTCN Suite 6.1 on Linux can't open .itex file created on Windows or Solaris or TTCN Suite on Linux 6.2 and higher, and vice versa. The cause of this problem was in byte order in binary file format - Linux TTCN Suite 6.1 used incorrect byte order. So, if there are any .itex files created in Linux TTCN Suite 6.1 please convert them to MP format using TTCN suite 6.1 on Linux. Otherwise no Windows or Solaris TTCN Suite, or no Linux TTCN Suite 6.2 and higher, will be able to open such file.
You cannot open or convert test suites in the 3.1 format in Windows. This is because there is no version of ITEX 3.1 for Windows. If you have ITEX 3.1 on Solaris, you should export the file to MP format and import it in Windows.
On the Linux platform there is a limitation on which test suites can be loaded. Files in the .itex format stored by a TTCN suite version older than V4.6.2 cannot be loaded into TTCN suite on Linux. There are several workarounds, either open the file in V4.6.2 and save it in .mp format or open the file on Windows or Solaris platform and save the file there.
Directory list not updated on Solaris:
You can use a filter command in file selection dialogs to specify a new filter and update the file list. However, the directory list will not be updated. This means that if you recently created a new directory, it will not be visible.
When you import certain test suites from MP, there may be a problem with transferring the information (e.g. Description) in the overview tables to the tables in the dynamic part.
The TTCN standard allow path specifications to optionally include the suite identifier first. This has the unfortunate effect that if the test suite contains a top level group with the same name as the test suite there is, in general, no way of knowing if the first part of the paths is a group identifier or the test suite identifier.
ITEX assumes that if the first part of the path is equal to the suite identifier, it is the optional suite identifier and, when you import, strips it away. When you export to MP, it is always added to the front of all paths. That way ITEX is always able to import the MP files it exports. Note that ITEX v2.0 did not add the suite identifier at export, and therefore the problem described here may apply when you import MP files exported by ITEX v2.0.
The only remaining problem is importing test suites that have top level group identifiers that are equal to the test suite identifier without having the suite identifier prefixing all paths. You can avoid this problem by temporarily renaming the test suite to something unique before importing it into ITEX and then renaming it back when in ITEX.
On-Line Help
Viewer selection confusion on Solaris:
In the Solaris version, there are two separate ways to specify what application to use for displaying on-line help. You can either select it in the ITEX resource file or in the Preference Manager. If these are set differently, what application will be used depends on from where you invoke the on-line help first.
Table Editor
Handling of the tab character:
You cannot type a tab character in the Table Editor. However, a tab character from an MP file will appear, but the width will be different in the Table Editor compared to the printout.
TTCN Analyzer
Defect 4980: The analyzer will make an incomplete analysis when there is an empty behavior line following a (possibly erroneous) send or receive statement.
Type lookup:Due to how the type lookup mechanism is implemented, the context where a type is referenced have to be seen before encountering the value to look up. This has the effect that constructs like:
[{a 2} = variable_with_sequence_as_type]is going to fail looking up the type of the sequence value.
Work-around: Rewrite that construct to reference the variable first:
[variable_with_sequence_type = {a 2}]ITEX does not analyze the "Type Encoding" field in "Simple Type Definitions" and the "Encoding Variation" field in "Structured Type Definition". These fields do not have any semantics in the current implementation of ITEX.
TTCN to C Compiler
Defect 6238: TTCN encoding definitions are not supported by the CCG. This is not considered an error, but rather a limitation.
3002315: If a Test Case Variable has the name Foo, and a Test Case is named FooD, this will cause a compilation error. So, there is a limitation that a Test Case may not have the same name as a Test Case Variable, plus an additional 'D'.
SDL and TTCN Integrated Simulator
Defect 6556: The TTCN Simulation kernel cannot encode OBJECT IDENTIFIER:s.
Defect 9122: On Windows NT platforms, manually sent signals to the TTCN Simulator at Simulator startup are not consumed properly.
Defect 10764: CANCEL statements without parameters does not work in the SDL and TTCN Integrated Simulation with concurrent TTCN.
Aborting an TTCN Simulator run:
Aborting the execution of the TTCN Simulator when the SDL Simulator is running, will inhibit further communication. Always restart the SDL Simulator when you abort the execution of the TTCN Simulator.
GCI / EGCI API
1008933: GciCreate function is not working and there is no plan to implement the function.
Instead, task (taskcreate, taskdelete, etc.) is recommended to use.
http://www.ibm.com/rational |
![]() |
![]() |
![]() |
![]() |