New in v2002 Release 2 Service Release 1 (v2002.05.21 build 282.001, October 2002)
New in v2002 Release 2 (v2002.05.20 build 204.001, August 2002 )
New in v2002 (v2002.05.00 build 340.001, December 2001)
- A new Rational Test RealTime feature whose function is to uncover memory leaks and other kinds of memory errors. Using a highly efficient Source Code Insertion (SCI) technology, this component tracks memory usage while your application is running. Upon completion, Rational Test RealTime PurifyLT graphically reports the total amount of memory dynamically allocated and the amount of memory that was never released - as well as the allocated memory blocks which are no longer referenced, also called memory leaks. Other system events and memory errors are tracked down as well, including Array Bound Write Late Detect (ABWL), Free Memory Write Late Detect (FMWL). This tool supports both the C and C++ languages and can monitor target-based application execution through the use of the Rational Test RealTime Target Deployment Port technology.
- A new Rational Test RealTime feature whose function is to identify performance bottlenecks. Using a highly efficient Source Code Insertion (SCI) technology, Rational Test RealTime QuantifyLT counts the number of calls made by each individual function or method of your application, as well as the total time spent in each. You are provided with an easy-to-read, graphical report that highlights the functions or methods consuming that most precious of resources - time - thereby aiding your efforts to accelerate execution. This tool supports both the C and C++ languages and can monitor target-based application execution through the use of the Rational Test RealTime Target Deployment Port technology.
- Rational Test RealTime now ships with a single GUI integrating all the Rational Test RealTime runtime observation and testing tools for all supported programming languages and execution targets. A Project Wizard walks the user through the steps necessary for building a new runtime observation and test workspace, providing ample opportunity for the importation of preexisting information located in your development environment.
- The Target Deployment Port Technology has been unified over all of the Rational Test RealTime tools and greatly improved. Several Rational Test RealTime runtime observation tools can now be used at the same time. A Target Deployment Port editor provides an easy path to adapt Rational Test RealTime to new development and execution environments.
- Rational Test RealTime now enables the execution of Unit Testing, Object Testing, and System Testing test cases in the same Test Campaign. This ensures a more manageable regression testing effort that targets all levels of system complexity without additional overhead.
- Rational Test RealTime now provides UML sequence diagram tracing of Unit Testing and System Testing test harness behavior - this is in addition to the already available trace of the application-under-test and of the Object Testing test harness. In particular, Rational Test RealTime System Testing provides an on-the-fly UML sequence diagram execution trace of the interactions between each virtual tester and the system under test (including timing information). Unit Testing accomplishes the same goal, using a UML sequence diagram to show the interactions between the Rational Test RealTime Unit Testing test harness and the component under test.
- Using a brand new probing feature, Rational Test RealTime System Testing can capture interactions between several components of a system and then replay this behavior through simulation of the components via Rational Test RealTime System Testing Virtual Testers. This greatly simplifies test script creation, acting as a stubbing feature for the components of your system that are not under test.
- A Rational Test RealTime add-in for Rational Rose RealTime provides Rose RealTime users with one-click access to Rational Test RealTime runtime observation tools (PurifyLT, QuantifyLT, Coverage and Trace). Any C++-generated Rose RealTime application can now be automatically instrumented by Rational Test RealTime, providing the user with information about memory errors and leaks, performance bottlenecks, code and model-level* coverage, and execution traces. (*Model-level coverage is achieved by color-coding Rose RealTime state machines. Model-level coverage rate information is provided within Rational Test RealTime. )
- Rational Test RealTime Coverage provides some new static metrics such as the number of source lines of code (SLOC).
- Rational Test RealTime Trace is now able to timestamp all recorded events, displaying this timing information in its UML Sequence Diagram.
- Rational Test RealTime Unit Testing for Ada has been greatly improved and now supports all Ada 95 language specifications.
- Rational Test RealTime integration with Rational ClearCase for configuration management has been greatly improved.
- Rational Test RealTime is now integrated with Rational ClearQuest for defect submission.
- Rational Test RealTime is now available in the Rational Unified Process in the form of tool mentors.
- Rational Test RealTime is now integrated with Rational Apex for Ada.
- Rational Test RealTime runtime observation tools are integrated with Microsoft Visual C++ IDE.
- The following features are now deprecated:
- Unit Testing for C++: The Object Testing feature of Rational Test RealTime has been developed from the ground up to take advantage of the object-oriented capabilities of C++. Unit Testing is now freed to focus on its expertise, the testing of C and Ada applications.
- System Testing for C++: The intuitiveness and ease of deployment associated with System Testing for C has not yet been achieved with C++. Rather than maintaining this feature, we have decided to withdraw support until it meets our standards. System Testing remains the ideal tool for C message-based testing; C++ testing should be achieved using the Object Testing feature.
- Windows 95, 98 and ME platform support is discontinued
New in v2001A (v2001A.04.01 build 293.016, June 2001)
- V2001A is the first version of Rational Test RealTime. It includes the following features:
- Unit Testing for C & C++
- Coverage for C, C++ & Ada
- System Testing for C & C++
- Object Testing for C++
- Trace for C & C++
Supported Platforms
- Windows NT 4.0 with Service Pack 6a
- Windows 2000 Professional Edition
- Windows XP Professional Edition
- HP-UX 10.20 and 11
- Solaris 2.6, 7, 8 and 9
- Linux Red Hat 7.2, 7.3 and 8.0
- Linux SuSE 8.1
- AIX 4.3 , 5.1 and 5.2
This section describes the whole set of noteworthy fixed problems in the 2003.06.00 release.
All Runtime Analysis C++ - 2002.05.21/2459 attolccp modifies time stamp of input fileThe C++ instrumentor modifies the time stamp of its input file on Windows Operating systems only.
attolcc does not handle the -MM option to the GNU compiler correctly. This option only generates the makefile dependencies. attolcc then tries to instrument these dependencies which is incorrect.
Code Coverage C++ And C - 2002.05.21/2563 INTERNAL ERROR: Empty Fifo in PopIfdef
When instrumenting C or C++ code with the following syntax:
#if 0 /* We curently
have no (socket) API for letting UDP actively participate ... */ i.e. a comment
on the same line as a #if, then the following error occurs:
TestRT attolcc1- INTERNAL ERROR:
Empty Fifo in PopIfdef() [halstead.inc:232] TestRT attolcc
- The preceding command-line caused an error
Code Coverage C++ And C - 2002.05.21/2561 (-) Monstrous macro makes Coverage viewer choke.
Huge macro expansion might result in incorrect coverage percentage calculation.
Code Coverage C++
- v2002 Release 2/2093 Instrumentor inserts probe before semicolon
The instrumentor inserts a probe before the terminating semicolon which results in code that does not compile.
In some cases, the test script template automatically generated does not contain SERVICE block(s) for the function(s) under test but only for the renames line(s) found in the analyzed package specification.
When the report generator is executed it generates a Return code 7 with the following output attolpostproada test test TestRT-I-STARTEXEC, Rational(R) Test RealTime C and Ada Test Report Generator 2002.05.21.468.004 TestRT-I-COPYRIGHT, Copyright(C) 1992-2002 Rational Software Corporation. All rights reserved. TestRT-F-STXERRTDC, Syntax error in the file .TDC & : 274
Component
Testing for Ada 83 - 2002.05.21/2443 When using nb_times on a variable
that is of a type that
is constrained then illegal code is generated
When using nb_times on a variable that is of a type that is constrained then illegal code is generated. Example: When testing the following variable: type T_byte is new Integer range 0..255; Titi : T_Byte; as follows: Var CALC.TITI, Init from 0 to 250 nb_times 10, ev = Init then the following code is generated: Attol_Memo_11 : CALC.T_BYTE(0..255); which is illegal.
The following error occurs when compiling a test script "CASE overflow in the module generate_tagged_recursive_string_mask : bad type"
An environment variable (overloaded in the Element block) appears twice in the component testing report.
Component Testing for C does not recognize 'static' variables that are of a typedef'ed data type when generating
using 'Test static/private data or functions: Yes'
When generating a stub for a function with the following prototype unsigned int func1(int length, long int array[]); the test script generator generates a STUB that does not compile.
When engaging contract checking on template code the code does not compile with the following errors: GuidewayResourceServer.cpp(326) : error C2275: 'GuidewayResourceServercpp315_110' :
illegal use of this type as an expression GuidewayResourceServer.cpp(315) : see declaration of 'GuidewayResourceServercpp315_110'
Cannot instrument method which has a return type of vector
Rational(R) Test RealTime C++ Test Compiler 2002.05.21.468.004 Copyright(C) 2001-2002 Rational Software Corporation. All rights reserved. y.otd.cpp: Preprocessing... y.otd.cpp: Instrumenting... atoprepro: semantic error: test1.otc:23: While resolving the TEST CLASS `test1.otc:23', an inheritance cycle
was found in `Ă^O' . > Dummy y.otd.cpp: Compiling... Done. test1.cpp: Preprocessing... test1.cpp: Instrumenting... atoprepro: semantic error: test1.otc:23: While resolving the TEST CLASS `test1.otc:23', an inheritance cycle
was found in `Ă^O' . > Dummy
When using option -NOINCLUDE source code between #ifdef (or #if defined) and the last #endif is not instrumented.
When testing template classes, if you do not specify the option -test_each_instance then no contract check file is generated.
Compiler complains about a binary '+' : 'struct _ATO_void_ret' does not define this operator ...
The test template generator can cause an include file to be included twice in the test script. If the include file is not protected against inclusion then an error during the build can occur " invalid redeclaration of type name".
Objects created with new in test scripts are reported as being leaked after each test. Also in the interface between Memory Profiling and Component Testing for C.
Instrumentation of some advanced C++ constructions does not work correctly
"Unsufficient number of calls to _ATO_OBSTOOLS_DUMP in generated code; needs one more at the end of _ATO_Run() method of any Test Class just before the return(0)"
When a node is added to source control (and the corresponding, hidden child files), then the child files
should also be checked in or out when the node is checked in or out. Error messages may include: - Received an error " FATAL ERROR: FOO.FDC cannot be removed Permission denied or Error checking out Foo.otd01.tsf Not at element: "Foo.otd01.tsf" Not an object in a vob: "Foo.otd01.tsf"
Code Coverage C++ - 2002.05.21/2626 InstumentOr omits struct keyword when instrumenting.
Ternary expression with '0' as assignment for the false branch results, when
instrumented in incorrect code (incomplete cast when struct keyword necessary).
Coverage C++ - 2002.05.21/2519
Activation of signal handling results in incorrect code.
"atc.c", line 780: Error: _atc_register_signal() was previously declared "extern", not "static".
attolccp failed with a very long COMMENT argument.
A semi-colon is misplaced in case statement causing a compilation error.
In some circumstances an operation is reported twice in the coverage result when using the integration with RoseRT
Quality Architect (RQA-RT).
Under some circumstances operations are reported twice when using Test RealTime with Rose RealTime
Quality Architect (RQA-RT).
With Coverage level MC/DC selected, the error "symbol __atc_init_const_compound_done multiply defined" is seen at link. This behavior was observed when several instrumented sources containing multiple conditions are linked together and when RTRT_VARIABLE_INIT_SUPPORTED is set to 0 in the used TDP.
The manuals do not include filename descriptions of the operation, so it is still a mystery, "how" and "what"
are missing.
Add documentation for the syntax format of the Configuration Settings > "additional Objects or Libraries" field
In the Reference Manual the syntax description for TEST CLASS is incorrect: TEST CLASS <test class name> [ ( <formal parameter> [ , <formal parameter> ] ) ] [ : <parent class> ] { <test class item>} It should state as follows: TEST CLASS <test class name>[(<formal parameter>[,<formal parameter>])]
[ : <parent class>][<actual parameter>[, <actual parameter>]] { test class item }
When trying to access source control via File->Source Control the "Source Control" option is grayed out. In order to activate or make this option available you must do the following: 1. Go to Edit->Preferences 2. Select CMS 3. Under "Selected Configuration Management System" select the source control tool from the drop down list 4. Click ok Now, if you go to File, the "Source Control" option will be available.
Documentation update about the value of the field 'init' calculated at preprocessing and not dynamically.
The Rational Test RealTime help pages are not shown correctly in the Netscape 4.7 in Solaris.
In System Testing for C, the instruction PRINT does not accept floating point values. Only integer values are displayed in the report.
In System Testing for C, the option -RA=ERR on the report viewer does not generate a report with only variables in error, in fact no variables are visible at all.
The License Administration Guide document provided with the product refers to Rational Suite, but in fact also applies to Rational Test RealTime as well as other Rational Software products.
If the C/C++ libraries shipped within the standard Linux distributions have been replaced by more recent libraries, then the command line interface tools might terminate abnormally.
When instrumenting with Memory Profiling the instrumented code does not compile due to the use of "for" variables outside of the "for" block. Example: class I { int Value; public : I(int v) { Value = v; } bool operator >= (int v) { return Value >= v; } I &operator -- () { Value--; return *this; } operator int () { return Value; } }; int main ( void ) { for ( I i = 3; i >= 0; --i ); return i; } NOTE: This is an old style syntax and illegal in ANSI C++ as the "for" variables are now limited to the interior of the "for" loop.
The instrumentor generate access to an unused var because this one has the same name as the local var (here foo)
and the compilation fails. extern char foo[10]; int main () { char foo[10]; foo[0]=0; }
The following code cannot compile after instrumentation because the instrumentor insertion var access, after the
static X x declaration. class X; class Y { static X x; }; class X { public: X() {} }; X Y::x;
The instrumentor generates ambiguous access to 'Z::_atp_parse_globals' int i; class X { static int a; public: static void x() {a=0;}; }; class Y { static int a; public: static void y() {a=0;}; }; class Z : public X, public Y { public: static void z() {}; }; void foo() { X::x(); Y::y(); Z::z(); }
Memory Profile report viewer abnormally terminates when attempting to view a Memory Profiling report that loads a specific static (TSF) file.
Clearcase may work fine for the user that created the project. However not all the files (specifically the .dcl and .stb files) needed are put into version control when checking in the project. So when a user works in a different view, the build is not able to complete. The following error is seen: atoprepro: error: Cannot open `Foo.dcl'. atoprepro: error: Cannot open `Foo.stb'.
The Component Testing for C++ Wizard does not generate appropriate stubs for static fields. If a stubbed class contains a static field, and this field is used by the test script and/or the tested source code, the linker will report an undefined reference to the static field.
When trying to filter what to include in the Performance Profiling viewer, there seems to be no help
connected to the dialog (Performance Profile:Filter). The only help that comes up is about the UML/SD viewer.
Rounding error in the performance viewer. Very small results in the "F time (% of .root)" is rounded to 0.1.Plug in Rational TestRealTime / RoseRT C++ And C - 2002.05.21/2604 Disable instrumentation of Selected Component does not work.
When selecting Tools -> Rational Test RealTime -> Disable InstrumentationPlug in Rational Test RealTime / RoseRT C++ - 2002.05.21/2574 RoseRT integration doesn't work on WindowsNT 4.0
of Selected Components, the ATTOL section in CompilationMakeInsert is not
erased.
Studio does not start from RoseRT when user wants to view the test results.
Plug in Rational Test RealTime / RoseRT C++ - 2002.05.21/2573 RoseRT / Rational Test RealTime Out of stack space
The following error is generated in RoseRT: Error 28 on line 1235: Out of stack space
Plug in Rational
Test RealTime RoseRT C++ - 2002.05.21/2461 The test results are not
stored in the specified output directory
Rational Test RealTime test results are not saved if the output directory in RoseRT component is changed.
RoseRTCov.exe abnormally terminates when processing Rational Test RealTime results while using the
Rational Test RealTime/RoseRT integration
If the user follows the steps in the documentation "Using the Product with Rose RealTime", when user does the step, "Enable Instrumentation of Selected Components" the following message is reported... "Sorry, no corresponding RTRT Target Deployment Port found for Select... Please, check the content of the file C:\PROGRA~1Rational\TESTRE~1bin\intel\RoseRT\TDP.txt"
Runtime Analysis C++ And C - 2002.05.21/2620 Instrumentation errors occur with unnamed structs
Instrumentation errors occur with unnamed structs
Runtime Analysis C++ - 2002.05.21/2616 "_ATP_PARSE_GLOBAL" passed 2 arguments, but takes 1
Compiler error occurs in _ATP_PARSE_GLOBAL macro because the macro passed
two arguments but macro is expecting only one.
Runtime Analysis C++ - 2002.05.21/2600 (-) error #264: invalid base class
Error "error #264: invalid base class" raised when declaring an array of
zero size reduced to warning.
Work-Around:
Reduce the error to a warning, which allows the instrumentation and compilation
to complete. This can be done by modifying the file /targets/clinuxgnu/ana/atl.opp
and adding the line --diag_warning 264
Runtime Analysis
C++ - 2002.05.21/2529 Instrumentor should not pass the -frepo option
to the compiler
Instrumentor should not pass the -frepo option to the compiler
The attolccp instrumentor is not MS VC++ 6.0 compliant and fails emitting #80 and #793 error messages
tuc45% attolccp ActivationState.cpp ActivationState.aug.cpp atl.hpp atl.opp -PERFPRO TestRT attolccp: "source_files/FixedSizeAllocator.h", line 42: error #894: function "operator<<" is not a template friend ostream & operator<< <>(ostream &stream, const FixedSizeAllocator&right);
When a class contains a member variable that is an array of arrays and there is no default constructor, then the instrumented file does not compile.
If a long string is entered into the "Others" text field of the Rational Test RealTime plugin to MS Visual 6, then the next time the dialog box is reopened the plugin will be disabled. The options set are taken into account and the instrumentation is performed. It is when the options dialog box is reopened that the plugin is reset.
Compiler error when the preprocessor inserts a #line into the middle of a return statement containing a call and when one of Runtime Tracing, Memory Profiling or Performance Profiling are
selected.
The problem seems to be when "pthread_exit" is called, the return statement is never reach. In fact pthread_exit is not supported.
The code that is generated by the C++ Component Testing compiler is instrumented with contract checking enabled for a particular class then the following error can occur: file.h:67: macro `_ATT_FIELD_MTD' used with too many (3) args
The user interface aborts whilst reading in the test results with the message Arithmetic Error (core dump)
The build.xml delivered with the ANT example does not work on Windows. The javac tag requires a destdir attribute.
Instrumenting code with variable argument macros va_arg() yeilds these errors: ERROR: syntax error near char ERROR: syntax error near "arg %d = %s\n" Cannot recover from earlier errors ERROR: Error during code instrumentation
During the instrumentation a segmentation fault occurs.
The instrumentor detects an internal error is stl_deque.h and stops: P+Linux attolccp: "/usr/include/g++-3/stl_deque.h", line 323: internal error: assertion failed at: "class_decl.c", line 1310 { _Node_alloc_type::deallocate(__p, __deque_buf_size(__bufsiz, ^
When user clusters up some libraries and tries to pass them down to the linker with a
-Wl,--start-group leaky.o empty.o -Wl,--end-group, attolcc lays them out for the link
without 'enclosing' them. This causes undefined symbols during linking. When I cluster up some libraries and try to pass them down to the linker with a -Wl,--start-group leaky.o empty.o -Wl,--end-group, attolcc lays them out for the link without 'enclosing' them. This causes undefined symbols during linking.
The Performance Profiling Viewer sorts the methods by the first letter of the method signature that is usually
the return type and not the class and method name. The report is now sorted in the same order as the functions appear in the source code.
The option -g3 results in the #defines remaining in the .i file. It also causes the predefined defines "__DATE__", "__TIME__" etc to be redefined at the beginning of the file. After instrumentation the compilation of the instrumented file results in some warning of the following type: file.c:0:warning: `__DATE__' redefined The option -Werror converts the warning to an error and the compilation stops.
When first running the examples on a UNIX machine, the TDP selected by default is "C Visual 6". The Build stops with an error.
Runtime Tracing C++
- 2002.05.21/2454 When instrumenting templates the wrong template parameter
name is chosen.
When instrumenting templates the wrong template parameter is chosen. The template parameter name is from the template declaration not from the instantiation. Hence the error messages of the following kinds occur: RefHashTableOf.hpp: In method `RefHashTableOfEnumerator::RefHashTableOfEnumerator(const RefHashTableOfEnumerator &)': RefHashTableOf.hpp:279: type/value mismatch at argument 1 in template parameter list for `template XMLEnumerator ' RefHashTableOf.hpp:279: expected a type, got `TElem' RefHashTableOf.hpp:279: class `RefHashTableOfEnumerator ' does not have any field named `' or The identifer "_T2" is undefined template char *std::Alloc_traits<_Tp,std::allocator<_T2> > ...
The following code, when instrumented with runtime tracing does not compile: #include <hash_map> template <typename Key, typename Value> struct MyPair : public pair { MyPair(const Key& k, const Value& v) : pair<Key,Value>(k, v) {} }; int main() { return 0; }Studio All - 2002.05.21/2618 If the .rtp file is read-only, all changes to the project are lost.
When Studio detects changes to the project, it asks the user whether he/she
wishes to save the modifications to the .rtp file. User says "yes", then Studio
detects that the .rtp file is read-only, it then just informs the customer
that it's unable to save the file.
Studio C - 2002.05.21/2517
Cannot deselect External command on top project level
External commands are always executed even if checked for no build.
Classes inside namespaces will not be available to perform component testing on, ie they will not show up in the
pick list of component testing classes a user can select. But it will also result later in analyzing failures
if those classes are referenced in other classes.
If for some reasons a project fails when building, Rational Test RealTime stops and will not try to execute
the next project on the list.
TestManager loops when launching a Rational Test RealTime test case. Rational Test RealTime Studio is not launched.
Attempt to print UML diagrams under Solaris results in abnormal termination of Studio.
The testing of classes inside namespaces results in the classes at the first level of the namespace being ignored.
Selection of single build stages does not function properly.
Problems encountered whilst importing a specific Makefile on the Linux platform where no files were imported. The same task on the Windows platform encountered no problem.
Import script for MS Visual C/C++ does not import compiler/linker options during Import process.
Defining a folder in "Project > Settings > Directories > Build" does not work correctly
If an activity node is minimized and a build is performed then no green ticks appear when the node is maximized.
If user unchecks all build options except link then tries to build the node, the user interface will
still compile the source files and the test scripts.
If a Component Testing for Ada node contains a mixture of instrumented and non instrumented packages, then the order of the files in the node becomes important. If the last file in the node is a non-instrumented file, then the following error occurs during postprocessing: No TIO instruction found.
Component Testing for C++: When the include file extension is .hpp the component wizard does not generate the project correctly. It creates the activity with the source file being .hpp not the .cpp. When the file is renamed to .h (and the source file is modified to include the .h file) then the wizard correctly adds the file under test as the .cpp file.
Doing a clean does not clean all the generated files.
When building a test node after modifying just one file in the node then all the files in the node are rebuilt.
Adding more than 1000 source files into a project might require a lot of memory.
It is not possible to modify the API file list of a System Testing node once it has been set by the wizard. The API file list is normally modified through the "Probe control" chapter of the settings dialog box.
The "Probe Control" chapter is only available on the System Testing node. However when the node is
created using the wizard the API file list is stored in the PTS node. It is therefore impossible to
modify and impossible to delete because there is no "probe control" option in the settings dialog
box for the PTS node
The Component Testing for C++ Wizard does not prompt before overwriting an existing contract file.
Instead the file is renamed with a .1 (one) extension.
Studio C++ And C - 2002.05.21/2127
Application files disappearing from Wizard
Files added to the wizard during a first run, diseappear from the list when the wizard is run again.
There is no way to pass arguments on the "java" command line.
The TestManager plug in searches the Windows registry database to find where Test RealTime has been installed. Unfortunately if the database contains keys from a previous release the plug in will not work.
Through the settings it is possible to pass parameters to the main() function but it is not possible to pass values to the Java Virtual Machine.
Instead of replacing the selected string by the one in the buffer, the buffer is inserted somewhere in the selected string.
In the settings for the System Testing node after modifying the setting: "General" > "Directories" & ""Temporary" and specifying a complete pathname (ex c:\tmp\cvisual) the supervisor script no longer works and the following error messages are displayed: Splitting '/c:\tmp\cvisual6/c:\tmp\cvisual6_00.rio' traces file... TestRT-W-CWDVFAILD, [exec.spv/Line 9] Change to directory $COMP_DIR failed TestRT-W-EXEFAILED, Execution of Id00 failed TestRT-I-ENDNOEWAR, End of execution with 2 warning(s) Can't open destination file "/c:\tmp\cvisual6/c:\tmp\cvisual6_00.rio.date".
Performance Profiling Viewer Find function does not search the document from top to bottom.
Strings that have been entered for searching are not stored in the combo box list.
Find function in Performance Profiler does not find all occurrences of a text string.
Tests are always rebuilt even if nothing is changed. When executing a test there is a pop up dialog: "You have changed settings, compilation flags or source file content. Do you want to rebuild?"
For the System Testing component, it is not possible to set the -RA flag on the report generator from the settings dialog box.
TheXML tags is not generated in the metric file. Only the tags is generated.
When a test report, containing failed tests, is open and the ‘failed tests only’ button is activated, when the report and the project are closed and then when a new test result is open, then, the ‘failed test only’ button is activated but all tests (passed/failed) are displayed.
When a unit is excluded from instrumentation in Java, it is necessary to add manually the package name.
When editing a file the save icon becomes accessible. If another file is selected in the asset browser, then the save icon becomes inaccessible. It is then difficult to save the modifications in the file.
Adding the NEXT_STEP instruction in a ptu does not write it in bold.
When using the wizard to generate a test node based on a procedure only, the unit is not shown
in the dialog to select the code under test.
JVMPI classes are not filtered in the runtime tracing report. This affects all runtime tracing reports other than the one that is dynamically generated during application execution.
System Testing for C - 2002.05.21/2554 (-) Generated code does not check return values of malloc() calls.
Generated code does not check return values of malloc()-calls. This might result in unexpected behavior,
especially if in memory restricted environments, the OS runs out of memory.
System Testing for C
- 2002.05.21/2261 Lots of nested unions cause a segmentation fault
The preprocessor fails with a seg. fault due to a lot of nested unions.
'Build->Directories for Libraries' field is not used during the build.
When using the Solaris VxSim TDP (csolvxsim.xdp) with debugging turned on the following error occurs:
"No such file or directory".
Target Deployment
Port C - 2002.05.21/2533 xdp contains function declaration without
asterisk '*' should be void* usr_memcpy()
The .xdp file contains function declaration without asterisk '*' should be void* usr_memcpy().
When compiling the TDP for a target that does not support standard input and output
then a compilation error can occur in lib/image.c as there is a call to fprintf(stderr,...);
Sun WorkShop 6 update 2 C 5.3 issues warnings about Anachronisms in the TDP files.
Creating a test node which contains spaces and building the node causes an error, as the tests scripts ( .otd, ... ) has been created with the Node name the compilation failed.
Zero sized arrays are handled wrong char* x=new char[0]; This will return zero in Test RealTime.
There is a defect in file atp.c in function _atp_suppress_from_freeq. The _atp_last_freeq list will never be freed.
The information is not passed on to the compiler/linker. The TDP has to be modified: The "$libs" variable in the atl_link function has to be passed to the command line.
In the TDP Editor, the link function by default is semantically incorrect. The reference to the array
containing the library directory is called LibPath in the prototype but is sued as Libpath in the function
(the P has changed case).
When trying to use the macro ENV_SET_IF_NOT_SET_VARIABLE (for example: ENV_SET_IF_NOT_SET_WIND_BASE), the variable does not get set at all.
The caix.xdp target deployment port cannot be used with the latest version of the IBM compiler that is delivered with AIX 5L v5.2.
Intermediate files with the extension .aug.c[pp] cannot be compiled with compilers that do not allow
double-dot extensions.
Compilation errors can occur when using a compiler that does not like tilde (~) characters in file names.
This occurs when "long" names are replaced with their MS-DOS "short" name equivalents.
Rational Test RealTime Studio abnormally terminates when selecting the Test Selection for a PTU file.
Internal procedures of the tester not correctly declared, if very specific testing constellation chosen.
Code generated from the test script contains calls to non existing functions. For example Edp5. Thus the code generated does not compile.
When a test script has been modified, it is not possible anymore to use the option "Display diff of last two test runs". The following error message is displayed: TestRT-F-EXE_ABORT, FATAL SHUTDOWN DURING EXECUTION
Test Report Generator gives a warning "TestRT-W-INTERNERR"
When using a VAR instruction with in line formatting as follows: VAR First_Bit, uint#h, init = 16, ev = init where uint is "unsigned int". Then the value displayed in the report is wrong (0xA) but the test is correct.
A stubbed function takes one _in parameter consisting of a structure, containing a union. If only one member of the structure is to be tested, but not the union, there is still a warning about the union member selection.
If a constant, declared in the private part of a Specification, refers to a public type, then it will be used in the
Test Plan to initialize variables.
On the test script compiler, the option -RESTR=NOPOS does not work. Using the pragma "pragma attol_nopos" produces code that does not compile with a SMART compliant compiler.
Unit testing of representation clause on unchecked types not supported.
Code generated for STUB produces a compiler warning as an unsigned integer is compared to a signed integer.
Imbricated packages and types are not supported in 2002.05.20.468.004.
It is not possible to use the "Display diff of last two test runs" with two different TDPs as the postprocessor searches for the previous test run data in the TDP working directory.
Report generator abnormally terminates on complex aggregates
The test script generator does not generate variables of the right type for a procedure that takes a parameter that is of a sub type. Instead it generates variables that are of the base type. This is not acceptable on certain compilers.
Inline function declared in .h files not recognized. PTU does not contain services for them.
Example : int test(p1, p2) int p1; char p2[4]; { int result = p1; int value = 0; value = f1(p2); result += f2 (value); return result; } A stub will be generated for f1 but not for f2. If the prototype exists, the stub will be generated.
Rational products known installation Issue
The Rational installer is incompatible with the Windows "Change Journal" feature.
Rational has determined that, under certain circumstances, file-system corruption can
result from installing Rational version 2003 products on Windows 2000 to an NTFS partition
that has the Windows "Change Journal" (log) enabled on it. Rational is actively working with
Microsoft to better understand and identify a fix for the problem. Before installing any Rational
version 2003 product onto a computer running Windows 2000, please read Rational Solution 182435434
at http://solutions.rational.com/solutions/display.jsp?solutionId=182435434 for the latest information. Alternatively, you can search the Rational Solutions Knowledge Base at http://solutions.rational.com/solutions for the text "Change Journal".
All Runtime Analysis C++ - 2003.06.00/2578 (-) Coverage data displayed for Component Testing for C++ scripts and generated code
In the source file names contains the Japanese character "SO", the .dcl and .stb script files, and the code generated by Component Test for C++ (.otd.cpp file) are displayed as source files in the Coverage Viewer.
Work-Around:
Use the option "--multibyte_chars"
If the user declares an array as follows: Toto : array (0..3) of Integer; (i.e. with 4 elements in the array) and then initialize it as follows: Var CALC.TOTO, Init = (123, 2, 3, 4, 5), ev = (104, 11, 12, 13, 14) (i.e. with 5 values) Then no error is raised and the report states that all the elements, including the fifth, are correct.
Work-Around :Put the right number of elements in the initialization of the array.
In Ada language, a COMMENT instruction between SERVICE and TEST will be not written in the report.
An extern union variable declaration containing assigned bit fields in a header (.h) file is seen by the tool as
an "extern" declaration. The tool creates an instance in the test script so that there is no error at the link stage. When there is no typename for this variable, the tool regenerates the union completely but omits the bit fields.
Work-Around :
The code in the .h file is a variable declaration; the tool sees this as an "extern" declaration so it creates
an instance in the test script so that there is no error at the link stage. As there is no typename for this
variable, it had to regenerate the union completely. Workarounds: 1. Create a typename for the union. Example: typedef union { unsigned char all_bits; struct { unsigned int vtvf_count : 1; unsigned int tns_count : 1; unsigned int tms_count : 1; unsigned int ataf_sinus : 1; unsigned int ataf_farr : 1; unsigned int unused_5_7 : 3; } bit; } u_egm_cntl_flags; DECLARE u_egm_cntl_flags egm_cntl_flags; The test script generator will then use the typename. 2. Modify the PTU to remove the variable declaration as the include file is included so the variable will be declared. Make sure that CREATE_MEM is correctly defined in
Component Testing for C++ - 2002.05.21/2598 (-) atostart crashes, The instruction at "0x7c006196" referenced memory at "0x00000000"
atostart crashes, The instruction at "0x7c006196" referenced memory at "0x00000000"
Work-Around:
Re-try via the Asset Browser (sort by files).
Code Coverage C - 2002.05.21/2322
(-) Instrumenter does not recognize valid ANSI-C syntax for floating constants
Binary exponent part indicator 'p' or 'P' not recognized by the instrumentor.
Work-Around:
#pragma attol accept "p2047" in atct.def
Coverage results are now output into the file "atlout.spt" and in create mode. The file 'attolcov.tio' is created by calling the batch tool atlsplit on the 'atlout.spt' file. The default filename 'attolcov.tio' can still be changed using the "ATC_TRACES" environment variable. The test timestamp (line DT in the tio file) is written by the atlsplit tool and not anymore by the TDP.
Documentation Java - 2002.05.21/2621 (-) Environment settings for javic in batch mode not explained.
Classpath environment variable has to be set correctly when launching javic
on the command line. Work-Around: Initialize the current environment accordingly.
Further details areavailable in the Solution Document nr.
184402801 at http://solutions.rational.com/solutions/search.jsp
Documentation C++ And C - 2002.05.21/2610 (-) Documentation: Incorrect instructions for "Creating an Activity"
Incorrect instructions for "Creating an Activity" in the Runtime Analysis Tutorial
Installation C++
And C - 2003.06.00/2526 (-) Installation of the Microsoft Visual Studio
6.0 plug-in over a previous version.
On windows, if the Rational Test RealTime Microsoft Visual 6 plug-in has been launched using a previous version of
Rational Test RealTime and was not uninstall by all users before installation of this new version, this will cause the
following error : "Rational Test RealTime not properly installed".
Work-Around :
1) Launch the Rational Test RealTime Cvisual 6 plug-in in order to uninstall it for the current user. You will get the following message : " Rational Test RealTime options uninstalled" 2) In the Microsoft Visual Studio 6.0 application go to "Tools" then "Customize". In the "Customize window", choose the "Tools" tab then remove any references to Rational Test Realtime :
"Rational Test RealTime Viewer" and "Rational Test RealTime Options ...". Close the "Customize Windows" and
quit the application. 3) In the registry database locate the following key :
"HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Build System\Components\Platforms\Win32 (x86)\Directories"
and remove any reference to Rational products in the "Path Dirs" key. 4) Launch the Rational Test RealTime Plug-in for Microsoft Visual Studio 6.0. It should say :
"Rational Test RealTime options installed". 5) Installation is finished. Note : This workaround should be used by every user that launched the Microsoft Visual Studio 6.0 pl
Windows 2000 Control Panel "Add/Remove Programs" tool tells you that Rational Test RealTime size is about 1.35 Mo. Windows 2000 explorer tells you that the Rational\TestRealTime folder is about 65 Mo.
Memory Profiling C++ - 2002.05.21/2613 (-) P+Linux: 'throw 1' causes MLK to be reported against it.
Memory leak reported against 'throw' statement.
Memory profiling with the Test RealTime/Rose RealTime integration, after instrumenting the RoseRT TargetRTS does not work correctly
Work-Around :
If runtime tracing is used, the following option should be used: -exunit=Unused,used,RTActorClass,RTObject_class,RTActor_class,typeLookup Table,CmdDesc,RTProtocolDescriptor,RTSignalDescriptor,RTComponentDescrip tor,RTFieldDescriptor,lookupTable,RTFloat,RTTypeModifier,RTinet_address, RTPortDescriptor -exfile="path\TargetRTS\src\include\RTImportList.h".
When writing stubs of functions that have extern "C" linkage, Component Testing for C++ may produce a warning message during the compilation of the test script. This warning message indicates: TestRT attolccp: warning: math.stb:25: return type does not match the function prototype > extern "C" int assertcsd(int i)
Work-Around :
Ignore the warning.
On non-Microsoft TDP: If "Settings -> Runtime Observation -> General -> Misc. Runtime Observation Options -> C++ Analysis -> Instantiate all templates even if not used" is not checked (this is the default), AND if some methods defined within a template class are stubbed, AND if these methods are used in the code before the definition of the replacing stub is seen THEN these stubbed methods will not be instrumented by any of the PurifyLT, QuantifyLT, Coverage or Trace features, nor by the OTC assertions. This is usually not a problem with PurifyLT, QuantifyLT, Coverage or Trace, because most of the time stubs are excluded from these features'
instrumentation. However it is a real defect regarding OTC assertions because the stubs should be OTC-tested, since they are methods of a tested class.
Plug in Rational Test RealTime / RoseRT C++ - 2002.05.21/2615 (-) Viewing RoseRT Rational Test RealTime model coverage problem
Model coverage with RoseRT somtimes does not work for large models.
Plug in Rational Test RealTime / RoseRT C++ - 2002.05.21/2605 (-) State level coverage is not working correctly
Model Coverage -> Show onto All State Diagrams is incorrect, not all states
covered are shown in green.
Runtime Analysis C++ - 2002.05.21/2627 (-) Instrumentation errors: error #338: more than one instance of overloaded function
Instrumentation error #338: more than one instance of overloaded function
Studio All - 2002.05.21/2619 (-) Foreign language characters (diacritics) in paths badly handled.
Migrating Projects containing diacritics in path or file names might cause
problems.
Work-Around:
Avoid diacritics or other special characters.
Studio Ada - 2002.05.21/2617 (-) Wizard suggests separate package for testing
A file contains a separate declaration for a package, and the wizard suggests
it for selection to test.
Work-Around:
Avoid selecting such units.
Studio C++ - 2003.06.00/2603 (-) Unable to match the declaration and implementation of a method when using namespace
Using namespaces in C++, the parent name of an implementation method, usually
written in a .cpp file, is not complete although the parent name declaration
is correctly fully qualified. Two consequences :
- When using the Component Testing for C++ activity wizard and testing a
class or a method belonging to a namespace, the file containing the implementation
is missing and the user must manually add it in the tested files list.
- Right-clicking on such a method in the Asset Browser and selecting Go To
Implementation/declaration displays a warning message explaining the inability
to find the corresponding implementation/declaration.
Studio N/A - 2003.06.00/2541 (-) Import Makefile : giving a Japanese name to generated project does not work
Importing a Makefile and giving to the generated project a Japanese name produces the two errors.
Work-Around:
Use a US name for the project.
Studio C++ And C - 2002.05.21/2422
(-) Unable to find a TDP if a basic setting involves a \"xxx\"
If the .ini file includes a line like: DEFAULT_CFLAGS="-g -b\"static\" -qlanglvl=ansi" this ini file is ignored by the GUI and it is impossible to select the TDP using the GUI project configuration
new because it is not included in the TDP list.
Work-Around :
The character " in a string should be encoded with the following syntax: hexanumber; good is DEFAULT_CFLAGS="-g -bstatic -qlanglvl=ansi"
When opening several reports, the tab of the last might be hidden.
Work-Around :
Resize the report window.
On AIX, after opening a Coverage report containing a large number of fdc files and clicking on the Rates tab,
the report viewer terminated abnormally.
Abnormal termination of studio GUI when two different programs use the same .flexlmrc file. It is due to a
flexlm defect.
Work-Around :
- Remove the file ".flexlmrc" from the home directory - Set eventually the FLEXLM_NO_CKOUT_INSTALL_LIC environment variable
rm .flexlmrc export FLEXLM_NO_CKOUT_INSTALL_LIC=1 or setenv FLEXLM_NO_CKOUT_INSTALL_LIC 1 in csh
When the Studio’s editor works on a file stored in a FAT32 Windows file system then the editor is slower than with the usage of a NTFS file system.
After a HTML generation, the generated .png file does not represent fully the original graph (texts of legend bar are truncated).
After "studio.exe Proj_usr.rtw" should be also "Proj.rtp" loaded (as in 2002) - but is not, and project settings are not inherited from proj.rtp correctly and build of test node typically fails
Work-Around :
Open directly rtp file, rtw is then loaded as well
Running the GUI from a Solaris session displaying to a Exceed version 5.00 server running on Windows 2000
causes the server to abort.
Work-Around :
Upgrade to Exceed 7.0 or later.
Limited choice of colors available for the GUI on HP-UX workstations running CDE on a 256 color display.
Work-Around :
Use the QtConfig tool to customize the color map.
System Testing for C - 2003.06.00/2597 (-) atspreproC fails to analyze a string containing the japanese character "SO"
atspreproC fails and prints the following errors when it analyzes a string
which contains the japanese character "SO": Warning: Unknown escape sequence
Error : Incorrect expression
It is impossible to select target board if more targets configured on Code Composer.
On Unix and Windows, the by default UML/SD printing functionality does not work correctly (when all the pages are selected for printing, only the first page is printed). This printing defect occurs only for the UML/SD diagram.
Work-Around :
Select a range to print for example page 1 to 6.
Prepro generates a temporary variable called X creating the conflict with the type. This only occurs if the
type is declared in the body, and if the test is run in mode separate.
Work-Around :
Renaming the type will avoid this error temporarily.
Large project leads to abnormal termination of the GUI with "Executable terminated with error code 65280".
Selecting one service out of two results in an error during Test Plan compilation: environment.
Work-Around :
Comment the Environment block manually
Report of an out-of-range init value is shown to be within the defined range
Generated code contains if statements without else branch (corresponding to erroneous behavior of the tester).
These else branches would never be reached in normal circumstances.
Work-Around :
These warnings can safely be ignored.
In Environment block, STUB statements with parameters are not taken into account, but no error message is displayed.
Undescriptive error message when user forgets to name a DEFINE STUB, ...[general.ptu:83] Unknown keyword: DEFINE STUB
Line numbers on error outputs do not relate to source code, making difficult the task of debugging
Circular dependencies and undeclared functions can occur during the implementation of STUBS.
Stubbing a function with the following prototype: DEFINE STUB adc_close_c #adc_Result_t func(const void * _in Data_Ptr); END DEFINE produces code that does not compile. NOTE: void can be replaced with any type except char which is handled differently.
Work-Around :
In the test script, create a new type as follows: #typedef const void * atl_void_const; and then define the stub as follows: DEFINE STUB adc_close_c #adc_Result_t adc_Qadc555Init(atl_void_const _in Data_Ptr); END DEFINE
Bad code generation when user has a macro calling itself: Example : C-File: DMTL_GLOB_STATE_1 dmtl_glob_state_1; H.-File: typedef struct { struct { u32 lv_rough_leak_susp :1; }bitfield; }DMTL_GLOB_STATE_1; PTU-File: VAR lv_rough_leak_susp, int, INIT = 1, EV =INIT the preprocessor expands lv_rough_leak_susp twice if the macro is defined like that: #define lv_rough_leak_susp dmtl_glob_state_1.bitfield.lv_rough_leak_susp In generated code you obtain : dmtl_glob_state_1.bitfield.dmtl_glob_state_1.bitfield.lv_rough_leak_susp = 1;
Work-Around :
In the test script, undefine the macro and use the normal C name of the field.
When using the '&' for giving instructions spanning more than one line, the error message gives the last line of this instruction as reference.