Release Notes - VectorCAST: 6.2n (Build date 03/26/2015)

89
Release Notes - VectorCAST: 6.2n (Build date 03/26/2015) VectorCAST C, C++, Ada (Core) 36881: Variables declared in type-handled directory headers not listed in undefined entities log Previously, variables declared in type-handled directory headers would not appear in the user undefined entities report (Environment => View => Undefined Entities Log). This problem has been fixed in VectorCAST version 6.2n. 37538: Setting encoding format to S-JIS when generating report from clicast command Previously, character encoding format could not be configured from clicast, and only configured from the GUI. In VectorCAST version 6.2n, the user can now configure character encoding from clicast to properly generate reports from the command line. This feature also includes additional fixes for S-JIS- encoded content displaying incorrectly in VectorCAST GUI, Reports and Coverage viewer. clicast -lc | -lada option VCAST_FILE_ENCODING S-JIS The default value is UTF-8. The setting is stored in the CCAST_.CFG or ADACAST_.CFG file, and only affects clicast commands. The environment variable VCAST_FILE_ENCODING=S-JIS can also be used. NOTE: When using the VectorCAST GUI, you must set the Character Encoding by selecting View => Character encoding => East Asian => Shift-JIS, as the GUI's setting is stored in the .vcast-qt file. 38610: Message window improperly displays environment build errors that aren't Latin-1 encoded In previous versions of VectorCAST, output from the environment builder displayed in the message window would not appear correctly if the output was not encoded as Latin-1. Error messages were the most likely form of such output. In VectorCAST version 6.2n, output from the environment builder is interpreted as being encoded as specified via the View => Character Encoding menu. VectorCAST/Ada: 36382: Regression Script Error with double quotes for linker commands without a

Transcript of Release Notes - VectorCAST: 6.2n (Build date 03/26/2015)

Release Notes - VectorCAST: 6.2n (Build date 03/26/2015)

VectorCAST C, C++, Ada (Core)

36881: Variables declared in type-handled directory headers not listed in undefined entities log

Previously, variables declared in type-handled directory headers would not appear in the user undefined entities report (Environment => View => Undefined Entities Log). This problem has been fixed in VectorCAST version 6.2n.

37538: Setting encoding format to S-JIS when generating report from clicast command

Previously, character encoding format could not be configured from clicast, and only configured from the GUI. In VectorCAST version 6.2n, the user can now configure character encoding from clicast to properly generate reports from the command line. This feature also includes additional fixes for S-JIS- encoded content displaying incorrectly in VectorCAST GUI, Reports and Coverage viewer. clicast -lc | -lada option VCAST_FILE_ENCODING S-JIS The default value is UTF-8. The setting is stored in the CCAST_.CFG or ADACAST_.CFG file, and only affects clicast commands. The environment variable VCAST_FILE_ENCODING=S-JIS can also be used. NOTE: When using the VectorCAST GUI, you must set the Character Encoding by selecting View => Character encoding => East Asian => Shift-JIS, as the GUI's setting is stored in the .vcast-qt file.

38610: Message window improperly displays environment build errors that aren't Latin-1 encoded

In previous versions of VectorCAST, output from the environment builder displayed in the message window would not appear correctly if the output was not encoded as Latin-1. Error messages were the most likely form of such output. In VectorCAST version 6.2n, output from the environment builder is interpreted as being encoded as specified via the View => Character Encoding menu.

VectorCAST/Ada:

36382: Regression Script Error with double quotes for linker commands without a

space between the quotes

Configuration options with quoted portions were not reproduced accurately by regression scripts when the quoted portion did not contain a space. This problem has been resolved in VectorCAST version 6.2n.

39101: Private type derived from a public 'mod' type gets treated as a 'not supported' type

Previously, when a private type was derived from a public type that was of type "mod", the user was allowed to set a value for params of that type. The harness was treating the type as not supported, causing the value to not actually be set during test execution. This problem has been resolved in VectorCAST version 6.2n.

VectorCAST/C++:

33742: A warning should be displayed if the post-process script for regression script creation is missing an interpreter directive

