IBM
Contents Index Previous Next



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 T1
endnewtype;
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.

ASN.1

  T1 ::= SET OF INTEGER
  T2 ::= T1 ( WITH COMPONENT( 0 .. 5 ) )

generated SDL

newtype T1
  String (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 INTEGER
  T2 ::= SET OF ConstrainedINTEGER

TTCN 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.

M
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
 
S ::= SEQUENCE {
        x BIT STRING,
        y INTEGER
}
 
END

Types for fields x and y should have [1] IMPLICIT and [2] IMPLICIT tags after automatic tagging.

mapped to TTCN


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.

Print

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 struct
 a, b integer;
endnewtype;
newtype t string(s, empty)
endnewtype;
 
dcl v t;
 

When now the following two level component selection is performed:

 v(2) ! a

i.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).a

The 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.

Example:

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

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 b
operators
putbits: W -> W;
endnewtype ;

The following is OK:

newtype a inherits b adding
operators
putbits: 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.

MP file format problem:

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
Contents Index Previous Next