Previously, when creating regression scripts and executing a post-processing script that was missing the interpreter directive (#!/usr/bin/python on the first line, for example) on Linux or UNIX, VectorCAST did not alert the user that the post-processing script could not be executed. VectorCAST version 6.2n now displays a warning message in CLICAST and in the Create Regression Scripts dialog if the post-processing script is missing the interpreter directive. An example of the warning message is shown below. clicast -e <ENV> tools regression_test <path to python script that is missing interpreter directive> Regression Scripts Built Post-processing Regression Scripts... WARNING: <path to python script> does not begin with #!/path/to/executable (the interpreter directive).

33957: VectorCAST is not recognizing the __int128 identifier for GNU C version 4.8

The GNU __int128 type is now supported by VectorCAST. Basis path tests for some comparisons involving negative numbers now set the correct value instead of reporting a conflict. This has been fixed in VectorCAST version 6.2n.

34669: Wizard-based environment build fails when source directory is not writeable and there are multiple UUTs

Building an environment through the GUI wizard failed when the source directory is not writable, no dependency cache is set, and the environment contains multiple units under test. This problem has been resolved in VectorCAST version 6.2n. For best performance, a dependency cache should still be used.

35447: Anonymous struct fields should be accessible in parameter tree

Anonymous struct fields can now be set in the parameter tree in VectorCAST version 6.2n.

35658: Linked list test data limited to 8 items when exporting .tst script

In previous versions of VectorCAST, test data for a linked list would be limited to 8 items when exporting a .tst script. Items beyond that would show in the script as <<value error>>. In VectorCAST version 6.2n, tests can be exported with up to 23 linked list items.

35790: User Code not inserted into environment at build time for some invalid user code tags

VectorCAST omitted configure stubs user code in some instances when it contained invalid user code tags. In VectorCAST version 6.2n, the user code is always inserted, even if it causes a compile error. Additionally, if configure stubs user code is specified for a unit or stub that does not exist, a warning is now printed in the Message window (or clicast output), indicating that the user code could not be inserted. For example, the warning for an invalid subprogram specified in the BEGINNING_OF_STUB user code tag is: Warning: Invalid subprogram in configure stubs user code tag "BEGINNING_OF_STUB.<unit>. <invalid subprogram>. User code for this section will not be inserted."

36691: Compile error when file partitioning for Visual Studio splits files in template formal parameter list

Instrumented files sometimes become very large due to being generated from preprocessor output. The Visual Studio debugger does not support files with more than 65536 lines, so VectorCAST partitions instrumented files into smaller files to not exceed this length whenever Visual Studio is used. In previous versions of VectorCAST, if the split occurred in the middle of a class template formal parameter list, Visual Studio would issue an error. VectorCAST version 6.2n fixes this problem by only splitting files at the end of a statement or block.

36950: An incorrect warning about search directory mapped drives not existing is displayed

When starting VectorCAST with a search directory using a mapped drive, VectorCAST incorrectly displayed the warning "The following directory(ies) do not exist and will be ignored." This problem has been resolved in VectorCAST version 6.2n.

37490: Support symbolic constants in type handled dirs

Macros declared in type-handled directories are available as symbolic constants in VectorCAST version 6.2n. Previously, only macros in testable directories were available.

37628: Test Case Filter to hide empty parameters is not correctly detecting ClassPtr, ptr and array parameter user code

Previously, when using the Filter button (first column of header row in Parameter Tree) to hide empty parameters, ClassPtrs, ptrs, and parameter user code in an array were incorrectly hidden, even though there was a value set. This problem has been resolved in VectorCAST version 6.2n.

37965: Multiple stubs of static inline functions lose data when exported to a test script and later imported

Environments containing units under test with a #include of a header file with a static function previously classified those functions as part of the uut_prototype_stubs unit. This classification made it impossible to export and then import tests for static header function stubs for units aside from the first in the environment to #include the header. In VectorCAST version 6.2n, those functions are now classified as belonging to their units under test.

38273: Extern const variable originally declared at function scope in C++ code needs to be explicitly stubbed as extern

Stubs for extern const variables in C++ code did not link since they were missing the extern keyword. This problem has been resolved in VectorCAST version 6.2n.

38321: Allow editing of entries on the update dialog

VectorCAST version 6.2n allows easy editing of entries in Library Stubs, Additional Stubs, Suppressed Stubs, Suppressed Testable Functions and Not Supported Types views on the Choose UUTs and Stubs page of the Environment Wizard. The user can use the right-click menu or the Ctrl+Shift+R shortcut to edit current item.

38393: Template member functions don't get matched against the list of

suppressed testable functions

In previous versions of VectorCAST, placing a template member function on the list of suppressed testable functions did not actually suppress it. This problem has been resolved in VectorCAST version 6.2n.

38478: Do not library stub "special functions"

Previously, library stubs for constructors, destructors, and overloaded operators did not compile. VectorCAST version 6.2n avoids generating library stubs for those types of functions and outputs a warning that the library stub could not be created because it is a {constructor, destructor, operator}.

38848: Compile error in instrumented code for branch coverage of pointer expressions when using GNU compiler option -Werror

When the GNU compiler option -Werror or -Werror=pointer-to-int-cast was used, branch coverage for pointer expressions did not compile. This problem has been resolved in VectorCAST version 6.2n.

39326: Harness code to clear STL containers fails with Visual Studio 2010 when allocator is specified in type

In previous versions of VectorCAST, a test harness would fail to compile with Visual Studio 2010 if the harness contained type support for STL container types which used a custom allocator. This problem is fixed in VectorCAST version 6.2n.

39486: Allow expressions with const variables in typedef array size expression used by local struct field in gcc

VectorCAST version 6.2m fixed a parse error that could occur when array typedefs which used const variables in the size expression were used as the field type in a local struct, even though the construct was allowed in gcc. While the fix did eliminate some parse errors, some errors could still occur in cases where the const variables were initialized via expressions involving other const variables. This problem is fixed in VectorCAST version 6.2n.

39948: TDD build failure when pseudo-stub uses a type not present in real stubs or testable functions

In a Test-Driven Development (TDD) environment, a pseudo-stub is a function that is not defined in the harness but appears in the test case parameter tree as a stub. This allows the user to configure such stubs in the TDD environment prior to them being actual dependencies.

In VectorCAST versions 6.2m, when TDD environments contained pseudo-stubs which had a return type or parameter type not referenced by a real stub or testable function, the environment builder would abort, causing the environments to fail to build. This problem is fixed in VectorCAST versions 6.2n.

VectorCAST/Cover:

36132: Tool locks up and then crashes on selecting X to close

Previously, some very large Cover projects could cause VectorCAST/Cover to become unresponsive or crash while closing the project. This problem has been resolved in VectorCAST version 6.2n.

VectorCAST/Manage:

37671: Implement the pop-out editor window for the Manage options tree

VectorCAST version 6.2n includes a new pop-out editor window for the Manage Options Tree. It is similar to the editor in the VectorCAST options dialog and allows users to easily edit and view options.

37770: Manage migration changes gpr path backslashes to slashes and the environment will not build

Previously when an Ada environment was migrated in Manage, the path information to the .gpr file was saved incorrectly. This caused an environment build failure. This problem has been resolved in VectorCAST version 6.2n.

38399: Allow drag and drop of multiple Test Suites into a Compiler level

In VectorCAST/Manage, it is possible to drag-and-drop test suites from one compiler context to another. In VectorCAST version 62n, this feature is extended to allow multiple test suites to be copied in one action by using Ctrl+click or Shift+click to select the test suites of interest.

38868: Monitored environment not built when using regression script method

In previous versions of VectorCAST/Manage, when a monitored environment was built from a regression script on UNIX systems, VectorCAST/Manage would always run the script through csh. In VectorCAST version 6.2n, Manage defaults to running the script through sh on UNIX systems. Users may also add a #! to the top of their script to override how VectorCAST/

Manage runs the script.

VectorCAST/RSP:

37063: clicast command deletes CCS option in CCAST_.CFG when template is C++

The VCAST_CCS_INSTALL_DIR configuration option was deleted from CCAST_.CFG files when using clicast with C++ selected. This problem has been resolved in VectorCAST version 6.2n.

37509: Cannot parse UUT that includes stdarg.h with IAR 7

VectorCAST was unable to parse IAR version 7 source code that contained a #include of stdarg.h. This problem has been resolved in VectorCAST version 6.2n. If you have settings from an older version of VectorCAST, go to Tools => Options, C/C++ tab, Language tab, and add --stdarg_builtin to the Parser flags.

39136: unsigned long long type treated as long, when using IAR RX 6.x compiler

The VectorCAST test harness incorrectly treated long long types as if they were long for the IAR RX compiler. In VectorCAST version 6.2n, the value of the option VCAST_HAS_LONGLONG is used to determine if long long handling should be in the harness. For IAR RX, the default value of VCAST_HAS_LONGLONG is now TRUE. If you built an environment with an older version of VectorCAST, you will need to set VCAST_HAS_LONGLONG: TRUE in the CCAST_.CFG file and rebuild the environment.

VectorCAST/Requirements Gateway:

36703: Cannot import requirements from RequisitePro 7.1 projects

In previous versions of VectorCAST, attempting to import requirements from RequisitePro 7.1 would result in a COM exception error. This problem is fixed in VectorCAST version 6.2n.

Release Notes - VectorCAST: 6.2m (Build date 02/02/2015)

VectorCAST C, C++, Ada (Core)

26377: Usability of "Choose UUTs & Stubs" dialog for large number of files

VectorCAST version 6.2m improves the usability when moving units between the UUT, STUB and DONT_STUB nodes in the Create New Environment Wizard. When there are many Units Under Test, an auto-scroll zone is established at the top and bottom. When the user drags a unit name into one of the auto-scroll zones, the list scrolls quickly in that direction, making it easier to drag a unit from the UUT node to the STUB or DONT_STUB nodes, or vice versa.

38599: "Auto clear test user code" not honored from clicast execute batch

The "Auto clear test user code" option helps keep the generated test harness smaller by removing from the harness test-specific user code that is not related to the currently executing test case. In previous versions of VectorCAST, this option was not honored when batch executing tests via clicast. All test-specific user code was inserted up front, potentially causing an error if the harness grew too large for the target. This problem is fixed in VectorCAST version 6.2m.

VectorCAST/Ada:

37318: Basis Path Coverage in Cover tool does not show coverage for exception handlers

Previously, when an exception handler was reached in an environment that was instrumented with Basis Path coverage, the instrumented code would generate in an invalid sequence, resulting in no coverage being shown for the exception handler code. This problem has been resolved in VectorCAST version 6.2m.

37453: Multiple environments built simultaneously in same directory cause build issues

When VectorCAST builds an environment, it creates temporary files in the working directory before the environment directory gets created. Previously, these temporary files used a fixed name, causing issues if multiple environments were being built simultaneously in the same working directory. This issue has been resolved in VectorCAST version 6.2m.

37554: Zero-length unconstrained array can cause harness exceptions

When the harness works with unconstrained array parameters, it stores the 'first and 'last values into objects defined using the index type. Previously, when an unconstrained array used an index type that did not include 0 (for example, "type array_t is array ( positive range <> ) of character"),

the harness could raise an exception when a 0-length array was passed in, because the 'last value for that parameter is 0 (which is not in the index type range). This problem has been fixed in VectorCAST version 6.2m.

38125: Cannot set/inspect parameter of private-only subtype of private-only type

Previously, if a subtype was declared only in the private section of a unit, and the parent type was also only declared in the private section, then the user would not be able to set parameters/objects of the subtype, even in Multiunit Whitebox environments. This problem has been fixed in VectorCAST version 6.2m.

38565: Build error when typemark name used for array index appears in multiple nested packages

Previously, when an array typemark in a nested package uses a local typemark for the index type, and if that same name for the index type is used in other nested packages, and the array type is referenced in the enclosing package, VectorCAST might reference the incorrect version of the typemark, causing compile errors. This problem has been fixed in VectorCAST version 6.2m.

38618: Volatile fields of a non-volatile composite type can cause compile errors in Ada environment

When a composite typemark is declared 'volatile', and that type contains a member object (a field within a record or element of an array) whose type is NOT declared as 'volatile', when the member object is passed into a subprogram, the formal parameter must be declared as 'volatile'. Previously, VectorCAST did not correctly handle this scenario, and would build a harness that would not compile; the error message indicated that you cannot pass a volatile argument to a non-volatile formal parameter: data_if_adacast_pkg.adb:593:16: cannot pass volatile argument to non-volatile formal "VAL" This problem has been resolved in VectorCAST version 6.2m.

VectorCAST/C++:

27515: Harness compile error when stub defined that can't be defined

When a dependency function has a return type or parameter type that is an incomplete struct, a stub cannot be defined because the complete struct definition is not visible. In previous versions of VectorCAST, the environment builder would attempt to stub such functions anyway, leading to a compile error.

In VectorCAST version 6.2m, such stubs are not generated. To avoid a link error, definitions for such functions must be provided via another mechanism, such as user code or additional link objects.

30116: Unsupported subclasses should be listed properly in subclass menu in Parameter Tree

In previous versions of VectorCAST, types specified as unsupported could appear in a Parameter Tree subclass list, but the explanation for user code was incorrectly shown as "no accessible constructors are defined or stubbable". In VectorCAST version 6.2m, such types have a user code reason that states "user disabled support for this type".

36411: User code at string pointer level not visible in Parameter Tree

Previously, when an imported test script contained user code for a string in pointer mode, the Parameter Tree did not show "<<user>>", thus adding confusion about whether the user code was present or not. This problem has been fixed in VectorCAST version 6.2m.

36492: Invalid member initializer created when base class template parameter is itself a template instantiation

When VectorCAST stubs a constructor, it sometimes must generate a member initializer for proper initialization of base classes and data members. In previous versions of VectorCAST, this member initializer could be generated incorrectly if a base class was template-based and a template parameter of the base class template was also template-based. This problem is fixed in VectorCAST version 6.2m.

36670: Intel asm volatile statements receive incorrect coverage instrumentation

Intel inline assembly received coverage instrumentation in locations which did not compile. This problem has been resolved in VectorCAST version 6.2m.

37577: Test script not exported correctly when default constructor is not callable due to optional arguments on another

In previous versions of VectorCAST, when a class declared a default constructor that was not callable due to optional arguments on another constructor, invalid test scripts might be generated whenever a test case instantiated the class. This problem is fixed in VectorCAST version 6.2m.

38407: Wrongly initialised stub parameter gives error C2440: 'initializing' : cannot convert from 'const unsigned char [255]' to...

A problem with the environment builder incorrectly adding initializers for prototype stub P objects caused build failures in certain environments. This problem has been fixed in VectorCAST version 6.2m.

38458: Parse error with Visual C++ 6 source which uses unqualified struct name from a namespace

Visual C++ 6 allows certain unqualified uses of type names from unrelated namespaces. In previous versions of VectorCAST, some such uses would cause a parse error in VectorCAST because the unqualified type name appeared to be undefined. This problem is fixed in VectorCAST version 6.2m.

38487: Parser cannot handle #pragma pack directive with no parentheses

VectorCAST incorrectly gave an error for GNU and Visual Studio compilers if a source code line contained "#pragma pack" and omitted the enclosing parentheses. This problem has been resolved in VectorCAST version 6.2m.

38612: Non-inline template specializations incorrectly removed from interface file

When the "Compile test-specific user code in separate unit" option was set to true, VectorCAST environments for source code containing non-inline member template specializations did not compile. This problem has been resolved in VectorCAST version 6.2m.

VectorCAST/Cover:

38366: Incorrect instrumentation when variable declared in loop condition

'While' statements with a variable declaration in the loop condition incorrectly received branch and MC/DC coverage instrumentation one column after the end of the loop body. The bad placement resulted in compile errors if anything other than whitespace was in that location. Variables initialized to a constant value were incorrectly assumed to have two possible condition values. Additionally, the loop condition was not set properly if the loop body contained a continue statement. These problems have been resolved in VectorCAST version 6.2m.

38457: Crash instrumenting source containing static local variable

Branch or MC/DC instrumentation of source code containing a static local variable initialized to a coverable value caused VectorCAST to crash if the configuration value VCAST_INSTRUMENT_ASSIGNMENTS was set to true. This problem has been resolved in VectorCAST version 6.2m.

VectorCAST/RSP:

37614: Error parsing Code Composer code which redeclares extern "C" functions in different namespaces

VectorCAST incorrectly gave an error for Code Composer source code which redeclared extern "C" functions in different namespaces. This problem has been resolved in VectorCAST version 6.2m.

37627: Support for Raisonance STM8 compiler keywords

VectorCAST version 6.2m is now able to recognize Raisonance STM8 compiler specific keywords.

38571: Borland C++Builder 2007, VCAST removes __fastcall from the the stub declaration

When using the Borland compiler, stubs of __fastcall member functions were incorrectly generated with the __fastcall keyword omitted. This problem has been resolved in VectorCAST version 6.2m.

38805: Configurable I/O available for all Ada compilers in Host mode

Previously, the Ada Configurable I/O RSP method was only available for GNAT compilers. It is now available for all Ada compilers in VectorCAST version 6.2m.

38905: Parser Support for NEC v850 f3370 registers

Source code containing NEC v850 f3370 registers is now accepted by VectorCAST version 6.2m. If you selected settings using an older version of VectorCAST, go to Tools => Options, C/C++ tab, Language tab, and add --nec_version=f3370 to the Parser flags in order to get the new behavior.

39146: Raisonance compiler specific types may cause internal error: assertion failed: type_after_integral_promotion: bad int kind

The VectorCAST interim release which added support for Raisonance keywords incorrectly gave the error message "internal error: assertion failed: type_after_integral_promotion: bad int kind"

when parsing some expressions containing hbit, hreg, and hreg16 types. This problem has been resolved in VectorCAST version 6.2m.

Release Notes - VectorCAST 6.2L (Build date 12/28/2014)

VectorCAST C, C++, Ada (Core)

36947: Repository directory doesn't work with environment variable

VectorCAST version 6.2L now accepts repository directories specified using environment variables. The environment variables need to be in the form $(ENV_VARIABLE). clicast -lc | -lada option VCAST_REPOSITORY <path may include $(ENV_VARIABLE) >

37805: Incorrect recent project and environment list in Launch screen

Previously, the Recent Environment list on the VectorCAST Welcome screen did not refresh correctly after new environments were opened. This problem has been fixed in VectorCAST version 6.2L.

38295: Tags in Data User Code are not replaced on rebuild

Previously, a problem occurred with <<unit.subprogram.variable> tags in Data User Code not being regenerated correctly when the VectorCAST environment was rebuilt. VectorCAST version 6.2L, this problem is fixed. Environment user code is generated later in the environment rebuild process, and will appear later in the output of the message window.

VectorCAST/Ada:

35292: Records returned from generic instantiation as UUT do not get set/inspected correctly

Previously, when instantiating a generic as the UUT, if the package contains a function that returns a private record type, VectorCAST did not correctly display the contents of the returned object. This problem has been fixed in VectorCAST version 6.2L.

37429: Unstubbed units that do not require a package body should allow code coverage

Previously, when a user chose to 'ignore' a unit, any dependent of that unit would not appear in the list of units available for custom code coverage. Starting with VectorCAST version 6.2L, when the clicast-only Builder option VCAST_ADD_DONT_STUB_UNITS is True and the environment script has an ENVIRO.DONT_STUB line for each ignored unit that the user wants to be able to instrument for custom coverage, then the environment builder will force the unit to appear in the list of units available for custom code coverage. ENVIRO.IGNORE: <ignored unit> ENVIRO.DONT_STUB: <dependent of ignored unit, for which custom coverage is desired> clicast -lada option VCAST_ADD_DONT_STUB_UNITS True | False The default value is False. This option is clicast-only; it does not appear in the Options dialog.

VectorCAST/C++:

33156: Functions defined in unit prefix user code appear as SBF-able in parameter tree

Functions defined in unit prefix user code appeared as possible stubs in the GUI even though it was not possible to stub them. This problem has been resolved in VectorCAST version 6.2L.

37777: Harness compile errors when ATL header directory is type-handled

VectorCAST version 6.2L includes improvements to test harness building for environments where the Visual Studio ATL directory is type-handled: * When source code contained Visual Studio __interface declarations and the Builder option VCAST_AUTO_CONCRETE_CLASS_GENERATION was set to true, test harnesses did not compile due to the VectorCAST concrete class attempting to call the constructor of the __interface. This problem has been resolved in VectorCAST 6.2L. * Template class constructors in type-handled directories sometimes caused VectorCAST to generate test harness code that did not compile. This problem has been resolved in VectorCAST version 6.2L.

38219: Parse error "no instance of function template...matches the argument list" incorrectly given for some variadic templates

VectorCAST version 6.2k incorrectly gave the parse error "no instance of function template...matches the argument list" for variadic templates that looked like:

template<typename... T> struct A { }; template<typename... T, typename... U> void f(A<T...> t1, A<U...> t2) { } void buh() { A<> t0; A<int> t1; f(t0, t1); f(t1, t0); } This problem has been resolved in VectorCAST version 6.2L.

38271: Configure Stubs editor is very slow when there are thousands of stubbed subprograms

In the case where your test environment has thousands of stubbed function, the configure stubs dialog was very slow to load. VectorCAST version 6.2L fixes this issue to allow the dialog to open quickly, regardless of the number of stubbed functions.

38272: VectorCAST/C++ crashes when accessing a User Code Tag in the "Configure Stub" editor (Japanese Language Mode Only)

In Japanese mode, a crash occurred when opening User Code Tags list while in the Configure Stubs Editor. This problem has been fixed in VectorCAST version 6.2L.

38326: Problem with extern inline when using Builder option "Compile test-specific user code in separate unit"

Previously, defined extern inline functions were given _vcast_interface.c files in the test harness that did not compile if "Compile test-specific user code in separate unit" was selected. The compilation error was due to an additional "extern" being inserted prior to the function. This problem has been resolved in VectorCAST version 6.2L.

VectorCAST/Cover:

37544: Crash while instrumenting for MC/DC with masking enabled

Sizes of data files used in MC/DC instrumentation have been reduced to avoid the "parser error : Memory allocation failed : xmlSAX2Characters" error, which caused a crash while instrumenting for MC/DC coverage with Masking on. This has been fixed in VectorCAST version 6.2L. The maximum supported value for "MAX_MCDC_CONDITIONS" when masking is enabled is 11.

VectorCAST/Manage:

37242: Ability to generate environment level reports from VectorCAST/Manage

VectorCAST version 6.2L includes support for a new parameter in the Manage command line interface. The new Manage command line argument "--clicast-args" is followed by the clicast arguments that you want to run for each environment referenced in the Manage command. For example, to generate a custom metrics report for each environment in a manage project: $VECTORCAST_DIR/manage -p Project --clicast-args report custom metrics <report name>.html

VectorCAST/RGW:

32589: Jama RGW Integration

VectorCAST version 6.2L includes support for Jama Requirements Gateway (RGW) integration.

VectorCAST/RSP:

37773: New Ada Configurable I/O RSP modification that allows compiled-in data in the harness

In VectorCAST version 6.2L, the Ada Configurable I/O target mechanism now has the ability to build the test harness with input data compiled into the harness, rather than using files or a debug script to load the data as needed. To use this mechanism, set the value for the new option "Script for compiled-in data" to a command or script that will read VectorCAST's standard input file (VCAST_STDIN.DAT) and generate Ada source code to populate the file input object in the test harness. The resulting source file must be named 'adacast_io-populate_input_buffer.adb' (for gnat compiler), and 'populate_input_buffer.adb' (for RSP compilers). VectorCAST version 6.2L supplies a working python script that can perform this task for the GNAT compiler; the user just needs to set the "Script for compiled-in data" option to: $(VECTORCAST_DIR)/IO/configurable/CompiledInData.py clicast -lada option PREPARE_COMPILED_IN_DATA <path to compiled-in data preparation script> --compiler=<name> where <name> is "GNAT" by default. For RSP compilers, use the value of the option COMPILATION_SYSTEM.

Before running each test, VectorCAST executes this script to create the input data source file, compiles the source file, and then links the harness to create an executable. In VectorCAST version 6.2k and later, use of this feature requires either an Ada RSP license or the MISC_GNAT license for use on the Host.

38163: Result of a Borland property cast to another type causes an error

Source code where a Borland __property is cast to another type could not be parsed by VectorCAST. This problem has been resolved in VectorCAST version 6.2L.

Release Notes - VectorCAST 6.2k (Build date 12/03/2014)

VectorCAST C, C++, Ada (Core)

35264: Allow "<<null>>" for pointer value in CSV map parameter tree

Previously, the "Generate CSV Map" capability would allow the user to enter "<<NULL>>" for a pointer value, rather than specifying a column. However, this value would not appear in the generated tests. Starting with VectorCAST version 6.2k, the pointer value will be set to "<<NULL>>" for every test case generated from the map.

36480: Improve the default working directory for File => Open

When the user builds an example environment and then chooses File => Open, the default look-in directory was the source directory of the current environment. In VectorCAST version 6.2k, the default directory is the working directory of the open environment.

37651: Adding hundreds source directories locks up VectorCAST

Previously, the VectorCAST GUI could become unresponsive when adding a large number of source directories recursively. This has been fixed in VectorCAST version 6.2k.

VectorCAST/Ada:

37115: Compound-For-Batch capability can fail when code under test propagates an exception

Previously, when using the "Use compound test for batch execution" option, if a test in the

environment propagated an exception out of the Unit Under Test, then that test and subsequent tests could show erroneous results and/or test failures. This has been fixed in VectorCAST version 6.2k.

37429: Unstubbed units that do not require a package body should allow code coverage

Previously, if nothing in a unit's package specification indicated that a package body was needed, VectorCAST would ignore any package body found for that unit. However, in Ada83 it is valid for a package body to exist. In VectorCAST version 6.2k, VectorCAST now will search for a package body in Ada83 regardless of whether it is necessary.

37762: Subtype of a subtype of a private type can cause compile errors with Multiunit Whitebox

Previously, when a subtype of a type from another unit is declared, and that parent type is a subtype of a private type in a third unit, VectorCAST did not detect the 'private' attribute for the base type and could build harness code that treated the type as public, causing compile errors when building the environment. This problem has been fixed in VectorCAST version 6.2k.

VectorCAST/C++:

34734: Incorrect concrete class constructor generation when abstract class inherits from virtual base class

Previously, certain environments in which an abstract class inherits from a virtual base class would fail to build. VectorCAST would generate the concrete class constructor incorrectly, causing a harness compilation error. This problem has been resolved in VectorCAST version 6.2k.

35166: VectorCAST should not attempt to run clicast commands in a regression script after failing to open an environment

Previously, if opening an environment failed during regression script execution, subsequent commands treated the environment as successfully opened. This behavior could result in crashes due to an incomplete environment. This problem has been resolved in VectorCAST version 6.2k. Now the environment is recognized as a closed environment.

36264: "too few arguments for class template" parse error for some C++11 variadic templates

VectorCAST incorrectly gave the parse error "too few arguments for class template" for

some C++11 variadic templates. This problem has been resolved in VectorCAST version 6.2k.

36632: SBF instrumentation incorrectly added to member functions of classes local to a function

In previous versions of VectorCAST, SBF instrumentation was sometimes added to member functions of classes that were local to a function. This problem has been fixed in VectorCAST version 6.2k.

36919: Functions returning std::pair don't get SBF treatment with Visual Studio 2010

Some functions returning template types, where the type had a defined copy constructor, were incorrectly assumed by VectorCAST to be ineligible for stub-by-function. This problem has been resolved in VectorCAST version 6.2k.

37179: Environments with unamed array parameters in testable functions of units getting stub-by-function processing do not compile

Previously, environments with an unnamed array, function pointer, or pointer to member parameters in testable functions of units getting stub-by-function processing did not compile. This problem has been resolved in VectorCAST version 6.2k.

37191: Errors parsing code accepted by GNU 2.95

The following improvements have been made to parsing GNU 2.95 code in VectorCAST version 6.2k: * The "expression must be a modifiable lvalue" parser error no longer incorrectly appears for some assignments to array types. * A "declaration is incompatible" error no longer incorrectly appears for some redeclarations of global variables where const is added to the later declaration. * Built-in functions abs, fabs, labs, strcmp, strcpy, and strlen are now recognized. To get the new behavior when settings have already been chosen, go to the Options dialog, C/C++ tab, Language sub-tab, and add --gnu_version=20900 to the option "Parser flags." The flag is now set by default for the GNU 2.9x templates.

37438: Test scripting commands fail if class template parameter is an array type

Test scripts for class template parameters of array types had incorrect syntax with a portion of the class name missing. Test scripts containing class template parameters of array types also could not be read by VectorCAST, even if the user filled in the rest of the type name. These problems have been resolved in VectorCAST version 6.2k.

37652: Environment builder treats float __attribute__((mode(DF))) as short double

Previously, the environment builder treated GNU float __attribute__((mode(DF))) types as short doubles, causing compile errors. This problem has been resolved in VectorCAST version 6.2k.

37689: Harness compile error due to __attribute__ regparm missing from stub definition

Function prototypes with GNU __attribute__ regparm had the attribute omitted from the stub definition, causing a compile error. This problem has been resolved in VectorCAST version 6.2k.

37718: Harness compile error when STL container contains member function pointers

Previously, the test harness did not compile if the source code contained Standard Template Library containers holding pointer-to-member types. This problem has been resolved in VectorCAST version 6.2k.

37887: Errors on trailing cv- and ref-qualifiers in an alias declaration of a function

VectorCAST incorrectly gave errors if source code contained trailing const, volatile, or reference qualifiers in an alias declaration of a function. For example, VectorCAST could not parse: typedef void fc1() const; typedef void frr1() &&; typedef void fcr1() const &; using fc2 = void() const; using frr2 = void() &&; using fcr2 = void() const &; This problem has been resolved in VectorCAST version 6.2k.

37980: VectorCAST is improperly trying to initialize member arrays

VectorCAST incorrectly attempted to initialize member arrays in stubs of constructors where the member arrays contained classes that needed initialization but lacked a default constructor, causing a compile error in the harness. This problem has been resolved in VectorCAST version 6.2k.

37987: Check for NULL prior to memcpy-ing array params in stub body

During test execution, the test harness crashed (segfault) in a stub with array parameters when the parameter was set to NULL, because the harness used a memcpy call on the parameter. In VectorCAST version 6.2k, the stub checks for a null parameter and does not call memcpy in that case.

VectorCAST/RSP:

36205: Harness built for Keil C51 does not print unprintable characters properly

Unprintable characters were not printed properly for the Keil C51 compiler. This problem has been resolved in VectorCAST version 6.2k. Older environments must be rebuilt to get the new behavior.

36495: GNAT-Based configurable I/O

VectorCAST version 6.2k expands on the Ada Configurable I/O target mechanism introduced in 6.2e. In this newest release, there are now simplified files to be used to replace the 'ADACAST_IO' package body used by the harness to read/write data from the host. These simplified files can be edited by the user (if necessary) to handle specific target capabilities, for I/O, memory management, and numeric/string conversion. Executing tests when the option "Execution process uses stdin/stdout for file I/O" is TRUE requires either an Ada RSP license or a new license feature called MISC_GNAT, for use with the GNAT compiler on the Host. clicast -lada option VCAST_CONFIGURABLE_ADA_IO TRUE | FALSE The default value is FALSE. When VCAST_CONFIGURABLE_ADA_IO is TRUE, the option ADA_EXECUTE_CMD must be set.

37645: Add Keil ARM intrinsic __sqrtf

VectorCAST was unable to parse C++ source code containing Keil ARM intrinsic functions __sqrtf, __sqrt, and __vfp_status. This problem has been resolved in VectorCAST version 6.2k.

37726: Allow use of environment variable for TARGET_BOARD_NAME

In VectorCAST version 6.2k and the vxWORKS target compilers, the TARGET_BOARD_NAME configuration variable can now be set using an environment variable with the same name. For example, if you set the environment variable, export TARGET_BOARD_NAME=vxsim@vmVXWORKS

then the configuration option TARGET_BOARD_NAME does not need to be in the CCAST_.CFG file when building an environment and executing a test.

37801: Parser error with NEC when array bound is const global variable

VectorCAST did not accept NEC compiler source code containing array bounds of const global variables. This problem has been resolved in VectorCAST version 6.2k.

36061: IAR 78K __saddr objects should get stubbed

Previously, stubs were not created for IAR 78k extern __saddr objects, causing compile errors. This problem has been resolved in VectorCAST version 6.2k.

Release Notes - VectorCAST: 6.2j (Build date 11/02/2014)

VectorCAST C,C++,Ada (Core)

37036: VCAST_MULTIBYTE_CHARACTERS option is now labeled "Source code files use Shift JIS"

The VCAST_MULTIBYTE_CHARACTERS option was previously labeled "Multibyte Characters" and located on the GUI tab of the options dialog. This option is only needed if source code files use the Shift JIS character encoding, so in VectorCAST version 6.2j the option is labeled "Source code files use Shift JIS" and it is located on the builder tab of the options dialog.

37381: Mouse zoom functionality inconsistent with other browsers

Previously, the user was able to zoom-in and zoom-out the text in the Coverage Viewer, Text editor, and HTML Browser using the mouse scroll wheel, but the commands were the opposite of what is used in other browsers. This problem has been resolved in VectorCAST version 6.2j. CTRL+Scroll Wheel Down = Zoom Out (make text smaller) CTRL+Scroll Wheel Up = Zoom In (make text larger)

VectorCAST/Ada:

33873: Link error when using Apex compiler to build Ada environments with stubbed .app files

Previously, if an Apex preprocessor source file (.app) resided in a subdirectory of the view selected as the parent library for a unit test, and that unit was chosen to be stubbed or instrumented, VectorCAST would fail to delete the original file, resulting in a link error when Apex found two files for the same unit body. This problem has been resolved in VectorCAST version 6.2j.

35080: Apex cannot determine inequality operator for fixed_type 'delta attribute

For fixed-point types, VectorCAST determines the number of decimal places to print by the scale of the value. In so doing, it compares the value to 0.1. For Apex, the compiler flags this as an error because it considers the comparison operator to be ambiguous. In VectorCAST version 6.2j, we now do the comparison by forcing the values, allowing Apex to resolve the operator correctly.

35262: Pragma Import support for overloaded subprograms in Apex causes linker errors

When an interface to an outside object (via "pragma import") is overloaded, and the user has set the option to have VectorCAST build stubs for the outside object, VectorCAST previously would build a subprogram for each version of the overloaded function. For certain compilers (such as Rational Apex), this created an error because the linker could not resolve the interface correctly. This issue has been fixed in VectorCAST version 6.2j.

35280: UUT instantiating generics from another unit can cause "Type not in environment" messages

Previously, when a UUT would instantiate a generic object inside another UUT, if any of the generic parameters used external typemarks, VectorCAST would not always be able to resolve those typemarks, resulting in "Type not in environment" messages in execution results. This has been fixed in VectorCAST version 6.2j.

36415: Compile error with stub for generic subprogram that returns unconstrained array type

Previously, if a stub contained a generic function whose return type was an unconstrained array type, and that array type was defined as a formal parameter to the subprogram, then VectorCAST would incorrectly build the object to contain the return value, resulting in a compile error. This has been resolved in VectorCAST 6.2j.

36649: Speed improvements for building Ada environments

VectorCAST version 6.2j includes performance enhancements for building Ada unit-test environments. Among these are: * A new configuration option for specifying switches to be passed to gnatmake clicast -lada option GNATMAKE_OPTIONS <'gnatmake' options>

* The GNAT option BINDER_OPTIONS has been removed from the Options dialog, Ada tab. It is still available as a clicast-only option. * A modification to Apex's 'import' and 'migrate' calls to pass multiple objects to these commands during environment building

36948: Stubbed unit not saved to environment script in certain cases

Previously, if an environment script was created for an environment with a stubbed unit containing only nested generic packages, the script was missing the "ENVIRO.STUB: <unit>" line for that unit. This problem has been resolved in VectorCAST version 6.2j.

36971: Test script values for objects of private types defined in ancestor of UUT incorrectly flagged as errors

Previously, when an object in a UUT child package used a type defined in an ancestor's private section, you could only set the value for the object using the GUI. Specifying input/expected values in a test script would generate an error. This has been resolved in VectorCAST 6.2j.

37062: Ada 2005 tagged incomplete type causes environment creation failure

Previously, if the environment builder found an incomplete type using the Ada 2005 construct "type Typename is tagged;" the parser would fail and the environment would not build. This problem has been fixed in VectorCAST version 6.2j.

37125: Resolving of private types in UUT instantiating generic unit can cause compile errors

Previously, when building a Multiunit Whitebox environment for a UUT that instantiated a generic package, and the generic package contained private records, in some situations VectorCAST would not be able to resolve the typemark for the private type, causing compile errors due to missing subprograms. This problem has been fixed in VectorCAST version 6.2j.

37279: Subprogram with both specification and body in nested package body appears twice in environment

Previously, when a nested package body contained a prototype for a subprogram in addition to the subprogram declaration, VectorCAST mistakenly considered them two separate subprograms. This caused the subprogram to be listed using the parameter profile (as in overloaded subprograms) and led to execution failures because the testcases referenced the wrong subprogram. This problem has been fixed in VectorCAST version 6.2j.

37310: Support for variant record with non-defaulted discriminant causes build errors with Ada83

When VectorCAST finds a field in a record that uses a variant record with no default value for the discriminant, it creates some types locally to help modify the field values. Previously, when the environment was compiled for Ada 83, compile errors would be generated because these internal types were placed after some subprogram bodies in a package (which is not allowed in Ada 83). This problem has been fixed in VectorCAST version 6.2j.

37499: Whitebox Environment build failure when UUT is instantiation of nested generic package

To perform Whitebox processing on a generic instantiation, VectorCAST needs to modify the generic package to insert the Whitebox interface. When the generic package is nested inside another package, this modification is not possible. Previously, VectorCAST did not detect this situation, resulting in environment build failures when the UUT was an instantiation of a nested generic package and the Whitebox option was turned on. This issue has been fixed in VectorCAST version 6.2j.

VectorCAST/C++:

35398: Reduce memory usage for tracking macro constants

When VectorCAST builds an environment, it records macros which evaluate to integer or floating point constants so that they can be utilized in a test case as input or expected values. In previous versions of VectorCAST, very large amounts of such macros would cause VectorCAST to use an inordinate amount of memory recording and rereading the macro values. This problem is fixed in VectorCAST version 6.2j.

36737: Invalid coverage and SBF instrumentation when VCAST_MULTIBYTE_CHARACTERS enabled

When instrumenting source code for code coverage or stub by function, previously VectorCAST would insert instrumentation incorrectly if VCAST_MULTIBYTE_CHARACTERS was enabled, resulting in compile errors. This problem is fixed in VectorCAST version 6.2j. Note that VCAST_MULTIBYTE_CHARACTERS is only needed when source code is encoded using Shift JIS. The option label has been changed to reflect the appropriate usage.

37431: <<MID>> value of float double and long double should be zero

Because the VectorCAST harness calculates the value of "<<MID>>" as halfway between

"<<MIN>>" and "<<MAX>>", on some compilers, the floating point arithmetic can cause some problems. In VectorCAST version 6.2j, the <<MID>> value for parameters of types floating point, double, and long double has been set to zero for all compilers.

VectorCAST/Cover:

36667: VectorCAST fails to instrument C source files containing variable initializations to empty aggregates

C source files containing variable initializations to empty aggregates, such as char buf[24] = {}; could not be instrumented for code coverage. This problem has been resolved in VectorCAST version 6.2j.

36956: Coverage viewer corrupts source text when lines contain SJIS-encoded Japanese characters

Previously, Japanese characters would fail to display properly in the VectorCAST coverage viewer if the Shift JIS encoding was used and the characters appeared on a line that was covered. This problem is fixed in VectorCAST version 6.2j.

37120: Instrumentation inserted into aggregate initialization of some structs incorrectly

C source code containing aggregate initializations of structs sometimes received coverage instrumentation in the wrong location, causing a compile error. This problem has been resolved in VectorCAST version 6.2j.

VectorCAST/Manage:

35075: Manage unable to resolve relative search directory paths once the original environment directory is deleted

Manage was unable to resolve relative search directory paths once the original environment directory was deleted. This issue has been resolved in VectorCAST version 6.2j.

37133: Manage fails to determine if an Apex ada environment needs to be rebuilt due to source file changes

Due to the complexities of building VectorCAST/Ada environments for the Apex compiler, in previous versions of VectorCAST the Apex Ada environments only referred to local copies of the source code under test when checking for differences, causing VectorCAST/Manage to be unable to detect when an environment needed to be rebuilt. This problem

has been fixed in VectorCAST version 6.2j.

VectorCAST/RSP:

36407: Derived enumerated types not always getting set correctly

When the Ada code being tested contains an enumerated type that is derived from another enumerated type, and the derived type does not include the first enumeral of the parent type, then the environment builder could generate an incorrect type-handling procedure causing values to be displayed as "value_out_of_range" in the Execution Report even when they were valid values. This problem has been fixed in VectorCAST version 6.2j.

36750: IAR ARM keywords __absolute, __softfp, and __weak should be recognized by VectorCAST

VectorCAST version 6.2j can build environments for IAR ARM source code containing the keywords __absolute, __softfp, and __weak.

37042: Lower-case quoted characters as enumerated values can cause compile errors for certain targets

For certain Ada targets, VectorCAST uses a "case" statement in the harness to set enumerated values. Previously, when an enumerated type uses character-style enumerals, such as: type CHARACTERS_T is ( ' ', 'A', 'b', 'C', 'd' ); VectorCAST would force the enumerals to upper case, causing compilation errors for any enumeral that was defined using lower case. This problem has been fixed in VectorCAST version 6.2j./p>

37054: Bitwise AND operation in B0000007.c causes harness generated for keil c51 templates to fail to execute properly

Harness code to process test input data compiled into the harness used a bitwise AND operation that caused harness execution failures with Keil C51 configurations. This problem has been fixed in VectorCAST version 6.2j.

Release Notes - VectorCAST 6.2i (Build date 10/05/2014)

VectorCAST C,C++,Ada (Core)

30108: "-NaN" returned from compiler should be recognized as "Nan", and both should match <<NAN>>

Certain compilers print the "Not-a-number" (NaN) string with a leading "-". Previously, VectorCAST did not recognize this string as matching the "<<NAN>>" tag, causing erroneous test failures. This problem has been fixed in VectorCAST version 6.2i.

33952: Unexecuted testcases are counted as failing in Testcase Management Report

In previous versions of VectorCAST, unexecuted testcases were not counted in the Testcase Management report and the Overall Results section of the Full Report. In VectorCAST version 6.2i, unexecuted testscases are counted as Failed in these reports. For example, suppose you have an environment with two testcases, where one test is unexecuted and one is executed and is passing. Previously, the Testcase Management report would show 1/1 tests passing, giving a final status of PASS for the environment. The unexecuted test would not be counted in the total number of tests, thus giving users a false sense that all tests were passing. Overall Results Category Results Testcases: 1 / 1 PASS Expecteds: 4 / 4 PASS In VectorCAST version 6.2i, the Overall Results section in the Testcase Management and Full reports shows 1/2 tests passing for this example environment, so the final status is FAIL. In the middle section of the Testcase Management report, the unexecuted test is now added into the TOTALS line. Overall Results Category Results Testcases: 1 / 2 FAIL Expecteds: 4 / 4 PASS In addition, in VectorCAST/Manage, the Incremental Rebuild report now shows the correct number of preserved and re-run tests.

34938: Add environment name to the "Configuration Data" section of "Test Reports"

All reports in VectorCAST version 6.2i now include the Environment Name in the Configuration section.

36455: Expected Values with repeat count does not always maintain tolerance values in script

Previously, a test case with repeated expected values including tolerances would not export correctly to the test script. This problem has been resolved in VectorCAST version 6.2i.

VectorCAST/Ada:

32573: List of units in Ada Environment Wizard does not refresh when "regenerate GPR cache" is selected

Previously, when using the Environment Wizard to build an Ada environment from a GNAT GPR file and when using the GPR cache, clicking the 'Regenerate GPR cache' button would not update the available list of units if new units had been added. This problem has been fixed in VectorCAST version 6.2i.

32808: Support for FALSE condition for Ada 'for' loops

Due to the limitations of the Ada language, it is impossible to instrument the condition expression in a "for" loop to detect whether the condition was True or False, so VectorCAST has always just indicated True if a "for" loop was entered, and no indication of False was given. In VectorCAST version 6.2i, there is a new Coverage option on the Instrumentation subtab labeled "Show True and False in 'for' loops". When set, VectorCAST instruments the "for" loop to allow both True and False outcomes. The "True" condition is met if the loop is entered. When the new option is set, additionally the "False" condition is met if the loop is not entered, or if the loop is exited prematurely due to an "exit" statement. clicast -lada option VCAST_ENHANCED_FOR_LOOP_COVERAGE True | False The default value is True, meaning Ada "for" loops are instrumented with both True and False possible outcomes.

32839: Package defined solely in nested package body can cause compile errors in whitebox environment

Previously, when a unit under test contained nested packages, and the body of a nested package contained a spec and body for another package, VectorCAST would incorrectly reference objects in this doubly-nested package, resulting in compile errors. This problem has been resolved in VectorCAST version 6.2i.

35739: User code fails to compile for private UUT's using Apex

Previously, when using Apex to build an environment with a private package as the Unit Under Test, if any test case had user code, the user code would fail to compile and put the environment in a "link failed" state. This issue has been fixed in VectorCAST version 6.2i.

36146: Standard Ada library types being incorrectly treated as a 'limited' type

Previously, when parsing the standard Ada packages, VectorCAST would not parse dependents of that package, causing types defined in those dependents to appear as "Type not in environment". Any type that is determined to not be in the environment is treated as a "limited" type (preventing build errors due to copying of records containing fields of a limited type). If your code under test changes the value of an object that VectorCAST considers to be limited but is not actually limited, then tests will fail. VectorCAST version 6.2i now parses the dependents from the standard packages ADA.TEXT_IO and ADA.FINALIZATION by default to give you access to the types in those packages. If you need VectorCAST to parse the dependents of additional packages, then set the environment variable "VCAST_STANDARD_PACKAGES_TO_PROCESS" to a comma-separated list of package names. For example, set VCAST_STANDARD_PACKAGES_TO_PROCESS=ADA.TEXT_IO,ADA.FINALIZATION,System.Win32 to enable VectorCAST to find the type HANDLE in Interfaces.C.ptrdiff_t.

36698: Ada environment builder can fail on certain targets when nested package defines enumerated subtype

For certain targets, VectorCAST builds the harness processing for enumerated types using a list of the appropriate enumerals. In some cases, that list may be empty due to the inability to resolve certain typemarks. Previously, an empty list would cause the environment builder to crash. In VectorCAST version 6.2i, an empty list will not cause a crash; in addition, the number of occurrences of empty lists has been reduced.

36836: Allow "DONT_STUB" line to add unit to environment

In certain situations, the user may need coverage on a non-stubbed unit that, due to how the environment was built, is not considered part of the harness and therefore is not listed in the Custom Coverage dialog. The environment builder does not parse the dependent units of Ignored units (listed on the line ENVIRO.IGNORE in the environment script), so this problem occurs when the non-stubbed unit of interest is a dependent of an Ignored unit. In VectorCAST version 6.2i, a new clicast-only option is added, VCAST_ADD_DONT_STUB_UNITS, which, when set to true, causes units specified as ENVIRO.DONT_STUB in the environment script to be added into the environment even if VectorCAST does not find a reference to the unit (because the calling unit is "ignored").

clicast -lada option VCAST_ADD_DONT_STUB_UNITS true The default value is false. Changes to the value of this option take effect when the environment is built new; rebuilding the environment does not cause the parser to find the dependants of ignored units.

36907: Locally scoped objects causing compile errors with some harness builds

When building a Multiunit Whitebox environment for targets that do not allow the 'image attribute, VectorCAST would use fully qualified names when referring to enumerated values. When the fully qualified name conflicted with a locally scoped object, the environment would fail to compile. This problem has been resolved in VectorCAST version 6.2i.

VectorCAST/C++ and VectorCAST/Cover:

33940: XML Aggregate Coverage Report for C/C++ Environments

VectorCAST version 6.2i provides a new coverage report, accessible from CLICAST only. The report creates an Aggregate Coverage report in XML format, which indicates whether each line of the specified unit's original source file is covered or not. The report is output to the specified <output file> or to <env>_coverage_report.xml if none is specified. If the <unit> parameter is specified, the XML Aggregate Coverage Report includes only the specified unit; otherwise, the report includes all units in the environment. clicast -lc -e <env> [-u <unit>] Reports Custom Xml_aggregate [<outputfile>] clicast -lc -e <cover_env> [-u <unit>] Cover Reports Xml_aggregate [<outputfile>] The XML Aggregate report provides valid data for C and C++ units only.

VectorCAST/C++:

34523: support for Visual Studio 2013

VectorCAST version 6.2i now supports the Visual Studio 2013 compiler.

35743: Testcase Management report says "No execution results exist" for Compound-only testcases

In previous versions of VectorCAST, the Testcase Management report would show "No Execution Results Exist" for a given test even though the results might exist in the

compounds. In VectorCAST version 6.2i, the Testcase Management report shows the text "Compound-only Test" for tests that have been executed only as part of a compound.

35920: Generated concrete classes use C++11 deleted constructors

When concrete class generation was enabled, source code with abstract classes having C++11 explicitly deleted constructors caused VectorCAST to create harness code that did not compile. This problem has been resolved in VectorCAST version 6.2i.

35921: Default object initialization user code utilizes C++11 deleted constructors

Previously, VectorCAST generated harness code that did not compile for source code with references to extern arrays of classes with C++11 deleted constructors. This problem has been resolved in VectorCAST version 6.2i.

36001: Support for long double does not work when compiler's double is not the same length as long double

Ranges for long double types were incorrect for some compilers where long double had a different range than double. <<MID>> values for long double types caused test execution to abort. These problems have been resolved in VectorCAST version 6.2i. If you have an older environment using long double types, you need to rebuild the environment to get the new behavior.

36060: Share coverage for static inlines across units

In previous versions of VectorCAST, the "Show inlines as covered in all units" option did not apply to functions declared as static. In VectorCAST version 6.2i, coverage data for static inlines can be shared across units (when the option is enabled.) You must reinitialize code coverage to see the new behavior.

36082: Environment build failure when class with deleted constructors is in type-handled directory

For some code in type-handled directories containing C++11 deleted constructors, VectorCAST could not complete building the environment. This problem has been resolved in VectorCAST version 6.2i.

36104: Environment build failures using g++ with C++11 support and UUTs which use Qt

The following improvements have been made in environment building in VectorCAST

version 6.2i: * Testable functions with references to classes having C++ deleted copy constructors are now supported. * Environment building no longer aborts for some source code where constructors use class template arguments * Functions returning C++11 rvalue references can now be stubbed. * Class objects for structs having fields that in turn have fields without default constructors are now declared as pointers to prevent a compile error. * Functions declared with the GNU __attribute__((dllimport)) can now be stubbed. * Environment building no longer aborts for classes in type handled directories with parameters having inaccessible copy constructors. * Stub syntax now reflects a field's non-callable copy constructor by using C++11 uniform initialization if available.

36111: VectorCAST tries to generate partial type support for class defined within a function

Previously, VectorCAST generated test harness harness code for classes defined within functions that did not compile. This problem has been resolved in VectorCAST version 6.2i.

36200: Increase buffer allocation when test input exceeds allocated length

Test scripts which specified an allocation for a string parameter smaller than the length of the string could cause an abnormal termination of the test if the smaller allocation value was used. In VectorCAST version 6.2i the full length of the string is used for allocating memory.

36507: Error message "default argument is not at the end of the parameter list" occurs for some Visual Studio code

VectorCAST incorrectly gave the error "default argument is not at the end of the parameter list" for Visual Studio source code when a template parameter without a default argument followed one that did. This problem has been resolved in VectorCAST version 6.2i.

36595: Parameter tree not allowing expansion of array elements

Previously, it was not possible to fully expand the array elements of a 1-element array in the Parameter Tree when that array was part of a structure in another array. This problem has been resolved in VectorCAST version 6.2i.

36721: Invalid array copy in stub when parameter is typedefed reference to array

Stubs created by VectorCAST for functions with parameters having a typedef'd reference to array types did not compile. This problem has been resolved in VectorCAST version 6.2i.

VectorCAST/Cover:

36130: MC/DC instrumentation potentially adds unused variables to functions

MC/DC instrumentation sometimes added unused vcast_mcdc_statement1 variable declarations to functions. MC/DC instrumentation was also missing for parameters of functions in return statement. These problems have been resolved in VectorCAST version 6.2i.

VectorCAST/Manage:

35304: Quickly add a new environment to a Manage project

There are two new features for VectorCAST/Manage in VectorCAST version 6.2i. * The ability to quickly create an empty Manage project and build testsuites and environments all from within Manage. * The ability to add nodes to the VectorCAST/Manage project tree without having to use the project wizard. To create a new empty Manage project, choose File => New => Manage Project => Empty Manage Project. In the dialog, provide a project name and choose a compiler template from the menu to the right of the compiler text box. Click the Create button. A simple project tree is created for you, including the Platform, Compiler, TestSuite, and Group nodes. With the empty project, you can easily add an existing environment to the project by right-clicking the group and choosing Create New Environment. The familiar unit test wizard opens for you to create the environment. The compiler has already been specified for you by the Compiler node. Once built, add tests and execute as desired. When finished, close the environment, and it appears as a Migrated environment in the group.

36425: Build/Execute Incremental on migrated environments brings test scripts up-to-date first

VectorCAST version 6.2i improves the work flow for users with frequently changing environments and test scripts in their Manage projects. In the scenario where the Manage project has migrated environments that exist in more than one Testsuite, performing the Build/Execute Incremental action now updates the test script before executing. For example, suppose you have a Manage project with one migrated environment (named ENV) which is in two Configurations (testsuites). One configuration might be under the

Host compiler node, and the other instance of the environment is under the Target compiler node. You open one environment and make a change to the tests (adding, removing, or modifying). You close the environment and save the changes to the project when prompted. The test script with the changes is saved in the <project>/environment/ENV directory. When you select the environment in the other configuration and choose Build/Execute => Incremental, the environment is incrementally rebuilt and then the test script is updated to match the most recent one in the <project>/environment/ENV directory. The update process is accomplished by comparing the environment's current test script to that in the <project>/environment/ENV directory. If any differences are detected, a new "diff script" is generated, which writes commands to the test script reader on how to bring the tests up-to-date. In the Message window, you see the new command being issued after the incremental rebuild: clicast -e ENV test script update* <path to ENV's current test script> <path to <project>/environment/ENV test script> <path to new "diff script" ENV.tst.update> *The 'clicast test script update' command is only used in Manage; it is not available to users. By performing Build/Execute Incremental on migrated environments, you are assured that each instance of the environment is using the same, updated, test script. manage -p <project> --level <source>/<platform>/<compiler>/<configuration or testsuite>/ --environment ENV --build-execute --incremental manage -p <project> --level <source>/<platform>/<compiler>/<configuration or testsuite>/ --environment ENV --execute --incremental

VectorCAST/RSP:

34742: Support for __bit keyword for Tasking Tricore compiler

Previously, VectorCAST could not handle the Tasking Tricore __bit keyword. This problem has been resolved in VectorCAST version 6.2i.

36121: JTAG communication error when executing CCS 28335 test in flash

In VectorCAST version 6.2i, the test execution script for Code Composer Studio has been updated to delete all breakpoints at the end of each test. For some versions of Code Composer and some target hardware, the left-over breakpoints caused test execution

problems.

36490: Cosmic H12X stubbing issue with @far and @gpage qualifiers on pointer parameters

Stubs generated for Cosmic compiler functions with @far or @gpage qualifiers on pointer parameters did not compile. This problem has been resolved in VectorCAST version 6.2i.

36504: Possible compile errors for unscoped enumerals on certain targets with Multiunit Whitebox

On certain Ada targets, VectorCAST prints enumerated values via an 'if' statement, listing every enumeral. Previously, if the enumerated type was defined in the package being processed, no dot-notation was used. This could cause compilation errors if an enumeral matched the name of another object in scope (or a standard enumeral like 'TRUE'). This problem has been fixed in VectorCAST version 6.2i.

36513: NEC v850 F3376 on simulator registers may get coverage instrumentation in the wrong location

Previously, source code containing NEC V850 bit accesses on registers, such as ADA0PS.1, could get coverage instrumentation in locations that did not compile. This problem has been resolved in VectorCAST version 6.2i.

VectorCAST/Requirements Gateway:

32692: PTC Integrity Integration

VectorCAST version 6.2i integrates with PTC Integrity version 10.4 and above, a software development solution that offers Requirements Management, Test Management, Software Change and Configuration Management, and Modelling Management. The VectorCAST/RGW integration allows the user to import Requirements from the PTC Integrity server, then export PASS/FAIL test results back to the PTC Integrity server. The initial VectorCAST integration links the RGW to the Integrity ALM module (an add-on to Integrity that adds Application Lifecycle Management functionality). For more information on this integration, please view our video on the VectorCAST website: http://www.vectorcast.com/resources/videos/how-vectorcast-requirements-gateway-rgw-integrates-ptc-integrity

Release Notes - VectorCAST 6.2h (Build date 08/27/2014)

VectorCAST C, C++, Ada (Core)

34779: Child processes of execution script not killed when executing tests from clicast

If VectorCAST detects that the test harness has finished but does not exit, VectorCAST kills the process associated with the execute command. In previous versions of VectorCAST, when executing tests from clicast, only the top-level process would be killed in this way. In VectorCAST version 6.2h, the child processes of that execution process are also killed.

36101: Extend the availability of the VCV Context variables

Prior to executing a test case from the VectorCAST GUI or command line interface, VectorCAST version 6.2h sets the following four environment variables to the correct values for the test being executed: * VCV_ENVIRONMENT_NAME * VCV_UNIT_NAME * VCV_SUBPROGRAM_NAME *VCV_TEST_NAME These environment variables enable users to key off of these values in any custom pre-execute or execute scripts being used during testing.

VectorCAST/Ada:

34873: Compile errors when handling unconstrained arrays/strings in nested packages

Previously, if a subprogram inside a nested package of a Unit Under Test contained a parameter (or return value) of an unconstrained string or array, VectorCAST would incorrectly build part of the whitebox harness, causing compile errors. This has been fixed in VectorCAST 6.2h.

35714: Do not allow uncoverable units to be instrumented from clicast

Previously, if CLICAST was used to add units to the list of files to be instrumented, VectorCAST would not validate whether the unit could be instrumented. This would cause compilation errors during the instrumentation process. This problem has been fixed in VectorCAST version 6.2h.

36113: Array element from renamed package cannot be modified when using Multiunit Whitebox

Previously, when building a multiunit whitebox environment, if an array element typemark came from a renamed package, the VectorCAST harness failed to set data values for the elements if the rename occurred in an un-scoped package rename. This problem has been fixed in VectorCAST version 6.2h.

36172: Not able to instrument package body of a non-stubbed unit if spec does not require a body

Previously, if a package body existed for a package specification that did not require a body (for example, via 'pragma ELABORATE_BODY'), VectorCAST would not allow the user to instrument the unit for custom code coverage. Starting with VectorCAST version 6.2h, the user can now instrument those package bodies.

VectorCAST/C++:

34130: Add "Stub Filtering" to the test case editor for SFB and Stubbed Subprograms

In VectorCAST version 6.2h, the option at the bottom of the Parameter Tree has been enhanced. It now is called "Display Referenced Items Only." When True, this option causes the Parameter Tree to hide (filter out) any Global variable or Stubbed Subprogram that is not called _directly_ by the subprogram under test. Filtering an item only affects the display in the Parameter Tree; its Input and Expected Values are used in test execution. <<SBF>> subprograms are not filtered. As before, the testcase-specific setting for this option is written to the test script as: TEST.VALUE:<<OPTIONS>>.REFERENCED_GLOBALS: TRUE | FALSE The default value is unspecified, meaning inherit the value of the environment-wide value of the option. The environment-wide option is located in the Options dialog, GUI tab, Test Case Editor Options subtab. Unlike other options on the GUI tab, the option is stored in the CCAST_.CFG file. clicast -lc option VCAST_REFERENCED_GLOBALS TRUE | FALSE The default value is FALSE.

34968: Enable "remove preprocessor comments" for all compilers

Beginning with VectorCAST version 6.2h, the option "Remove preprocessor comments" has been enabled by default for all compilers. clicast -lc option VCAST_REMOVE_PREPROCESSOR_COMMENTS TRUE | FALSE The default value is TRUE.

35453: Constructor stub member initializer should not invoke self

For some source code, VectorCAST generated constructor member initializers that instantiated a new instance of the same class being constructed, leading to infinite recursion. This problem has been resolved in VectorCAST version 6.2h.

35481: Problems reading regression scripts with configuration options containing quotes

Starting with VectorCAST 6.2e, regression scripts with configuration options containing quotes failed to place those quotes in the configuration file. This problem has been resolved in VectorCAST version 6.2h.

35542: Rhapsody integration with VectorCAST uses faulty .jar file in the deliverable as of version 6.2c

Beginning with VectorCAST version 6.2c, the Rhapsody integration was broken due to a bad VectorCAST.jar file in the distribution. This problem has been fixed in VectorCAST version 6.2h.

35894: C++11 default constructors incorrectly stubbed

Previously, source code containing calls to C++11 explicitly-defaulted constructors caused VectorCAST to stub the constructor, leading to a compile error. The constructor was also not available as a testable function or for initializing class instances. These problems have been resolved in VectorCAST version 6.2h.

35903: Harness compile error due to use of inaccessible type

Source code containing functions with parameters using pointer-to-members of non-public classes caused VectorCAST to generate harness code that did not compile. This problem has been resolved in VectorCAST version 6.2h.

VectorCAST/Cover:

35804: Error compiling instrumented file using C99 declared initializers

Coverage instrumentation for source code containing C99 declared initializers did not

compile. This problem has been resolved in VectorCAST version 6.2h.

VectorCAST/Manage:

32980: Easier access to Configuration windows, Build and Execute Logs from Manage Tree

New GUI shortcuts have been added to VectorCAST/Manage 6.2h. * Double-clicking the configuration column next to a migrated environment opens the Options window for that environment. * Double-clicking the build column for an environment opens the corresponding Build Log. * Double-clicking the execute column for an environment opens the corresponding Execute Log.

VectorCAST/RSP:

35581: Apex Environment building speed improvements

Previously, when creating the Apex environment view from the parent view, VectorCAST added each imported view using the "apex import" command, one command per view. In VectorCAST version 6.2h, VectorCAST now adds multiple views using one "apex import" command, greatly speeding up the environment build process.

35685: IAR (seen in version 7 for Arm) built-in type _VA_LIST

Previously, VectorCAST did not recognize the IAR built-in type _VA_LIST. This problem has been resolved in VectorCAST version 6.2h.

36124: Support for NEC v850 compiler hardware registers with the f3376 device

Previously, registers of the NEC v850 compiler with the f3376 device were not recognized by VectorCAST. In VectorCAST version 6.2h, using the parser flag --nec_version=f3376 enables recognition of register names.

36370: Unconstrained subtype of constrained subtype of enumeral builds environment incorrectly for certain targets

Previously, for certain Ada targets, VectorCAST used a 'case' statement to set/inspect objects of enumerated types. In the case of an enumerated subtype that is just a subtype of another constrained subtype, the 'case' statement may have been generated incorrectly, causing errors or incorrect behavior during a testcase execution in VectorCAST. This problem has been resolved in VectorCAST version 6.2h.

Release Notes - VectorCAST 6.2g (Build date 08/10/2014)

VectorCAST C,C++,Ada (Core)

34095: Treat compiler output of "QNAN" the same as "NAN"

Some compilers are configured to use the string "QNAN" for Not-A-Number (NaN) instances of floating point values. Beginning with VectorCAST version 6.2g, this text string is treated the same as any other NaN. When the expected value for a floating point object is <<NAN>> and the output is QNAN, the value is considered a match.

34167: VectorCAST compatibility issue with 64-bit Linux

VectorCAST version 6.2g runs correctly on SuSE Linux Enterprise Server 10 as well as our other supported platforms.

VectorCAST/Ada:

31149: Label on same line as another token can cause invalid instrumentation

Previously, if a 'declare' block had a label, and the label appeared on the same line as the 'declare' statement, VectorCAST could write tokens in the blocks with no spaces between them, causing compilation errors. This has been fixed in VectorCAST version 6.2g.

33845: GUI incorrectly allows setting of stub parameters whose type is defined only in private section

When VectorCAST builds a stub for a private package, if a subprogram in that package references a type defined solely in the private section of an ancestor parent, the VectorCAST harness cannot create an object for this parameter, so the parameter cannot be set/inspected. In previous versions of VectorCAST, the GUI was not aware of this, and allowed the user to enter data for the parameter, even though the data would not be used. In VectorCAST version 6.2g, the GUI now shows the type as <<user>>, indicating that user code is the mechanism for setting/inspecting the object. Because VectorCAST does not create an object for this parameter, Configure Stubs User Code is the best type of user code for inspecting/setting this parameter.

34378: Variant records not always getting discriminant values set correctly

In a multiunit whitebox environment, in certain cases when VectorCAST builds an object

of a record type derived from a variant record without a default discriminant, the object may not set the discriminant value, causing compile errors. This problem has been fixed in VectorCAST version 6.2g.

35154: For certain targets, subtypes of enumerals can cause execution failure

Previously, for certain targets, VectorCAST uses a 'case' statement to set/inspect objects of enumerated types. In the case of an enumerated subtype that does not begin with the first enumeral in the parent type, the 'case' statement may have been generated incorrectly, causing errors or incorrect behavior during a testcase execution. This problem has been resolved in VectorCAST version 6.2g.

35429: Stub in elaborate_body package not returning different values

Previously, if a stubbed package contained a "pragma ELABORATE_BODY", then when setting up input data for a parameter in the stub, VectorCAST would only use the first value in a list. This problem has been resolved in VectorCAST version 6.2g.

35479: Whitebox of generic instantiation fails to build with certain compilers

To achieve whitebox visibility to generic instantiations, VectorCAST uses subprogram access types to pass the address of internal functions so as to prevent circularity issues arising from "with" of harness packages. In some compilers (Apex is one example), the compiler complains if the subprogram access type is not defined in the generic itself. This problem has been fixed in VectorCAST version 6.2g.

35650: Environment build issues for stubs with nested packages only in private section

Previously, if a stub had a nested package in the private section, and parameters in that nested package referred to types from a generic instance, the environment builder could fail to build the correct objects for the parameter, causing compile errors. This has been resolved in VectorCAST version 6.2g.

VectorCAST/C++:

35004: do {} while (0) counts as 2 basis paths

Previously, do-while statements with only one possible value in the while expression caused two basis path tests to be generated. In VectorCAST version 6.2g, no additional tests are added.

35325: Parse error "constexpr function return is non-constant" incorrectly occurs for some C++11 code

VectorCAST incorrectly gave the parse error "constexpr function return is non-constant" for some C++11 source code that compiled. This problem has been resolved in VectorCAST version 6.2g.

35332: Harness compile error when class specifies C++11 deleted constructors

Source code containing C++11 deleted constructors resulted in compile errors in VectorCAST environments. This problem has been resolved in VectorCAST version 6.2g.

35333: C++11 overloaded throw spec issues

When building environments for C++11 source code, the error "exception specification for virtual function <x> is incompatible with that of overridden function <y>" was incorrectly given for some code that compiled. This problem has been resolved in VectorCAST version 6.2g.

35373: C++ parser fails with no error message on some C++11 templates

In previous versions of VectorCAST, some valid C++11 templates could cause the VectorCAST C++ parser to crash, which appeared as a parse failure with no error message. In VectorCAST version 6.2g, the parser correctly handles these templates.

35495: Old test scripts for overloaded functions with decltype(__nullptr) parameter types no longer broken

In VectorCAST 5.2 for Visual Studio C++ 2010, functions with parameters of type decltype((__nullptr)) were treated as if the parameter type was decltype((nullptr)). VectorCAST 5.3 correctly treated the types differently, and added a compatibility feature for importing 5.2 .tst scripts which used decltype((nullptr)). In VectorCAST 6.2f, this compatibility feature was broken, such that old scripts using decltype((nullptr)) would not work correctly for functions with parameters of type decltype((__nullptr)). This problem is resolved in VectorCAST version 6.2g.

VectorCAST/Cover:

34433: MC/DC Pairs improvements

When using C++ compilers that have an unsigned long long type available, VectorCAST version 6.2g can instrument expressions with up to 52 MC/DC subconditions, inclusive. If you prefer not to have unsigned long long types in the instrumentation due to lack of space, set the configuration option VCAST_UNSIGNED_LONG_MCDC_STORAGE to TRUE, and the maximum number of instrumented subconditions becomes 31. Ada

environments are now able to instrument up to 26 MC/DC subconditions. If the number of subconditions exceeds VCAST_MAX_MCDC_CONDITIONS, but is still under the absolute maximum number of instrumented subconditions (52 or 31 for C/C++, 26 for Ada), then the MC/DC Pairs table is not calculated during instrumentation. Instead, just the header row is drawn, and pairs for covered results are calculated and added to the table as coverage results are added to the environment. The environment variable VCAST_MAX_TABLE_SUBCONDITIONS is used to tell VectorCAST when an MC/DC Pairs table is too big to print. The default value is 20 subconditions, so the MC/DC Pairs table (or just the header row) is drawn for expressions with up to 20 subconditions. In VectorCAST version 6.2g, this environment variable can now be set as high as 52 to allow display of MC/DC Pairs tables with more subconditions. If an expression exceeds the value of the environment variable, then the table is not displayed and instead has the text "*** Table is too large to print***". Having the configuration option VCAST_MAX_MCDC_ABORT_INST set to TRUE will now abort instrumentation when the absolute maximum possible instrumented subconditions (52 or 31 for C/C++, 26 for Ada) has been exceeded when using the new instrumenter. The legacy instrumenter will continue to abort instrumentation when VCAST_MAX_MCDC_CONDITIONS has been exceeded. clicast -lc VCAST_UNSIGNED_LONG_MCDC_STORAGE True | False The default value is False.

VectorCAST/RSP:

32978: Issue with floating point calculation on Apex target

For certain Ada targets, conversion of floating point data to ASCII strings is problematic when the result is very close to a whole number. This problem has been resolved in VectorCAST version 6.2g.

35257: New RSP: Wind River VxWorks 7 for VxSim Simulator

VectorCAST version 6.2g supports the Wind River VxWorks 7 compiler under control of the VxSim simulator. Live board support is also available simply by changing the compiler options and connection string arguments. To select this compiler on the Tools => Options dialog, C/C++ tab, choose Compilers => WindRiver => vxWorks 7.x => vxSim => C or C++. clicast -lc template VXWORKS7_VXSIM clicast -lc template VXWORKS7_VXSIM_CPP

35387: Instrumentation inserted at wrong location when source contains CodeWarrior asm statements

CodeWarrior source code containing assembly statements caused instrumentation statements to be inserted at points in the file that did not compile. This problem has been resolved in VectorCAST version 6.2g.

36151: ADACAST_IO body for certain targets no longer compiles

For certain seldom-used targets, the delivered source file that operates between the VectorCAST harness and the target file system had a compile error. This problem has been fixed in VectorCAST version 6.2g.

Release Notes - VectorCAST 6.2f (Build date 06/29/2014)

VectorCAST C,C++,Ada (Core)

35138: Empty compound-only test case executed in a compound should not be counted as failure when option "Fail empty testcases" is true

Previously, when the option "Fail empty testcases" was True, empty compound-only test cases that are executed as part of a compound were incorrectly counted as a failure in the Test Case Management report subsection but not counted as a failure in the Overall Results section. Compound-only test cases should have No Execution Results, even if they are part of a compound test that has been executed. In VectorCAST version 6.2f, empty compound-only test cases that are executed as part of a compound test are no longer counted as failures in the Test Case Management report subsection. Existing environments need to be rebuilt for the fix to take effect.

VectorCAST/Ada:

34773: Stub User Code not inserted for deeply nested overloaded subprogram

Previously, VectorCAST would not properly determine the subprogram name in deeply nested overloaded subprograms. This caused insertion of user code into the harness to fail. This problem has been fixed in VectorCAST version 6.2f.

34812: GNAT Environment in invalid state after instrumentation failure.

Due to how VectorCAST handles the GNAT compiler, when an instrumentation error occurs, VectorCAST prompts the user to recompile the harness to back-out the change. Previously, if the user answered "no", then the environment would be left in a state where

it thought the code was instrumented, but the executable was not available, and therefore no tests could be run. This has been resolved in VectorCAST version 6.2f.

VectorCAST/C++:

29715: Overloaded functions with function pointer, pointer reference, or array parameters incorrectly distinguished

When a function name is overloaded in a VectorCAST environment, VectorCAST distinguishes different functions by appending the parameter types to the function name, resulting in a parameterized name. Previously, parameterized names were generated incorrectly for overloaded functions with certain parameter types. These parameter types were function pointers, pointer references, and arrays. The incorrect parameterized names would cause problems generating basis paths, adding user code, or in some cases prevented functions from appearing in the test case tree. This problem is resolved in VectorCAST version 6.2f, but environments must be rebuilt to utilize the fix. In addition, test cases for overloaded functions with function pointer types must be manually recreated after rebuilding. Parameterized names will now show full parameter types for pointer references and arrays. For example, a function with prototype: void func(char*& p1, char p2[5]); previously had the parameterized name: func(char*,char) but in VectorCAST version 6.2f has the parameterized name: func(char*&,char[5]) A new TEST.SCRIPT_FEATURE appears in test scripts using the new parameterization format. TEST.SCRIPT_FEATURE:FULL_PARAMETER_TYPES For environments built with Visual C++ 2010, having overloaded functions that have the decltype(__nullptr) parameter, and which have a test script generated in VectorCAST version 5.2 or earlier, users must edit the test script to change "nullptr" to "__nullptr" before rebuilding the environment in version 6.2f.

33715: Harness compile error due to use of incomplete types

In previous versions of VectorCAST, template-based types parameterized with an incomplete type could be erroneously used if VectorCAST tried to stub a function which

utilized the template-based type in the return or parameters. Such use would result in a harness compile error if the template needed the full type definition of the template parameter type. In VectorCAST version 6.2f, such functions will no longer be stubbed, which will result in a link error if the function is a dependency. This error can be resolved by adding a #include in unit appendix user code so that the compiler and VectorCAST can see the full type definition.

34047: Format of relative and full paths preserved upon loading environment script

Previously, GUI loading of environment scripts containing both relative and absolute paths caused the absolute paths to be converted to relative. This problem has been fixed in VectorCAST version 6.2f. Upon loading an environment script into the Wizard, the "Use relative paths" option is only checked if all of the paths in the script are relative.

34669: Wizard-based environment build fails when source directory is not writeable and there are multiple UUTs

Building an environment through the GUI wizard failed when the source directory is not writable, no dependency cache is set, and the environment contains multiple units under test. This problem has been resolved in VectorCAST version 6.2f. For best performance, a dependency cache should still be used.

34893: UUT also added as a not-stubbed unit when search directory path contains a symlink and STUB: NONE is used

Previously, units under test were incorrectly added to the environment as not-stubbed units when the directories containing those units were specified to VectorCAST with symbolic links and the ENVIRO.STUB: NONE option was used. This problem has been resolved in VectorCAST version 6.2f.

35399: Build failure when type is pointer to built-in vector

Previously, the VectorCAST environment builder would fail with certain GHS compilers when the UUT contained a type which was a pointer to built-in vector. This problem has been fixed in VectorCAST version 6.2f.

VectorCAST/Cover:

31692: Unable to add multiple Ada extensions to extension list using Cover command line

Previously, when using the command line to add valid Ada source file extensions one after another to a Cover environment, only the most recently-added extension would be added to the list. This problem has been fixed in VectorCAST version 6.2f. clicast -e <Cover_env> cover options ADD_ADA_Extension <extension>

34853: Instrumentation malformed on non-aggregate variable assignment with {}

When using the "Instrument variable declarations in C" option, coverage instrumentation for variable initializations to non-aggregate values enclosed in braces, such as int foo={0}, created code that not compile. This problem has been resolved in VectorCAST version 6.2f.

34867: Conditional operators in assignment not instrumented if inside logical operator

Assignment statements containing the conditional operator inside a logical operator (!, ||, or &&) were missing instrumentation for the conditional operator. This problem has been resolved in VectorCAST version 6.2f.

35014: Function name as 'if' condition leads to incorrect coverage results

Symbols declared weak through #pragma weak or __attribute__((weak)) were incorrectly treated as constants and assigned one possible condition value. In VectorCAST version 6.2f those symbols have two possible condition values.

VectorCAST/Manage:

33118: Improved build and execute flow in VectorCAST/Manage

VectorCAST version 6.2f provides a streamlined approach to building environments incrementally in Manage. For users who work with frequently changing source code, the right-click menu provides a way to Build incrementally and Execute incrementally in one click. The right-click menu has been rearranged to include: * Build/Execute => Incremental * Build/Execute => Full * Build => Full * Build => Interactive * Execute => Full * Execute => Interactive A new menu item in the right-click menu, "Build/Execute => Incrementally," means: * Build the environment if unbuilt, or * Build incrementally if source code has changed, or

* Rebuild fully if the incremental rebuild detected a global source code change, and * Execute only those tests that are un-executed. The Manage Incremental Rebuild Report provides the status from the Incremental Rebuild, the number of tests preserved for that environment, and the number of tests that required re-execution. The Manage command line provides --incremental and --incremental-only arguments for the following actions: --build, --execute, and --build-execute. The --incremental argument specifies that an Incremental action (i.e. build, execute, or build-execute) should be performed if that is all that is needed. If a full rebuild or execute is needed, then perform that. The --incremental-only argument specifies that an Incremental action be performed, only. NOTE: For Ada environments, choosing Build/Execute => Incremental rebuilds the environment fully only if the source code has changed for that environment. Otherwise, it states that Incremental Rebuild is unnecessary, and proceeds to the Incremental Execute action.

34954: Timestamp added to Message window output for VectorCAST/Manage

In VectorCAST version 6.2f, the Message window output in VectorCAST/Manage includes a time and date stamp at the beginning of each command. The format is: TIME: YYYY-MM-DD HH:MM:SS

VectorCAST/RSP:

25061: Quotes in harness execution command behave differently in GUI vs CLI

Certain target execution commands use quoted strings to pass to the execution process. Previously, VectorCAST's compiler template information used "\" to escape the quote marks. These escape characters were only necessary when running a test from the VectorCAST GUI; they could cause running from the command-line to fail. In VectorCAST version 6.2f, the escape characters are no longer needed.

34622: Parse error with IAR C function scope anonymous unions

IAR C source code using function scope anonymous unions could not be parsed during environment build. This problem has been resolved in VectorCAST version 6.2f.

Release Notes - VectorCAST 6.2e (Build date 06/08/2014)

VectorCAST C, C++, Ada (Core)

24898: Parameters in command file that are enclosed in quotes are not parsed correctly

Previously, when using a command file to execute commands through CLICAST (for example, using the command 'clicast -lc tools exec commands.tmp true'), if a line in the command file contained a quoted string, and that string contained spaces, the quoted string would cause errors depending on what command was being parsed. In VectorCAST version 6.2e, this problem has been fixed.

28788: Coverage data not saved for tests associated with uninstrumented units

Previously, when an environment with several UUTs and coverage for one of the UUTs was turned off using "Initialize Custom," and a test was executed in the uncovered unit, VectorCAST did not show coverage for the other units, even though they had been called by the test. This problem has been corrected in VectorCAST version 6.2e.

30311: Support for finding a test in a compound and copying/pasting a test in a compound

VectorCAST version 6.2e provides a way to find a particular test (or "slot") in a compound testcase. Copy/Paste is also implemented in this version. To find a test for a compound test slot in the test case tree, right-click on the slot and choose "Find slot in test case tree" or use the keyboard shortcut (Ctrl+Shift+f). The Find banner appears in which you enter your search parameters. To copy a slot and paste it in another position, right-click the slot and choose "Copy" (Ctrl+Shift+c). Move the cursor in between the slots where you want to insert the copied slot, right-click and choose "Paste" (Ctrl+Shift+v).

31665: <<MIN>> and <<MAX>> expected values should show indication if no range data available

Previously, when no range data existed for an environment, setting an expected value using the MIN or MAX tags would fail, and the expected value would show "[]", which was confusing. In VectorCAST version 6.2e, the "[]" now shows as "[<<unknown>>]" to indicate that VectorCAST does not know the MIN/MAX values, which is consistent with the range displayed in the properties dialog and the tooltip for the parameter.

32973: Ability to select all checkboxes in CSV template

A CSV Map template is a CSV file that has particular data items from the VectorCAST environment added as columns. When creating the template, you select the check box next to any data item that you wish to include in the CSV file. In VectorCAST version 6.2e, two new right-click menu items have been added to the CSV template editor to make it easier to select them all at once: * Check all children * Uncheck all children These new menu items can be used on any node in the Parameter Tree in the CSV Editor. If you activate either of these commands while the mouse pointer is over the parameter name, columns for both the input and expected values are added to the template. If you click in the "Input Values" or "Expected Values" column, only the items in that column are added.

33446: New Custom Tool to Dump Execution Report in CSV Format

A new custom tool has been added to VectorCAST version 6.2e which dumps the Execution Report for the currently selected test case in CSV format, and on Windows, opens the resultant file in Microsoft Excel. The generated CSV file has the name of the test case with .csv file extension, and is created in the environment directory. After 1 header row, it contains one row for each VectorCAST event and a column for: * event number * unit name * subprogram name * data label for the parameter * actual value * expected value Note that the CSV Execution Report does not contain Control Flow comparisons or Test case or Parameter User Code comparisons. By default, this custom tool is not shown in the toolbar or Custom Tools menu. You can turn it on by opening the Custom Tools editor (Tools => Custom Tools => Custom Tools Editor...), and checking the box for Tool Bar or Menu for the custom tool named "Generate CSV Execution Report."

34991: Unreasonable response time when selecting coverage data

In previous versions of VectorCAST, the time needed to draw the covered lines in the

Coverage Viewer for a large unit under test was several seconds. This problem has been fixed in VectorCAST version 6.2e.

35007: Correct the Test Execution report when VCAST_FAIL_EMPTY_TESTCASES is true

Previously, when a testcase with only Input Values was executed while the option "Fail empty testcases" was set, the text "Empty Testcase Failures (1) FAIL" was incorrectly added to the Execution Report. This problem has been fixed in VectorCAST version 6.2e.

VectorCAST/Ada:

32081: DONT_STUB line not saved when "custom stub" selected in Ada Environment Wizard

When building an environment using the Environment Wizard, if "Custom" stubbing is selected, the environment builder previously would ignore items already in the "DONT_STUB" or "IGNORE" nodes. If the user did not notice this, they may incorrectly answer the "Stub?" prompt for these units. As of VectorCAST version 6.2e, the user is no longer asked the "Stub?" question for any unit that appears in the DONT_STUB or IGNORE node.

33435: Certain compilers require "pragma import" for objects mapped using "use at" clause

In an environment built with Multiunit Whitebox containing units with "pragma ELABORATE", VectorCAST uses object overlays to copy data without adding dependencies (via the "use at" clause). For some compilers, creating a variable at local scope with a "use at" clause will initialize the object, defeating the purpose of the overlay. To work around this, VectorCAST version 6.2e has added a new option that, when set to True, will add "pragma IMPORT ( ADA, object );" to the declaration to prevent run-time initialization of the object. clicast -lada options VCAST_IMPORT_FOREIGN_OBJECTS True | False The default value is False.

33541: Parameter whose type is constant pointer in a renamed package causes compile error

Previously, when a stub contained a parameter of type constant pointer, and the typemark included a package rename, VectorCAST would incorrectly build the type procedure used to set/inspect the parameter, causing compile errors. This problem has been fixed in VectorCAST version 6.2e.

34050: Compile errors trying to handle constant pointers in standard Ada packages

Due to limitations with manipulating types from standard Ada packages, when VectorCAST tries to build the support functionality for constant pointers defined in one of these packages, the functionality may not compile. This has been resolved in VectorCAST version 6.2e.

34182: Script values with MIN/MAX in expected range do not work when Range Check is disabled

Previously, if Range Check was disabled, use of <<MIN>> or <<MAX>> in a range expression (e.g. <<MIN>>..10/1) in a script would be flagged as an error. This has been resolved in VectorCAST version 6.2e.

34598: Multiunit whitebox error when subtype depends on private type from another package

When a package declares a subtype of a private type defined in another unit, and the environment is built with Multiunit Whitebox, then the harness may have compile errors if there are no other types referenced from the second package. This issue has been resolved in VectorCAST version 6.2e.

VectorCAST/C++:

30217: Support for Lint MISRA 2012

VectorCAST version 6.2e now supports the MISRA C 2012 standard.

33401: Harness compile error due to invalid template arguments in generated code

In previous versions of VectorCAST, a harness compile error could occur for template-based types or functions where the template argument type required namespace qualification in the harness but didn't use such qualification in the original unit (due to being used only within the namespace, for instance). This problem has been fixed in VectorCAST version 6.2e. As part of this change, the "Force explicit template arguments" option is now applied only for instantiations of template-based functions where the instantiation did not exist in the original unit. If an instantiation existed in the original unit, the harness will use explicit template arguments if the original instantiation did, but not otherwise, even if the option is enabled.

33542: Constructor choices missing from dropdown list; "user" appears instead

While building a C++ environment, VectorCAST was failing to utilize available constructors when building type support for types associated with the stubs created for automatically generated concrete classes. This problem has been fixed in VectorCAST version 6.2e.

33567: Incorrect range data detected for long long bit fields

In previous versions of VectorCAST, range data for long long and unsigned long long sized bitfields was incorrect. This problem has been resolved in VectorCAST version 6.2e. Older environments for source code containing long long or unsigned long long sized bitfields will need to be rebuilt to get the correct ranges.

33785: Error during parse triggered by code in uninstantiated function template

Some uninstantiated function templates containing statements caused VectorCAST to give an assertion failure during parsing. This problem has been resolved in VectorCAST version 6.2e.

33846: Harness compile error in TI function for basic_string-based type

When both options "Do not detect ANSI C++ standard string types" or "Do not detect ANSI C++ standard wstring types" were not selected, and the environment used source code containing a basic_string type that used an allocator other than std::allocator, VectorCAST's test harness did not compile. This problem has been resolved in VectorCAST version 6.2e.

33969: Harness does not compile when source code contains a typedefed const unnamed struct

Typedefed const anonymous structs, such as typedef struct { int foo; } const SAMPLE_STRUCT; could cause VectorCAST to generate harness code that did not compile. This problem has been resolved in VectorCAST version 6.2e.

33999: Empty error message when parser runs out of memory

Previously, the VectorCAST parser could run out of memory when processing large translation units. When this occurred, VectorCAST would show an empty error message. In VectorCAST version 6.2e, less memory is used when reading the parse data, and if a

memory error does occur, a proper error message is displayed.

34035: Invalid basis path test script generation leads to GUI crash

For some source code with conditions that dereferenced a non-pointer type, VectorCAST generated invalid basis path test scripts. Running tests using those scripts could cause VectorCAST to crash. These problems have been resolved in VectorCAST version 6.2e.

34133: Incorrect concrete subclass generation for pure virtual methods declared with __stdcall

In previous versions of VectorCAST, the __stdcall qualifier of virtual members was missing when the environment builder automatically created a concrete subclass of an abstract class, resulting in a compile error. This problem has been fixed in VectorCAST version 6.2e.

34650: New Builder option: "Use default parameter arguments" when initializing P-objects

VectorCAST version 6.2e implements a new Builder option, "Use default parameter arguments." When the option is set to true, the harness sets the variables passed as parameters for test functions to their default arguments. clicast -lc option VCAST_USE_DEFAULT_ARGS True | False The default value is True.

34685: Environment build failure when VectorCAST tries to stub vector global

In VectorCAST version 6.2d, an environment would fail to build if a stubbed vector was generated for the test harness. This problem is fixed in VectorCAST version 6.2e.

34947: Incorrect values passed to second range of UUT

In environments with iterations for stubbed parameters and UUT parameters that were pointers, it was possible that the stub input parameter would overwrite the UUT input parameter at the beginning of the range iteration. This problem has been fixed in VectorCAST version 6.2e.

VectorCAST/Manage:

27044: Support for renaming a Migrated environment in Manage

VectorCAST version 6.2e adds support for renaming migrated VectorCAST environments from within Manage.

34842: Manage "EXECUTE" action deletes all options not set by template

A bug in VectorCAST/Manage version 6.2d caused some environment options, not part of the compiler template, to reset to default settings after calling the Manage Execute command. This problem has been fixed in VectorCAST version 6.2e.

VectorCAST/RSP:

32213: Optimize VectorCAST/C++ test harness for targets with limited memory

Several optimization have been made to VectorCAST/C++ version 6.2e to reduce the memory requirements of the test harness executable. Two types of changes have been made: first, changes were made to the generated source files to reduce code size and stack usage; second, new options have been added to give users finer control over the components that are included in the harness. The new options and some existing options were moved to a new sub-tab called "Harness Size Options" on the "Target" tab of the tool options dialog. The following are the new options that were added: * Omit code to process bit fields * Omit code to process 'float' types * Omit code to process 'string' types * Disable all type processing * Perform minimal harness termination processing Two existing options have had functionality changes: the "Maximum string length" option minimum value has been reduced from 130 to 24, resulting in much smaller stack usage, and the "Maximum varied parameters" option minimum value has been changed from 1 to 0. When this value is set to 0, all processing related to range and list testing is omitted. Finally, options to help with the configuration of the VectorCAST malloc implementation have been added to this same "Harness Size Options" sub-tab. Previously, the configuration of the VectorCAST heap was accomplished with macros (defined variables). A new option, "Maximum size of the VectorCAST heap", controls the pre-allocated size of the VectorCAST heap when not using the standard heap. With all of these changes the VectorCAST test harness can now fit on a variety of 8-bit micro processors. The minimum resources are 32k program space and 1k RAM. clicast -lc Option VCAST_DISABLE_TI_BITFIELD True | False The default value is False clicast -lc Option VCAST_NO_FLOAT True | False The default value is False

clicast -lc Option VCAST_DISABLE_TI_STRING True | False The default value is False clicast -lc Option VCAST_NO_TYPE_SUPPORT True | False The default value is False clicast -lc Option VCAST_MINIMAL_TERMINATION True | False The default value is False clicast -lc Option VCAST_MAIN True | False The default value is False clicast -lc Option VCAST_NO_EXIT True | False The default value is False clicast -lc Option VCAST_NO_MALLOC True | False The default value is False clicast -lc Option VCAST_MAX_HEAP_SIZE <integer number> The default heap size is 1000 clicast -lc option MAX_STRING_LENGTH <integer number> The default is 1000; the minimum value is 24 Moved from Builder tag to Target tab: clicast -lc Option MAX_VARY_RANGE <integer number> The default value is 20; the minimum value is 0 Setting this option to 0 removes range and list processing from the test harness Changes to the above options take effect after recompiling the test harness.

32265: New I/O mechanism for Ada targets

Previously, RSP implementation for Ada targets was done by modifying the VectorCAST tool itself, which made it difficult for Vector Software and/or the customer to modify the behavior for a particular target setup. VectorCAST version 6.2e implements some new functionality that will allow the customer (with help from VectorCAST Technical Support) to more easily customize input, output, and execution behavior for their target. The changes to the Target tab in VectorCAST version 6.2e (for Ada mode) are: * "Execute using stdout only" has been removed from GUI only * "'adacast_io' package_spec" has been removed from GUI only * "Execution process uses stdin/stdout for file I/O" has been added clicast -lada option VCAST_CONFIGURABLE_ADA_IO True | False The default value is False.

In the $VECTORCAST_DIR/IO directory is a new directory named "configurable." In it are customizable files that allow the use of a "virtual" file system that, coupled with a python script, allow the user to replace file input and output with global data buffers controllable from a debugger interface. Clicast-only options, beginning in VectorCAST version 6.2e: clicast -lada option ADACAST_IO_SPEC clicast -lada option VCAST_EXECUTE_WITH_STDOUT

33647: Derived enumerated types causing compile errors with certain targets

On targets that do not support Ada 'image attributes, VectorCAST sets/prints enumerated values via a "case" statement. In recent versions of VectorCAST, if the type is actually derived from another enumerated type, the comparison operator from the parent type was used instead of the derived type, causing compilation errors. This has been fixed in VectorCAST version 6.2e.

33911: Incorrect harness functions generated to support CrossWorks SFR types

In previous versions of VectorCAST, unit test environments built for CrossWorks for MSP430 would fail to handle SFR types (sfrb, sfrw, and sfra) correctly. This problem has been fixed in VectorCAST version 6.2e.

33975: Compile error during instrumentation with "Instrument variable declarations" on for aggregate initializations with GHS compilers

When the option "Instrument variable declarations" was True and C source code contained an aggregate initialization, coverage instrumentation was sometimes generated that did not compile for Green Hills, Borland, Code Composer, Cosmic, Diab, Fujitsu, Tandem H, Keil, Paradigm, Renesas, Tasking, and Trimedia compilers. This problem has been resolved in VectorCAST version 6.2e by setting the new clicast-only Cover option VCAST_COVERAGE_AGGREGATE_INIT to False for those compilers. If you are using another compiler that cannot compile function calls in aggregate initializations, set the configuration option VCAST_COVERAGE_FOR_AGGREGATE_INIT to False. clicast -lc Option VCAST_COVERAGE_FOR_AGGREGATE_INIT True | False The default value is True.

34173: Minimum value for Maximum String Length option has been reduced to 24

The minimum value for the "Target" option "Maximum String Length" has been reduced from 130 to 24 in VectorCAST version 6.2e. The value of this option controls all of the temporary strings that are allocated in the test harness. Primarily, these temporary strings

are used to process individual test values. So, you only need a larger value for this option if you use test values with a long list of input values. Reducing this value reduces the amount of RAM required to run a test case, which allows tests to be run on smaller target processors. For example, setting the input value for the angle of a sine function in a list such as "0,90,180,270,359" would require longer temporary strings than a single value such as "90." clicast -lc option VCAST_MAX_STRING_LENGTH <integer number> The default value is 1000. The minimum value is 24. Changes to the option take effect after the environment is recompiled.

34179: Green Hills #pragma pack should be accepted

When using the Green Hills compiler, source code containing "#pragma pack" caused VectorCAST to give the error "expected an integer constant". This problem has been resolved in VectorCAST version 6.2e.

34230: Minimum value for "Maximum Varied Parameters" has been changed from 1 to 0

The minimum value for the option "Maximum Varied Parameters" has been reduced from 1 to 0 in VectorCAST version 6.2e. This option controls the number of data values that can be varied at the same time in one test case. Previously located on the Execute tab of the Options dialog, this option is now on the Target tab. When the value of "Maximum Varied Parameters" is set to the new legal value of 0, the range processing portions of the test harness are "turned off," which reduces the amount of program and data space required to run a test case, and allows tests to be run on smaller target processors. clicast -lc option MAX_VARY_RANGE <integer number> The default value is 20; the minimum value is 0. Changes to the option take effect after the environment is rebuilt.

34494: New RSP: Microchip MPLAB X8 compiler for PIC1818LF46J53 processor

VectorCAST version 6.2e supports the Microchip X8 compiler on the Microchip PIC1818LF46J53 processor. To select this compiler on the Tools => Options dialog, C/C++ tab, choose Compilers => Microchip => MPLAB X8 => PIC18 => P18LF46J53 => C. clicast -lc template PIC18_P18LF46J53

34788: pty.exe and monitor_stdout.exe not built correctly on Windows

In VectorCAST versions 6.2c and 6.2d, RSP configurations which used the VectorCAST helper applications pty.exe and monitor_stdout.exe would fail to execute tests. This problem has been resolved in VectorCAST version 6.2e.

VectorCAST/Requirements Gateway:

24264: Allow use of DOORS object identifier as requirement key or ID

The VectorCAST Requirements Gateway now allows users to specify the DOORS object identifier as the requirement key or ID when importing requirements from DOORS. If you use the "Find Modules" functionality on the VectorCAST DOORS options tab, "<<DOORS object identifier>>" will be added to the list of valid choices for all import fields. Before importing, select "<<DOORS object identifier>>" for the "Key attribute" and/or "ID attribute" fields to have VectorCAST use the identifier for that field. Note that if you have previously imported requirements from DOORS, a requirement key value has already been determined for each imported requirement. Since VectorCAST uses the key value to uniquely identify requirements, using a different value for the key will cause VectorCAST to treat newly imported requirements as completely unrelated to previously imported requirements, even if they are based on the same DOORS object. Therefore it is not recommended to change the "Key attribute" if you have already imported requirements that have been associated with VectorCAST test cases. However, it is ok to change the "ID attribute" in such circumstances, as the new ID value will be used to update previously-imported requirements when displaying those requirements in the VectorCAST GUI or reports. If you have previously customized the VectorCAST DOORS DXL scripts to change how requirement keys are generated or used, please contact VectorCAST Technical Support for further information.

Release Notes - VectorCAST 6.2d (Build date 04/21/2014)

VectorCAST C,C++,Ada (Core)

29262: Can't access mapped Novell network drive from file dialogs

VectorCAST was unable to access a mapped drive to a Novell network. This problem has been fixed in VectorCAST version 6.2d.

31317: New Clicast command: ENvironment RE_Build

In VectorCAST version 6.2d, there is a new Clicast command to rebuild a C/C++ or Ada

environment: clicast -e <ENV> ENvironment RE_Build

31432: Improved Custom Tool Feature

In VectorCAST version 6.2d, the Custom Tools feature has been completely re-worked to make it easier and more intuitive to use. The following changes have been made: 1. The Custom toolbar is now displayed in the main toolbar by default. 2. Two new tools have been added as default items: * the RSP Installer, which allows users to download and install customer-specific VectorCAST/RSPs, and * the Bug Tracking integration, which allows users to create bugs via an integrated bug tracking tool. 3. The default tools are displayed in the list, with a grey background color, and are not editable by the user. 4. An Import and Export feature has been added to allow users to easily share custom tool configurations. Note: When using the RSP Installer on Linux, the C_TEMPLATES.DAT must be writable. If you see an error message saying, "The Compiler Template file in this distribution is not writable. Please correct permissions and re-launch the installer," please contact your system administrator to modify the permissions on $VECTORCAST_DIR/DATA/C_TEMPLATES.DAT. Additionally, two other error messages appear due to the DATA directory still being read-only: "Copy failed, from/to: C_TEMPLATES.DAT / C_TEMPLATES.DAT.last" "Copy failed, from/to: C_TEMPLATES.DAT / C_TEMPLATES.DAT.original"

32598: Missing highlighting of errors in Test Script import Log

The red coloring of error lines in the Test Script Import Log, which were present in VectorCAST version 5.3 and missing in version 6.1, have been restored in VectorCAST version 6.2d.

33000: Batch execution from command line with "Fail on empty testcase" option on can cause incorrect FAIL state for CSV (MAP) test case

Previously, running the "clicast -e <env> exec batch" command on an environment with a CSV (MAP) test case and the option VCAST_EMPTY_TESTCASE_FAIL set to true would cause the (MAP) test case to be marked with the FAIL status. This status was incorrect because a (MAP) test case itself is not executed; only the test cases generated from it are

executed. This problem has been fixed in VectorCAST version 6.2d.

33027: Rebuilt environment, wrong environment showed up

When displaying a progress dialog, VectorCAST would allow the object beneath it on the Welcome page to be selected inadvertently, causing a different environment to open. This issue has been fixed in VectorCAST version 6.2d.

33146: Improved access to editing user code in the Parameter Tree

VectorCAST version 6.2d improves access to the User Code editor for Parameter User Code. In previous versions, you used the User Code tab in the Properties dialog for the parameter to add Input or Expected User Code. In VectorCAST version 6.2d, you can access that same editor by right-clicking the Input or Expected cell in the Parameter Tree, and choosing "Insert User Code." A little window the size of a tooltip opens, containing the Input or Expected User Code editor, the Test Compile and Reset buttons, and the User Code Tags button. When you have finished editing, click elsewhere in the Parameter Tree to close the editor to save your changes. Press the Escape key to discard your changes.

33688: VectorCAST Crashes on rebuild when link error and testcase user code is automatically added to environment

Previously, while building a VectorCAST/C environment with Parameter User Code and an unresolved extern, dismissing the link error pop-up window could cause VectorCAST to crash. This error has been resolved in VectorCAST version 6.2d.

33739: GUI Option "MDI Tab Position" removed

The option "MDI Tab Position" has been removed in VectorCAST version 6.2d. To modify the layout of the Main window, you can undock windows and move them around to your liking. To undock a window, click the "pop-out" icon with the green arrow, located on the window's tab. To have VectorCAST use the same layout for every environment, uncheck the GUI option "Remember window sizes per environment."

33923: Regenerate the cover.db if its project version is older than the vcm

In certain circumstances, VectorCAST corrupts the coverage information in the cover.db of a VectorCAST/Manage project when it is upgraded from an earlier version of VectorCAST. The error causes a source file to appear twice in the "Files" tab. This error has been fixed in VectorCAST version 6.2d.

VectorCAST/Ada:

30543: Do not allow external access to typemarks defined in a nested body

Previously, typemarks defined solely in a nested package body could cause the environment builder to try to reference these typemarks from a different nested package. This problem has been resolved in VectorCAST version 6.2d.

31372: Compilation errors when a UUT has a protected body in a 'separate'

Previously, if a 'protected type' containing a function was defined in the package specification, and the body was defined in a 'separate', VectorCAST might generate duplicate object names, causing compile errors. This problem has been resolved in VectorCAST version 6.2d.

31373: Separates for a non-UUT with code coverage are not getting covered

Previously, when building a whitebox environment, and trying to get coverage for a non-stubbed unit (that is not a Unit Under Test), VectorCAST would not show coverage for any subprogram declared as "separate". This has been resolved in VectorCAST version 6.2d.

31797: Missing body for procedure with parameter of variant record type

Previously, when the parent of a private child package contained a variant record with no default discriminant, then building a Multi-unit Whitebox environment including that unit could cause compile errors due to the mechanism used to assign values to the object. This has been fixed in VectorCAST version 6.2d.

33211: Unconstrained strings in an "elaborate_body" unit with Multiunit Whitebox does not honor actual string length

Previously, when building an environment with the Multi-unit Whitebox option set, and with stubs that used the "ELABORATE_BODY" pragma, if any of that stub's parameters had unconstrained strings as parameters, then the VectorCAST harness could not detect the actual length of the string. This could result in failed expected results and/or incorrect display of data when a stub was called multiple times during an execution. This problem has been resolved in VectorCAST version 6.2d.

33233: Non-printable characters in Ada strings cannot be verified via Expected Values

Previously, VectorCAST/Ada had no way to set an expected value for a string containing a non-printable character. In VectorCAST version 6.2d, non-printable characters can now be specified using the C-style format of \<octal-number>, such as "AB\123C"

33353: Private type derived from variant record can cause compile errors

Previously, when a package declared a private type that was derived from a variant record, and the private type definition set a value for the discriminant field, then VectorCAST could, in a Multiunit Whitebox environment, fail to detect the discriminant and create a record with the discriminant value set, causing a compile error. This problem has been fixed in VectorCAST version 6.2d.

33368: Stubbed task body missing select loop when only one entry

Previously, if a task (or task type) had a single entry point, if the task was stubbed VectorCAST would not build a "select" loop around the entry point, causing Tasking Error exceptions if the unit under test called the entry point multiple times. This has been fixed in VectorCAST version 6.2d.

VectorCAST/C++:

26860: Custom Tool for Custom RSP Installation

In VectorCAST version 6.2d, a new dialog has been added to allow the easy installation of custom VectorCAST/RSP modules. When a custom RSP is developed for a customer, it is now delivered in a .zip file. This new Installer can be used to automatically install the .zip file into a VectorCAST distribution. The Installer is part of the default "Custom Tools" menu, and can be accessed using the + Icon on the Custom toolbar.

30666: Enumerals with names matching macros which are in standard headers #included by harness files cause compile errors

Previously, source code containing enumeral names identical to macros used in standard headers #included by the harness caused compile errors. This problem has been resolved in VectorCAST version 6.2d.

31654: Regression Script generation fails with <<no value>> for class instance field members which are also classes but not pointers

Previously, VectorCAST put <<no value>> in the test script for values of driver class field members which were classes (but not pointers to classes). This problem has been resolved in VectorCAST version 6.2d.

31691: Wildcard patterns should be allowed in Not Supported Types, Suppressed Testable Functions, etc.

In VectorCAST version 6.2d, the use of the wildcard character '*' is permitted in the New Environment Wizard, on the following tabs of the "Choose UUTs & Stubs" page: * Library Stubs * Additional Stubs * Suppressed Stubs * Suppressed Testable Functions * Not Supported Types This functionality makes it easy to specify, for example, all library functions starting with strncmp to be stubbed: ENVIRO.LIBRARY_STUBS: strncmp*

32547: Harness compile error because enum keyword not accepted by Visual Studio on declarations of strongly typed enums

C++11 enumerals with underlying types and strongly typed enumerals caused harness compile errors when the configuration value VCAST_FORCE_ELAB_TYPE_SPEC was set to true. VectorCAST version 6.2d always omits the enum keyword when specifying those type names in the harness.

32750: Some GNU __builtin_ia32 intrinsic functions not recognized

VectorCAST version 6.2d now accepts source code containing the GNU built-in functions __builtin_ia32_vec_set_v4hi, __builtin_ia32_pshufw, __builtin_ia32_vec_ext_v8hi, and __builtin_ia32_vec_set_v8hi.

33209: Error Computing Basis Paths occurs for some code with != and == comparisons in conditional statements

VectorCAST was unable to generate basis path test scripts for some code containing != and == comparisons in conditional statements. This problem has been resolved in VectorCAST version 6.2d.

33235: Generated arrays in harness fail to compile because element type lacks default constructor

Previously, array declarations of types that required constructors but lacked default constructors did not compile in the test harness because no initialization was given. This problem has been resolved in VectorCAST version 6.2d.

33326: GNU _Static_assert keyword not recognized

The GNU C _Static_assert keyword is now handled by VectorCAST version 6.2d.

33375: Lambda functions should not get SBF treatment

In prior versions of VectorCAST, before 6.1, the only functions that had SBF capability were those that were directly testable. With VectorCAST version 6.1 or later, if the option "Enable SBF capability for non-testable functions" is enabled, the SBF capability is also available for functions defined in the UUT but not testable. This might include private/protected functions or inline functions. That also means lambda functions get SBF instrumentation added when the option is enabled, but that should not be happening. This problem has been fixed in VectorCAST version 6.2d.

33608: Default argument for const or volatile parameters not used

Const and volatile parameters with default arguments did not get initialized to the default values when no value was specified in the test. This problem has been fixed in VectorCAST version 6.2d. If you have the problem in an environment built with an older version of VectorCAST, you must rebuild the environment to get the new behavior.

33727: Update environment creates invalid search directory path if environment variable is used with relative paths

On Linux, update environment used incorrect paths for search directories containing environment variables if the environment was built with "Use relative paths" selected. This problem has been resolved in VectorCAST version 6.2d.

VectorCAST/Cover:

33162: Instrumented code for some string initializations does not compile when using Instrument Variable Declarations in C

Previously, when the option "Instrument variable declarations in C" was True, C source files with initializations of arrays to string literals, such as: char sample[] = "sample"; received coverage instrumentation that did not compile. This problem has been fixed in VectorCAST version 6.2d.

VectorCAST/Manage:

29445: Improvements to VectorCAST/Manage Monitored Environments

VectorCAST version 6.2d implements several improvements for users with Monitored environments in Manage projects.

1. Monitored environments are just links to the environments in their original location. * Manage no longer maintains any files in the project directory until the environment is migrated. Therefore, if a monitored environment is opened, changed, and closed, the Diff dialog no longer appears. * A Monitored environment can no longer be in two different contexts until it is Migrated. Therefore, you cannot drag a Monitored environment into another group or testsuite. * You can no longer Clean a Monitored environment that was imported as an existing environment, as that would delete the original environment. There would be no way to build it after cleaning. * You can still Clean a Monitored environment that was imported from its regression scripts, because it can be built by simply running the regression scripts. Using the Build command runs the regression scripts or rebuilds the environment if it is already built. 2. If a Monitored environment is changed outside the Manage project, a new "Refresh" right-click menu item enables you to get the current build, execution, and coverage status in the Manage project. 3. If you import environments as regression scripts and keep them as Monitored environments, you can delete the <project> directory and save only the <project>.vcm file and the regression scripts under Source Code Management (SCM). This is possible because in VectorCAST version 6.2d, opening the <project>.vcm file recreates the entire Manage project, assuming it can find the regression scripts in the same locations as they were before. * Opening the <project>.vcm file will not recreate the environments if they have been Migrated. This feature only works if they were still Monitored. * As mentioned above, building environments that were imported as regression scripts runs the regression scripts the first time. Subsequent builds rebuild the environment.

32781: Improve Add Environment processing in the Project Editor Dialog

When adding an environment to VectorCAST/Manage via the "Update Project" dialog, previously Manage would factor the configuration settings and create a new group and testsuite for the newly added environment. In VectorCAST version 6.2d, the environment is simply added to the list. The user must include the new environment in the group and testsuite of their choice.

32889: Add an option to always open a project in Read/Write

Beginning with VectorCAST version 6.2d, when VectorCAST/Manage opens a project, it attempts to obtain the write lock, by default. This new functionality makes it easier to save changes to the project without having to set the Read/Write lock first.

If Manage detects that the project has been write-locked by another user, it displays the dialog in which you can kick off the other user or exit. In organizations where there are multiple users working with the same project, you should set this option to False. This option is located in the Configuration view, Manage node. It is called "Open project in read/write mode." This option is saved in the project's .vcm file as MANAGE_READ_WRITE_MODE True | False. The default setting is True.

VectorCAST/RGW

28036: Requirements Gateway incorrectly displaying requirements with line feeds

In previous versions of VectorCAST, requirements whose title text contained line breaks would be displayed incorrectly in the requirements views in the test case editor and Requirements Gateway window. This problem has been fixed in VectorCAST version 6.2d.

VectorCAST/RSP:

30556: Force using GPR files when creating an Ada Target Environment for PPC GNAT vxWorks AE653

Due to the complexity of building vxWorks executables for the AE653 target, starting with VectorCAST version 6.2d all environments for this target require a GNAT project file as the parent library.

32558: New Target option: Allow override of target run-time restriction in harness build

When VectorCAST generates the Ada test harness, it uses known attributes for the particular target to control the capabilities of the harness. Sometimes, the target RTOS has been modified by the customer to address a limitation by adding functionality that is typically not included on the target. One of these limitations is the support of the "'image" attribute. If the target does not support this attribute, then VectorCAST processing of array indices is limited to positional notation (i.e. 1..N) rather than actual indexes (e.g. an enumeral, or an index that does not start at 1). In VectorCAST version 6.2d, a new option "Target supports 'image" is implemented. When set, this option tells the Ada environment builder that the harness is allowed to use the "'image" attribute when determining array attributes. clicast -lada option TARGET_SUPPORTS_TIC_IMAGE True | False The default value is False.

32907: Support for CCS near and far keywords

Code Composer Studio 28xx and 64xx keywords 'near' and 'far' are now recognized by VectorCAST version 6.2d. Previously the defines near= and far= were used because VectorCAST did not accept the keywords, but this solution is no longer necessary. Because the 55xx chips do not use keywords 'near' and 'far', if you are using Code Composer Studio 55xx and have near or far as identifiers in your source code, you should add --code_composer_version=55xx to your parser flag for existing environments.

33529: Support long float and hexadecimal constants ending in E when the next token is + for the Keil compiler

Previously, VectorCAST was not able to parse source code that contained long float or a hexadecimal constant ending in E followed by the plus sign when using the Keil compiler to build the environment. These problems have been resolved in VectorCAST version 6.2d.

33944: Code Warrior function definitions with omitted type specifiers in the parameters should be accepted by VectorCAST

Previously, CodeWarrior source code containing omitted type specifiers in parameters of function definitions was incorrectly rejected by VectorCAST. This problem has been resolved in VectorCAST version 6.2d.

Release Notes - VectorCAST 6.2c (Build date 03/11/2014)

VectorCAST C,C++,Ada (Core)

32638: Add the ability to easily insert Environment Variables into path type line edit wigets

With VectorCAST version 6.2c, certain paths in the Options dialog now allow you to convert the path to use an environment variable and back again. When a path is selected, the right-click menu shows one of the following two custom menu items: * Convert selection to environment variable: $(ENV_VAR) * Expand variable to: <path> Note that VectorCAST detects if the value of a known environment variable matches a

portion of a path using a string comparison. Some options where you can use this new feature are: VectorCAST/C++: Settings Repository Default Source Directories for Wizard Environment Files Dependency Data Directory Target IO Directory Target Startup Files Run script after instrumentation VectorCAST/Ada: Settings Repository Parent Lib or Directory Containing .ALI files Environment Files "adacast_io" package spec and body Run script after instrumentation VectorCAST/Cover: Settings Repository Include Directories Run script after instrumentation VectorCAST/Manage: Configuration Options, Source Directories

32780: Do not use "Remember last working directory" option when specifying environment on command line

Previously, when a user enabled the VectorCAST GUI option "Remember last working directory" and opened a VectorCAST environment by calling vcastqt.exe from the command line, VectorCAST would search the last used working directory for the environment instead of the current directory. This problem has been fixed in VectorCAST version 6.2c. Calling vcastqt from the command line uses the current directory or that specified by the user on the command line regardless of the "Remember last working directory" GUI option. To open environments in other directories, use relative paths or the full file path to the environment.

VectorCAST/Ada:

33254: Compile Error with constant pointers in private package

Previously, when a stubbed package was a "private" package, and that package contained

constant pointers referenced within the unit, then VectorCAST would incorrectly add references to this package to a harness file, causing compile errors due to visibility issues. This problem has been resolved in VectorCAST version 6.2c.

VectorCAST/C++:

28910: Support for GNU Native compiler v4.7 and 4.8

VectorCAST version 6.2c now supports GNU Native compiler versions 4.7 and 4.8. To select this compiler on the Tools => Options dialog, C/C++ tab, choose Compilers => GNU Native => 4.7 (or 4.8) => C or C++. clicast -lc template GNU_C_47 clicast -lc template GNU_CPP_47 clicast -lc template GNU_C_48 clicast -lc template GNU_CPP_48

30448: Parse error for tuple when using MinGW 4.8

Previously, VectorCAST caused a compile error during environment build in some situations when using delegating constructors with C++11 parse flags. This error is fixed in VectorCAST version 6.2c.

30474: Environment builder crash due to memory misallocation

The environment builder could crash when building multi-unit environments, especially those with extensive use of templates. This issue has been resolved in VectorCAST version 6.2c.

31098: Conditions containing a dereference of a void pointer generates incorrect basis path script syntax

Basis path tests generated for conditions containing a dereference of a void pointer had incorrect script syntax. This problem has been resolved in VectorCAST version 6.2c.

32473: Very large array initializations cause an out of memory error during parsing

Some initializations of large arrays caused VectorCAST to abort parsing with the message "catastrophic error: out of memory". The memory usage has been reduced in VectorCAST version 6.2c, making this error less likely to occur.

32546: VectorCAST incorrectly gives "explicitly instantiated more than once" error for some multiple template instantiations

For some multiple template instantiations, VectorCAST incorrectly gave the parse error "explicitly instantiated more than once". This problem has been resolved in VectorCAST version 6.2c.

32673: Instrumentation fails for source code containing C++11 default constructor syntax

Previously, VectorCAST was not able to instrument source code containing C++11 default constructor syntax. On Linux an "Unknown error" occurs, and on Windows, the GUI crashes with a segmentation fault. This problem has been fixed in VectorCAST version 6.2c.

32998: Parse error for arm-oe-linux-gnueabi-gcc __attribute__ __deprecated__ when it takes an argument

VectorCAST incorrectly gave an "invalid argument to attribute" error for code containing: __attribute__((__deprecated__(<string-literal>))) This problem has been resolved in VectorCAST version 6.2c.

33208: Parse failure with cygwin gcc when UUT #includes Windows.h

Some GNU intrinsic functions were not recognized by the Windows version of VectorCAST. This omission caused problems when source files had a #include of the Windows.h standard header file. The intrinsic functions are now recognized in VectorCAST version 6.2c.

VectorCAST/Cover:

31137: GNU statement expressions containing more than one variable declaration in a condition cause basis path generation failures

Source code with GNU statement expressions in a condition where the statement expression contained more than one variable declaration caused VectorCAST to abort basis path determination. This problem has been resolved in VectorCAST version 6.2c.

VectorCAST/Manage:

32453: Remove IDs from VectorCAST/Manage Project Files (.vcm)

Previously, the Manage project file (.vcm) contained numeric IDs for the Source, Platform, Compiler, Testsuite, and Environment nodes. A combination of the testsuite id and the environment id was used as the name of the build directory for each environment,

but this system sometimes caused merge problems for customers keeping the project file under source code control. In VectorCAST version 6.2c, the project file no longer contains IDs for the nodes. The build directory name is created using the string created by combining the names of the nodes down to each environment, thus guaranteeing a unique ID for each environment.

32508: "Migrate to Work Area" is not available when multiple nodes selected

Previously, "migrate to new work area" was not allowed when the user selected multiple environments. In VectorCAST version 6.2c, the "migrate" menu item is available when several environments are selected.

32765: "Source Code Management" menu item moved to the Project Menu

The menu item "Source Code Management" has been moved from the Tools menu to the Project menu in VectorCAST version 6.2c.

32788: Paths in Manage Wizard now editable and allow environment variables

In VectorCAST version 6.2c, it is possible to edit paths in two places in VectorCAST/Manage: * on the first page of the Wizard, when you specify the paths to directories in which Manage should look for environments * in the Source Directories option in the Manage Configuration window, which Manage uses to find the source files for the environments To edit a path in Manage, double-click the path to put it in "edit mode." The edit box shows an outline around it and there is an edit cursor. When finished editing, press Enter or click the mouse elsewhere to take the path out of edit mode. In addition, it is possible to add environment variables to these paths. To add an environment variable in a path, use the syntax: $(ENV_VAR) For example, suppose you want to specify that the environments in the Manage project use SOURCE_BASE_1 or SOURCE_BASE_2 when building, depending on the value of an environment variable. You define the environment variable SRC to be SOURCE_BASE_1: set SRC=SOURCE_BASE_1 Then, edit the Configuration option "Source Directories," which currently specifies: C:\testing\environments\SOURCE_BASE_1 to use the environment variable: C:\testing\environments\$(SRC) Hence, if you change the value of SRC and build the environments again, they use the new location for source files, as specified by the environment variable.

VectorCAST/RSP:

14110: Enum type followed by long type specifier should be accepted for Diab compiler

VectorCAST version 6.2c accepts enumeral type names followed by the long or short keywords when using the Diab compiler.

32257: Starcore SDMA templates have parser flag that gives error message

Previous versions of VectorCAST set the parser flag for Starcore SDMA compiler templates to include: --code_warrior_version=starcore_sdma but VectorCAST did not support that code_warrior_version. This problem has been fixed in VectorCAST version 6.2c.

32392: New RSP: Microchip MPLAB XC8 Compiler

VectorCAST version 6.2c supports the Microchip MPLAB XC8 compiler. To select this compiler on the Tools => Options dialog, C/C++ tab, Choose Compilers => Microchip MPLAB => XC8 => C. clicast -lc template PIC_MPLAB_XC8

Release Notes - VectorCAST 6.2b (Build date 02/09/2014)

Note: VectorCAST version 6.2b includes all fixes from VectorCAST version 6.1k, which are included below.

VectorCAST C,C++,Ada (Core)

31699: Filter input and expected parameter values in Parameter Tree

In VectorCAST version 6.2b, a new icon has been added to the Test Case Editor, Parameter

Tree that lets you easily filter the tree based on nodes that have values. By default, all nodes are shown; clicking on the filter icon results in nodes that do not have an input or expected value being removed from the tree. The Parameter filter makes it easier to set values when you are only using a sub-set of values for a test case.

31988: Inserting special test cases scrolls to top of test case tree

Previously, when the user inserted any of the following types of special test cases: * Partition Test Cases * Basis Paths Test Cases * MC/DC Test Cases the Test Case Tree would scroll to the top instead of remaining on the selected subprogram. This annoyance has been fixed in VectorCAST version 6.2b.

32036: Issue with CSV preview when removing many rows

Previously, VectorCAST crashed while viewing many rows in the CSV MAP Editor, and then changing the number of rows to view only a few. This problem has been fixed in VectorCAST version 6.2b.

32140: Open execution report after single execution if test fails or has an abnormal termination

By default, after executing a single test, the Coverage Viewer opens for that unit. Beginning with VectorCAST version 6.2b, if a single test is executed and it fails or terminates abnormally, the Execution Report tab opens instead. If the test passes, then the Coverage Viewer opens as usual. If a single compound is executed and passes, then the Coverage Viewer of the unit in the first slot opens. If the first slot is itself a compound, then the coverage Viewer of the first unit in the environment opens. If the compound fails, then the Execution Report tab for the compound opens. NOTE: If you have set the GUI option "After single test execution, show:" to Execution Report, then the Execution Report tab opens whether or not the test passes or fails.

VectorCAST/C++:

10399: Reduced static initialization in the harness

VectorCAST version 6.2b reduces the amount of static initializations in the test harness,

reducing the potential for crashes during test execution before main() is called. A new Builder option is implemented which causes VectorCAST to create initialization objects dynamically, rather than define them at file scope before main() is invoked. The option, labeled "Create initialization objects dynamically," is True by default. Note: This option applies only to initialization objects used for stubbed constructor member initializers. Initialization objects for stubbed global variables are never constructed dynamically. clicast -lc option VCAST_CREATE_INIT_OBJECTS_DYNAMICALLY True | False The default value is True.

28067: SBF for nontestable functions improvements

Previously, the Builder option "Enable SBF capability for non-testable functions" supported SBF for public member functions only. Beginning with VectorCAST version 6.2b, the option VCAST_SBF_NONTESTABLE_FUNCTIONS includes private and protected functions as well. clicast -lc option VCAST_SBF_NONTESTABLE_FUNCTIONS True | False The default value is True.

32059: No indication of input data line exceeding maximum string length

Previously, when the list of values for an Input Parameter created a string longer than the Maximum String Length, the data would be lost with no indication in the report. This could show up as either an incorrect number of iterations during test execution, or just incorrect data. In VectorCAST version 6.2b, if the Max String Length option is exceeded during test execution, the test case terminates abnormally and provides an error message: "Harness exceeds maximum string length". Note: If you modify the value of the Max String Length option, you must recompile the test harness. clicast -lc option VCSAT_MAX_STRING_LENGTH <number of characters allowed in the C-00000n.DAT file for a parameter> clicast -e <ENV> env recompile

32425: Incremental Rebuild with Environment Variables

In VectorCAST version 6.2b, Incremental Rebuild now works when a search directory is specified using an environment variable whose value changed since the last build so that the source files are different.

VectorCAST/Cover:

32271: Coverage arrays initialized fully, with option to initialize using "{ 0 }" syntax

Previously, VectorCAST initialized the coverage data arrays using short notation "{ 0 }", but for some environments, this method resulted in odd behavior while executing the instrumented executable. In VectorCAST version 6.2b, the coverage arrays are initialized fully by default. If your compiler generates a compile error, you can go back to the short notation by adding this #define on the compile command line and recompiling: VCAST_COVER_SHORT_ARRAY_INIT

VectorCAST/Manage:

32512: Multiple messages from Manage when license is about to expire

Previously, while creating a Manage environment with a VectorCAST license that was about to expire, VectorCAST displayed a pop-up warning for each environment imported to the Manage project. In VectorCAST version 6.2b, VectorCAST displays the pop-up warning once per instance of the Manage executable.

VectorCAST/RSP:

24066: VCAST_CCS_INSTALL_DIR environment variable not honored

By default, when you select one of the TI Code Composer compilers, the option "CCS Installation Directory" is set to the appropriate directory per the compiler. The environment variable VCAST_CCS_INSTALL_DIR is set to that directory for use in other options on the Code Composer sub-tab.

However, beginning with VectorCAST version 6.2b, you can set the value of the environment variable VCAST_CCS_INSTALL_DIR to an alternative path before starting VectorCAST, if desired, and the Code Composer compiler templates will honor the value of the environment variable.

32402: __packed Keil ARM MDK keyword not handled correctly in some unit test environments

For some source code containing the Keil ARM __packed qualifier, VectorCAST caused a compile error while compiling the test harness. This problem has been resolved in VectorCAST version 6.2b.

Release Notes - VectorCAST 6.1k (Build date 02/02/2014)

VectorCAST C,C++,Ada (Core)

29105: New Report option: "Show Notes/Requirements in Full Report"

A new Report option is available in VectorCAST version 6.1k. By default, the Notes/Requirements section is included in the Full report. When cleared, the new option "Show notes/requirements in the Full Report" excludes the Notes/Requirements in the Full report. (The section is always included in the Test Case Data report.) clicast -lc | -lada option SHOW_NOTES_IN_FULL_REPORT TRUE | FALSE The default value is TRUE.

VectorCAST/Ada:

30728: Boolean expressions that start with a parenthesized expression do not always get instrumented correctly

Previously, if an assignment or return statement started with a parenthesized boolean expression but had more operators afterwards, the instrumenter would fail to indicate coverage

on the remaining operations. For example, in "A := ( B or C ) and D;" the "and D" part of the instrumentation was ignored. This problem has been resolved in VectorCAST 6.1k.

32249: VectorCAST getting constraint error due to uninitialized harness variable

In some circumstances, an uninitialized local variable in the test harness could have been accessed before it was set by normal processing. In rare cases, this caused an exception during harness cleanup, resulting in a test case failure. This problem has been resolved in VectorCAST version 6.1k.

32264: Max MCDC check in I/O file needs to be protected by static memory check

Some target-specific versions of the VectorCAST I/O wrapper package rely on static memory management. If these versions are used without the "Use Static Memory" coverage option set, coverage data may not be gathered correctly due to certain constants being set to the wrong values. This problem has been fixed in VectorCAST version 6.1k.

32298: Pragma Import with access parameter causes compile error

Previously, VectorCAST was unable to build an Ada environment when the source code included a #pragma import and an ACCESS parameter, causing a compile error. This problem has been fixed in VectorCAST version 6.1k.

VectorCAST/C++:

27384: New Report options: "Compiler version command" and "Linker version command"

VectorCAST version 6.1k adds two new Report options useful for adding the compiler and linker version information to the Full Report. When the option "Show the Compiler/Linker settings in the Full Report" is set, the Full report shows the compiler and linker commands. To add their versions to the report, set the value of the new options to the commands used to show the version. In some cases, the compiler template sets the values of these options.

For example, the MinGW compiler template sets the option Compiler version command to "gcc --version" and the Linker version command to "ld --version" (without the quotes). clicast -lc option VCAST_COMPILER_TEMPLATE_SECTION TRUE clicast -lc option C_COMPILER_VERSION_CMD <compiler command to show version> clicast -lc option C_LINKER_VERSION_CMD <linker command to show version>

29138: Speed improvements in building environments with lots of stub user code

Previously, when building an environment with stub user code, the stub user code was parsed once for every stub in the environment, which is very slow when the environment contains many stubs. In VectorCAST 6.1k, VectorCAST now loads the stub user code into a searchable data structure, so the data only needs to be parsed once per build.

29913: C++ 11 strongly-typed enumerations cause environment build failure

In previous versions of VectorCAST, environment build could fail with a crash or an internal error if a unit contained C++ 11 strongly-typed enums. This problem has been fixed in VectorCAST version 6.1k.

30288: Abstract class parameters for basis-path test causing segmentation fault since no constructor is chosen

Basis path tests for functions with parameters that are pointers to abstract classes have been improved. Previously, if the abstract class had a non-abstract subclass, that constructor only went in the test if the class definition was in the .cpp file instead of the header file. In VectorCAST version 6.1k, the constructor always appears. Also, if VCAST_AUTO_CONCRETE_CLASS_GENERATION is true and there is no non-abstract subclass, the constructor for the vcast_concrete_ class is chosen.

30577: Macros defined in user globals user code not visible in parameter user code when Visual C++ whitebox in effect

In previous versions, a macro defined in Environment User Code's User Globals section was not visible to testcase or parameter user code when using a Visual Studio compiler with

Whitebox on. The problem caused a compile error when executing the test case. This problem has been resolved in VectorCAST version 6.1k.

30600: Harness code for some stubbed template specializations does not compile

Previously, the library stub for the GNU function std::basic_istream<char, std::char_traits<char> >& std::getline(std::basic_istream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char) did not compile. This problem has been resolved in VectorCAST version 6.1k.

30695: Concrete class generation incorrectly uses undefined constructors

When the option "Automatically generate concrete classes" is enabled, VectorCAST creates concrete subclasses of abstract classes used in a UUT. Each generated subclass has a stubbed constructor generated for each of the accessible constructors in the abstract base class, and the stub invokes the corresponding base constructor to initialize the base. In previous versions of VectorCAST, a stubbed constructor would be generated even if the corresponding base constructor was undefined and could not be stubbed due to being template-based. This would lead to a link error in the harness. In version 6.1k, VectorCAST no longer creates concrete constructors corresponding to such undefined template-based abstract base constructors.

31482: Environment builder fails when array is sized by enum from directory without type support

Previously, VectorCAST would fail to build an environment when an array's size was specified by an enumerated type that was defined in a header that was in a Library Include directory (as opposed to Type-Handled directories or Search directories). This problem has been fixed in VectorCAST version 6.1k.

31530: Generated const_cast expression does not compile

VectorCAST sometimes needs to generate cast expressions in the harness. In situations where the casted-to type required global scope qualification, a portion of a C++-style cast could be mistaken for a C++ digraph, resulting in a syntax error. This problem has been fixed in

VectorCAST version 6.1k by always inserting spaces around the name of the casted-to type.

31585: Compile error while creating environment for source with default parameter which is a class with a non-public copy constructor

When VectorCAST generates a test harness, it creates global variables to hold values to be passed as parameters to functions under test. When a parameter has a default argument, VectorCAST tries to initialize the corresponding harness global variable with the same value. In previous versions of VectorCAST, if a parameter's default argument used an inaccessible copy constructor, the generated initializer would fail to compile. VectorCAST version 6.1k fixes this problem by no longer generating the initializer in this situation.

31588: Ptr Display Mode for strings not saved in CSV map script

When generating a CSV map, and setting the display mode of a string to "ptr" mode, the CSV map allows you to set individual elements within the character array. Previously, if you saved a script for that map and loaded it into an environment, only one of the array elements was saved. This problem has been fixed in VectorCAST version 6.1k.

31693: Compile error when type nested within template-based type has same name as member

Previously, a compile error occurred when building an environment with a type nested within a template-based type having the same name as a member. This problem has been fixed in VectorCAST version 6.1k.

31713: Harness compile error when code contains reference to typedef of array

Some environments built from source code containing references to typedefs of arrays did not compile properly. This problem has been resolved in VectorCAST version 6.1k.

32022: Test harness does not compile when source code contains AltiVec "vector" declarations at global scope

Test environments with source code containing AltiVec "vector" declarations at the global scope caused the test harness compilation to fail. This issue has been resolved in VectorCAST 6.1k.

32191: Scope omitted from enumeral name for some array sizes in parameters of stubbed functions

Stubs for some functions with parameters having enumeral value array sizes used the enumeral name without its scope, causing a compile error. This problem has been resolved in VectorCAST version 6.1k.

VectorCAST/Cover:

30075: Catch statements inside vcast_dont_instrument comments should not receive branch instrumentation

Catch statements inside /*vcast_dont_instrument*/ comments when the try keyword was not inside /*vcast_dont_instrument*/ comments incorrectly received branch and MC/DC instrumentation. This problem has been resolved in VectorCAST version 6.1k.

30759: "Instrument variable declarations in C" now only instruments variable declarations that are initialized

VectorCAST version 6.1k changes how the option "Instrument variable declarations in C" behaves. The option can now be used with all C compilers, including those that do not permit mixing executable statements with variable declarations. However, setting the option to True causes VectorCAST to instrument only those variable declarations that are initialized; those that are not initialized are left uncoverable. Therefore, if you are using this option, you may see a reduction in the total number of coverable statements. "Instrument variable declarations in C" still instruments all variable declarations when the legacy instrumenter is used. For C++ units, all declarations are instrumented regardless of the option's setting. clicast -lc option VCAST_COVERAGE_FOR_DECLARATIONS True | False The default value is True (beginning with VectorCAST version 6.1k).

32033: Cover regression script requires too many licenses

VectorCAST/Cover regression scripts sometimes failed to execute due to a licensing failure even though the correct license was available. This error has been resolved in VectorCAST version 6.1k.

32420: Uninstrumenting a file fails when "instrument in place" is off but original file is read-only

VectorCAST was unable to uninstrument files which had read-only sources despite the "instrument in place" option not being used. This problem has been resolved in VectorCAST version 6.1k.

32472: Coverage instrumentation crashes for "using namespace" statements in function scope or decltype in return types

Coverage instrumentation crashed if source code contained a "using namespace" declaration in function scope or if more than one function with the same name had decltype in the return type. These problems have been resolved in VectorCAST version 6.1k.

VectorCAST/Manage:

25442: When creating a SQL database, the database file needs to inherit permissions of surrounding files

Previously, certain files used by VectorCAST processes did not honor the umask file permission settings of the environment directory. This would cause problems accessing the Manage projects in shared Linux and Solaris environments. This problem has been resolved in VectorCAST version 6.1k.

32192: Ada regression scripts in Vectorcast/Manage for Linux

Previously, regression scripts for Ada unit test environments were not imported correctly into a Manage project on Linux. The compiler information was not present. This problem has been fixed in VectorCAST version 6.1k.

32664: VC/Manage does not import Startup Files Properly

Previously, the VectorCAST/Manage importer would lose the value of the option VCAST_STARTUP_FILE, causing a compile error when trying to build or execute the environment. This problem has been fixed in VectorCAST version 6.1k.

VectorCAST/RSP:

31479: Default settings for Green Hills compilers should not use friend injection

Environments for some Green Hills source code with friend declarations did not compile unless the parser flag --no_friend_injection was used. Beginning with VectorCAST version 6.1k, VectorCAST automatically uses the --no_friend_injection setting for all Green Hills compiler. Note: If your existing Green Hills compiler options use --friend_injection, you will now also have to add --friend_injection to your parser flags.

31876: Handle unaligned operations for Metaware Arc 8.6.0

VectorCAST version 6.1k supports unaligned operations for the Metaware Arc compiler version 8.6.0. By default, all pointers are assumed to be aligned. If your source code uses the #pragma pack directive for structs, you may need to set a new environment variable, VCAST_CREATE_UNALIGNED_HARNESS to 1. When the environment variable is set, the Metaware type qualifier _Unaligned is used in the harness. This prevents compile errors when #pragma pack is used in source code for some versions of the compiler.

32047: Green Hills __INTADDR__ incorrectly converted to __offsetof__

The __INTADDR__ macro was incorrectly converted to __offsetof__ in VectorCAST test harnessed for the Green Hills, Code Composer, Fujitsu, and IAR compilers. This problem has been resolved in VectorCAST version 6.1k.

32263: Input data file not always getting compiled for certain compilers

When the test harness uses compiled-in data, the source file containing the input data was compiled incorrectly for certain compiler/target combinations in earlier versions of VectorCAST. This problem has been resolved in VectorCAST version 6.1k.

32417: New Target option: "'adacast_io' package spec"

To control file input/output for various Ada RSPs, VectorCAST supplies an Ada package to centralize all I/O functions. The specification for this package is selected based on the specific target chosen. In some instances, the user, under direction of VectorCAST support personnel,

may need to select a different package specification. A new option is implemented in VectorCAST version 6.1k to allow the specification of the path to the alternative I/O package specification. Located on the Target tab of the Options dialog, the option is labeled "'adacast_io' package spec" If the option is blank, the default file is used. clicast -lada option ADACAST_IO_SPEC <path to alternative I/O package spec> The default value is blank, meaning use the appropriate file from the VectorCAST installation "IO" directory.

Release Notes - VectorCAST 6.2a

VectorCAST C,C++,Ada (Core)

15786: Reorganization of the Test Case Editor Window

The Test Case Editor has been re-organized and enhanced in VectorCAST version 6.2. * New layout * Test Status button for each test case * Coverage Viewer button New Layout for Test Case Editor The window is split into two sections. The most commonly used tabs, Parameter Tree, Control Flow, and Execution Report, are in the top portion. The less commonly used sections are in the bottom portion, and those sections can be made to appear and disappear by using the buttons at the bottom of the window. A splitter divides the upper and lower parts, and the splitter location is remembered when the bottom section is hidden. Test Status Button and Report When a test case is open in the Test Case Editor, there is a new button that displays a small report with the test status, including Pass / Fail status, Execution Metrics, and the number of lines covered by this test case across all units in the environment. Additionally, clicking on the cells in the test status opens the associated tab: either the Execution Report tab or the Control Flow tab. The Test Status button is shaded blue when the test case has not been executed. After execution, the Test Status button is shaded green if passing or red if failing. Additionally, the

Parameter Tree, Control Flow, and Execution Report tabs show a green checkmark if passing or a red X if failing, and a handy tooltip with more information. Coverage Viewer Button The main toolbar now includes a button to open the Coverage Viewer. It is sensitive to the testcase(s), subprogram(s), or unit(s) selected in the Test Case Tree. The tooltip on the Coverage Viewer button shows which units will open when it is clicked. The Coverage button also has a mini menu to its right which offers a list of UUTs and non-stubbed units that have custom initialized coverage to choose from. Selecting s unit from this mini menu opens the Coverage Viewer for that unit.

27307: Ability to use Rational Team Concert in a VectorCAST workflow

VectorCAST version 6.2a has implemented an integration with Rational Team Concert for defect tracking. This new integration is supported via the Custom Tools menu, and provides the ability to create a new RTC bug with context information from the VectorCAST Test Environment automatically included. The integration supports sending the following data: Test Environment Name, Unit Under Test Name, and Test Case Name.

29041: New work flow for test execution

When a single test case is executed, the Coverage Viewer is opened automatically by default. If code coverage is not initialized, the Execution Report tab is brought forward. Additionally, if you prefer to always see the Execution Report tab after executing a test, use the GUI option "After single test execution show:".

Enhancement to Coverage Viewer

29040: Coverage viewer improvements

The coverage viewer now contains a narrow column on the left side that is colored to indicate the currently selected test case. When you select a test case in the Test Case Tree, this column is colored to indicate the statements "touched" by that test case.

VectorCAST/C++:

27303: Incremental Rebuild with Selected Coverage Removal

If you make changes to source code within function bodies that do not introduce added dependencies, VectorCAST version 6.2a gives you the ability to use a new "Incremental Rebuild" feature to incorporate those changes into the test harness without having to fully rebuild the environment. Description: Using the checksum of the units under test, VectorCAST's Incremental Rebuild detects if any modifications have occurred. VectorCAST compiles and links only the modified units into the test harness. The changes are available to be used during test case execution, without having to rebuild the entire environment. Note that the Parameter Tree does not reflect changes to the source code after an Incremental Rebuild; only the test harness is affected. To see changes such as renaming an enumerated value, changing a parameter name, etc. reflected in the Parameter Tree, you must fully rebuild the environment. If a source code modification adds a new dependency, such as a new function reference, extern reference, or adding a static class member when Incremental Rebuild is initiated, the user is notified that the change is too large to be rebuilt incrementally and the test harness changes are rolled back to the previous state. A report named the Incremental Rebuild Report is displayed listing the new dependencies that are causing the problem.] Execution and Coverage Status Selectively Removed If the environment has coverage instrumented, the testcases that call the modified function (and those whose non-stubbed subprograms call the modified function) are considered "affected," and their coverage data and execution data are removed from the environment. Unaffected testcases retain their execution and coverage data. If the environment does not have coverage instrumented, then all coverage data and execution data is removed. A new clicast-only command, Execute Incremental, is available to execute tests have not been executed, or have had their execution status removed by the Incremental Rebuild. VectorCAST/Manage: In VectorCAST/Manage, Incremental Rebuild and the new Incremental Execute are available in the right-click context menu for C/C++ environments in the Manage project. The Manage command line has a new flag, --incremental, which causes the operation to be performed incrementally. You can use the --incremental flag after --build, --execute, or --build-execute. Availability: Incremental Rebuild is not available for VectorCAST/Ada environments nor VectorCAST/Cover environments. Limitations: This feature is not supported in Object File Testing mode nor Library Interface Testing mode. Changes to the Unit Compilation Arguments and Unit Link Options are not detected during

Incremental Rebuild. clicast -e <env> ENvironment Incremental Rebuild clicast -e <env> ENvironment EXtract Incremental_rebuild_log [<output file>] clicast -e <env> EXecute Incremental manage -p <project> <operation such as --build, --execute, or --build-execute> --incremental

VectorCAST/Requirements Gateway:

27412: Polarion Integration

VectorCAST version 6.2a now supports Polarion as a subsystem in the Requirements Gateway. This integration allows users to import requirements from Polarion using VectorCAST/RGW for mapping to test cases in VectorCAST/C++ and VectorCAST/Ada. In addition, requirements can be mapped to test results in VectorCAST/Cover. Pass/fail results, along with environment name and test case name, can be pushed back into Polarion for full traceability.