Release Notes - VectorCAST: 6.4x Known Issues: 61870: Exception not detected as an Expected Value with "Fail if no expected values" or "Fail empty testcases" set to True When using either of the Execution options "Fail empty testcases" or "Fail if no expected values" set to True, VectorCAST is incorrectly marking tests with Exceptions as an Expected Value as failed, when they should be marked as passing. The clicast options are: - VCAST_EMPTY_TESTCASE_FAIL - VCAST_TESTCASE_FAIL_ON_NO_EXPECTED
VectorCAST/C,C++, Ada (Core) 64712: Debug log empty unless viewed via "View Debug Log" button in Troubleshooting dialog Previously, when executing tests in the VectorCAST GUI using the Debug logging feature (accessed from Help => Troubleshooting => Diagnostics), the debug.log.gui file would be empty if the user viewed it without going back to the Debug dialog and clicking the "View Debug Log" button. In VectorCAST version 6.4x, the log can be viewed from a shell, via File => Open, or via the Troubleshooting dialog, and it contains the correct information.
VectorCAST/Ada: 63037: Renaming Ada environment made from 'gpr' file causes compile errors Previously, when working with a VectorCAST/Ada environment that was built with a GNAT .gpr file, selecting VectorCAST's File => Rename Environment menu item would cause failures when later compiling the harness (for user code or instrumentation). This problem has been fixed in VectorCAST version 6.4x. 64608: Stub-by-function for Ada does not work in subprograms that are 'separate' Previously, if a subprogram within a Unit Under Test was declared as 'separate' and the environment was built using Stub-By-Function, the 'separate' subprograms would appear as stub-able, but only the real subprogram was ever called. This problem has been fixed in
VectorCAST version 6.4x. 64699: Coverage report not showing correct unit information for generic instances Previously, when viewing a report containing coverage (Test Case Management, Aggregate Coverage, Metrics report), and a test case was selected in a UUT that is a generic instantiation, the report would not show any coverage (because the coverage is associated with the generic package, not the instantiation). This problem has been fixed in VectorCAST version 6.4x. 66096: Compiler complains about "ambiguous expression" when adding user code Previously, if the source under test did a "use ;" for a package that defined a subtype of boolean, then the compiler could generate an error for VectorCAST's test harness code that was included when Parameter User Code was added for a testcase. This problem has been resolved in VectorCAST version 6.4x. 66187: Very long lines possible in Ada harness for enumerated types Previously, when the fully qualified typemark for an enumerated type is very long, VectorCAST generated harness code with the typemark appearing on the same line, causing a source line with greater than 200 characters. For some compilers, this line length causes a compilation error. This problem has been fixed in VectorCAST version 6.4x.
VectorCAST/Analytics: 54513: Error message for errors on server startup Previously, the the Analytics server (vcdash) did not provide output when exiting due to Port or IP address conflicts. This problem has been fixed in VectorCAST version 6.4x. 64281: Ctrl+C no longer kills the Analytics server (vcdash) on Windows Previously, in some cases, when run from the Windows command prompt, the Analytics server (vcdash) would not shut down when sent CTRL+C. This problem has been fixed in VectorCAST version 6.4x, though it may take a few seconds for the server to shut down. On Windows, you can force the server to shut down immediately with CTRL+BREAK, but this method may leave some temporary files on your filesystem.
VectorCAST/C++:
61991: Update to character parameter data entry (GUI and scripting) Previously, setting String Display mode to Pointer and its Character Display mode to Character was incorrectly initializing its base type, resulting in character values being lost after the test case was saved or imported from test script. This problem has been resolved in VectorCAST version 6.4x. Users can expect the following behavior when entering values for a character parameter in the Parameter Tree: - If the entry is an alphabetic or special character, the parameter is switched to Character mode and the entry is displayed as a character. - If the entry is a hex or octal number, the parameter is switched to numeric mode and the appropriate base, and the entry is displayed in that base. - If the entry is a negative number, the parameter is switched to numeric mode and displayed as decimal. - If the entries for Input and Expected values are entered using different methods (mode and base), the parameter is switched to the second method used, causing both Input and Expected values to be displayed in the same mode. 62063: Incremental rebuild treats undeclared functions as new dependencies In previous versions of VectorCAST, calls to undeclared functions would always be treated as new dependencies when evaluating whether incremental rebuilds were possible. This problem is fixed in VectorCAST version 6.4x by ignoring undeclared functions when performing incremental rebuilds. 63226: Allow additional stubs in library test mode Beginning in VectorCAST version 6.4x, the ENVIRO.ADDITIONAL_STUB environment script command may now be used to specify functions which should be stubbed in library interface testing mode. The format is: ENVIRO.ADDITIONAL_STUB:
63274: Support Visual Studio 2017 VectorCAST version 6.4x adds support for Visual Studio 2017. To use Microsoft Visual Studio 2017, from the Windows Start menu, select All Programs
=> VectorCAST => VectorCAST for Visual Studio => VectorCAST for Visual Studio 2017. clicast -lc template VISUAL_CPP_2017 clicast -lc template VISUAL_CPP_CPP_2017
64105: Link error because array stub is a redeclaration not a definition when type is a typedefed unconstrained array Previously, VectorCAST re-declared undefined externs which were typedefed unconstrained arrays instead of defining them. For example, typedef unsigned char TYPEDEFED_UNC_ARRAY[]; extern TYPEDEFED_UNC_ARRAY foo;
would result in an environment that did not link. This problem has been resolved in VectorCAST version 6.4x. To get the new behavior, you must rebuild any affected environments. 64112: Using environment variable in testable, type-handled, or library include directory causes extra error message in parse error Previously, use of an environment variable when specifying a testable, type-handled, or library include directory could result in a message stating that the environment variable was not found (despite the environment variable being set) during environment build on the Linux and Solaris platforms if the source code did not parse for other reasons. This problem has been resolved in VectorCAST version 6.4x. 64467: Instrumented files appending cover I/O not touched when vcast_c_options. h changes from GUI starting with version 6.4s VectorCAST versions 6.4s and later did not update the modification time of instrumented files appending cover I/O when other files were instrumented from the GUI, even if the files were inside the environment directory. This problem has been resolved in VectorCAST version 6.4x. 64516: Concrete class stub incorrectly uses forward declared struct or union in subsequent units Previously, when the configuration option VCAST_AUTO_CONCRETE_CLASS_GENERATION was set to true, the environment that was generated for source code with an abstract struct definition in one unit and a forward declaration of that struct in a subsequent unit where a stub for a function taking a reference to the struct was needed did not compile.
This problem has been resolved in VectorCAST version 6.4x. To get the new behavior, you must rebuild any affected environments. 64539: Incorrect generation of object file testing interface file when global array has a name in parentheses In previous versions of VectorCAST, when using Object File Testing mode, the environment did not compile if a source file contained a global array variable with the array name in parentheses, such as: int (array_name)[2];
This problem has been resolved in VectorCAST version 6.4x. 65149: Configure stubs user code not automatically compiled into instrumented harness when coverage enabled with version 6.4s and later VectorCAST versions 6.4s and later did not automatically compile configure stubs user code into the instrumented harness. This problem has been resolved in VectorCAST version 6.4x. 65391: Parse error when designated initializer used for parameter of reference type Previously, VectorCAST incorrectly gave the error "no instance of overloaded function matches the argument list" when source code contained a designated initializer for a parameter of reference type. For example: struct S { int i, j; }; void f(S&&) {} int main() { f({.i = 1, .j = 2}); // Previously an error. Now okay. }
This problem has been resolved in VectorCAST version 6.4x. 65481: Coverage instrumentation inserted in invalid location if preceded by basis path analysis Previously, when doing basis path analysis and then instrumenting a C source file with the configuration option VCAST_COVERAGE_FOR_DECLARATIONS set to true, VectorCAST would sometimes insert a right parenthesis in an invalid location if the first variable initialization in a function contained an enumeral. This problem has been resolved in VectorCAST version 6.4x.
65540: Test harness should use ::delete when calling testable destructors Previously, the test harness might not compile when building an environment for source code containing a class that defined an overloaded delete operator. This problem has been resolved in VectorCAST version 6.4x by using ::delete to avoid use of the overloaded delete.
VectorCAST/C++ and VectorCAST/Cover: 66044: CBA adds coverage to unchecked lines when saving changes if blockcoverage is enabled Previously, when using the option "Instrument blocks for statement coverage" with Statement+MC/DC coverage, after adding some Coverage By Analysis in the Editor, the Editor would incorrectly mark additional lines with CBA checkmarks upon saving. This problem has been fixed in VectorCAST version 6.4x.
VectorCAST/Cover: 62514: Invalid Branch instrumentation inserted for expression of overloaded operator && Previously, VectorCAST generated instrumentation code that did not compile when C++ source code contained any of the following functions (if those functions returned class values): operator operator operator operator operator operator operator operator operator
&& || ! == != > >= < <=
The problem occurred because VectorCAST treated the functions the same as comparison operators. In VectorCAST version 6.4x, VectorCAST treats the functions as if they were the same as comparison operators if the functions return bool or integer values, and if the new configuration option VCAST_COVER_OVERLOADED_LOGICAL_OPERATORS is set to True. The option is set using clicast only.
When the option is False, VectorCAST does not treat the functions as comparison operators, and therefore does not consider calls to those functions to be branches. clicast -lc option VCAST_COVER_OVERLOADED_LOGICAL_OPERATORS True | False
The default value is True. 64148: Error seen when compiling coupling-instrumented source file in certain case Previously, coupling instrumentation of C source files placed executable statements before variable declarations, causing compile errors for some compilers. This problem has been resolved in VectorCAST version 6.4x. You must re-create the Cover environment to get the new behavior. 64297: Coverage instrumentation added to enum definition Previously, VectorCAST added Branch instrumentation inside enum definitions containing the "?" operator if the enum value was used later in a branch statement. The instrumentation inside the enum definition did not compile. Also, Basis Path and MC/DC Test reports showed incorrect branches inside the enum definition. These problems have been resolved in VectorCAST version 6.4x. 65889: Branch coverage incorrectly handles nested switch statements in 6.4r and later when CASE_FALLTHROUGH_BRANCH_COVERAGE is false When CASE_FALLTHROUGH_BRANCH_COVERAGE is set to False and Branch coverage is initialized, case statements in a switch statement following a nested switch statement reached without fallthrough were not recorded as covered if the nested switch was entered. This problem has been resolved in VectorCAST version 6.4x.
VectorCAST/Manage: 64633: Default options that are explicitly set were ignored when migrating Previously, when a monitored environment was built with a default value for a configuration option (such as C_COMPILER_CMD), the option would not be imported during migration if the same option was set with a custom value at a higher node in the Manage Project Tree. VectorCAST version 6.4x correctly uses a default value for an option that has been explicitly set prior to migrating an environment. 64759: CBA is not retained on Incremental Rebuild for Unit Monitored envs Previously, a monitored Unit test environment would lose CBA coverage after an Incremental Rebuild. This problem has been fixed in VectorCAST version 6.4x.
VectorCAST/RSP: 34658: RSP for Green Hills MIPS INTEGRITY 178B for Ada VectorCAST/Ada version 6.4x now supports the Green Hills MIPS Integrity 178B target. To use this licensed RSP, select File => New => Ada Target Environment => MIPS Green Hills Integrity. clicast -lada -x MIPS_GH_INTEGRITY env build
63495: mwccs12lisa requires support for binary constants Previously, when using codewarrior versions hc12 and hcs08, and code containing binary constants, it would cause a parse failure and generate an error. This is resolved in VectorCAST version 6.4x. 63943: Static memory with Ada configurable I/O does not work correctly with MC/ DC coverage Previously, when using the Ada configurable I/O method of target execution with static memory management and MC/DC coverage, the harness could crash with a memory violation when a subcondition was hit multiple times. This issue has been fixed in VectorCAST version 6.4x. 64631: Intex failure should halt test execution Previously, VectorCAST would not always detect when a Green Hills intex command failed. This could cause VectorCAST to execute the wrong test harness. This problem is fixed in VectorCAST version 6.4x. 64882: EDG parser reports "error: struct or union is too large" with keil compiler Previously, VectorCAST incorrectly reported "error: struct or union is too large" for some large array fields when the Keil compiler was selected. This problem has been resolved in VectorCAST version 6.4x.
Release Notes - VectorCAST: 6.4w VectorCAST/C,C++, Ada (Core) 63992: Open html help locks current directory preventing rebuild
Previously, when the user tried to rebuild an environment while an HTML or PDF user guide was open, an error occurred saying that VectorCAST could not backup the directory. This problem has been fixed in VectorCAST version 6.4w. 64204: Compound test cases always fail when "Fail if no expected values" option is set Previously, when the option "Fail if no expected values" was True, a Compound testcase would fail when the user initiated test execution (without actually executing) because a Compound testcase has no expected values itself, only its slots do. In VectorCAST version 6.4w, executing a Compound testcase honors the option correctly by failing after execution if no Expected values are present in any slot. 65019: Ignore invalid tu position in coverage database Beginning in VectorCAST version 6.4u, an issue in the coverage database caused environment re_build to hang. This issue has been fixed in VectorCAST version 6.4w.
VectorCAST/Ada: 63548: Harness build error when nested instantiation textually matches child packagename When a nested generic instantiation inside a child package uses a package name that contains part of an ancestor parent name, VectorCAST can incorrectly assume types are visible when they are not, causing harness compilation errors. This has been resolved in VectorCAST version 6.4w. 64110: Typemark defined solely in the private section of a parent unit can cause harness compilation errors Previously, when a tagged type was defined solely in the private section of a unit, and a child of that unit referenced a typemark that included a type derived from the tagged type, when building a multiunit whitebox environment VectorCAST would incorrectly try to call a procedure in the parent unit from the child unit that was not visible. This has been resolved in VectorCAST version 6.4w. 64635: Preprocess GNAT files not working correctly when object directory is different than source directory Previously, when building an Ada environment with GNAT, and the option 'Preprocess GNAT source files' flag is set, if the GPR file specified an Object directory that was
different than the Source files location, the preprocess would fail and VectorCAST would use the un-preprocessed file. This problem has been fixed in VectorCAST version 6.4w. clicast -lada VCAST_PREPROCESS_ADA_FILES True | False
The default value is False.
VectorCAST/Analytics: 64416: Analytics file viewer, long file paths are truncated at the start of path Previously, long file paths would not display properly in the Analytics file viewer. In VectorCAST version 6.4w, if the file path is too long to display the complete path, it is truncated at the start of the path with ellipsis.
VectorCAST/C++: 56040: std::list and std::string not detected when using g++ 5+ C++11 Some versions of g++ first define std::list and std::string as std::__cxx11::list and std::__cxx11::string respectively when C++11 is in use. Previous versions of VectorCAST would fail to detect these as the standard list and string types. This problem is fixed in VectorCAST version 6.4w. 57005: New option VCAST_TEST_UNIT_USER_CODE to control whether user code functions are testable "Consider unit user code functions testable" is a new option available in VectorCAST version 6.4w to control whether functions defined in unit appendix and unit prefix user code show as testable in the test case tree. Note that regardless of the value of this option, such functions do not get instrumented for coverage or SBF stubbing. clicast -lc option VCAST_TEST_UNIT_USER_CODE TRUE|FALSE
62931: Function under test taking a non-copyable parameter within a std container is not suppressed Previously, the test harness for functions with parameters that are std containers of noncopyable types did not compile. This problem has been resolved in VectorCAST version 6.4w. To get the new behavior, you must rebuild any affected environments. 63204: Test Execution issues using % char (\045) as input to std::string Previously, VectorCAST crashed when a string was input with \045 as the last character.
This problem is fixed in VectorCAST version 6.4w. 63225: Additional Stubs take precedence over Suppressed stubs The VectorCAST environment wizard allows specifying Additional Stubs and Suppressed Stubs. In previous versions of VectorCAST, if a function matched an entry in both lists, the suppression would take precedence. In VectorCAST version 6.4w, the addition takes precedence. 63788: TI shared across units even though field is a type where the set of subclasses differs across units Previously, when the environment variable VCAST_TI_NO_COMMON_TYPE_SUPPORT was not set, VectorCAST used a type handling function from one unit in other units, despite the subclasses for the types differing. The call to the incorrect function could result in the wrong subclass being selected during test execution. This problem has been resolved in VectorCAST version 6.4w. To get the new behavior, you must rebuild any affected environments. 63839: Probe point can't be applied to overloaded function Previously, VectorCAST allowed probe points to be specified within overloaded functions, but would not actually insert the probe point code into the overloaded function code. This problem has been fixed in VectorCAST version 6.4w. 64029: structs without member functions do not show inherited functions in test tree Previously, inherited member functions of structs without their own member functions were not testable. This problem has been resolved in VectorCAST version 6.4w. To get the new behavior, you must rebuild any affected environments. 64224: Functions with std::unique_ptr arguments not testable Functions with std::unique_ptr arguments were not testable. This problem has been resolved in VectorCAST version 6.4w. To get the new behavior, you must rebuild any affected environments.
VectorCAST/C++ and VectorCAST/Cover: 62362: Clicast interface to Probe Points database via serial numbers (IDs)
VectorCAST version 6.4w supports the ability to identify individual probe points by a serial number or ID. This functionality is implemented via three new CLICAST commands to enable, disable, or remove a specific probe point. Upon creation of a probe point in the GUI or via CLICAST, the probe point is assigned a serial number or ID. The first probe point is assigned the number 1 by default, unless the probe point was added via CLICAST using the text: PROBE_ID:
positioned after the definition of the probe point in the .env script or probe point file. If two probe points are given the same ID, the second one encountered is given the next available ID number that is unique. When a probe point is deleted or dropped due to changes in the source code, its ID is deleted also, and can be re-used for another probe point. The IDs are displayed in the Probe Point Listing report (GUI) and in the XML report (CLICAST). To add a probe point: clicast -e TOols PRobe_point ADD_file clicast -e Cover PROBE_point ADD_file
New commands to enable, disable, or remove a specific probe point: clicast -e TOols PRobe_point DISable_id clicast -e TOols PRobe_point ENAble_id clicast -e TOols PRobe_point REMOVE_Id clicast -e Cover PROBE_point DISable_id clicast -e Cover PROBE_point ENAble_id clicast -e Cover PROBE_point REMOVE_Id
When one of the above commands is run to enable, disable, or remove a probe point via ID, it is merely scheduled to have that action occur. The action takes place when the Apply command is run. If the environment is opened in the GUI before Apply has been performed, it is recommended that Apply be immediately performed by clicking the "Not Applied" button in the Probe Point Editor. clicast -e TOols PRobe_point APPly clicast -e Cover PROBE_point APPly
VectorCAST/Cover:
51609: VectorCAST component editor VectorCAST version 6.4w includes a new component editor. The component editor provides an easy to use GUI interface and allows the user to create and configure the components for coupling analysis. The following new commands are now available from the Cover Project Tools Menu: - Tools => Coupling => Components => Generate This generates a default set of components based on the source directory structure. Each directory creates a new component. This is equivalent to the clicast command: clicast -lc -e COUpling COMponents
- Tools => Coupling => Components => Edit This opens the component editor GUI and allows the user to modify the component configuration and move files between components, create new components, and remove existing components. - Tools => Coupling => Analyze This performs coupling analysis and is the equivalent to the clicast command: clicast -lc -e COUpling ANalyze
- Tools => Coupling => Apply This adds the function calls necessary to gather control coupling data during execution and is equivalent to the clicast command: clicast -lc -e COUpling APply
- Tools => Coupling => Generate Coverage Report Generates the Coupling Coverage Report and is equivalent to the clicast command: clicast -lc -e COUpling REport COUples
62839: Improve Support for Control Coupling via Function Pointers VectorCAST version 6.4w adds support for handling function pointers involved in Data and Control Coupling. In previous versions, the Coupling Coverage Report indicated that calls via function pointers had been detected and needed analysis. VectorCAST provides a mechanism for the user to do manual analysis of each call via function pointer, the outcome of which then indicates to VectorCAST which functions their application might call on that line of source code. VectorCAST then “reads” that information before doing the Coupling Apply (instrumentation). Two new CLICAST commands are supplied to perform the manual analysis.
1. Run clicast -e COUpling ANalyze [] 2. If a function pointer is detected and displayed in the output, run clicast -e COUpling MAnual_analysis GEnerate_report 3. The output in lists each call via function pointer, the unit name, the line
and column where it is called, and the word "analyze". It is up to the user to change the word "analyze" to either "ignore" or "active". - Enter "ignore" if the call via function pointer does not actually call any function involved in a data or control couple. An example of a function pointer call that can be ignored is a call to a function that wraps a call to a standard library function created specifically for your target. - Enter "active" if the call via function pointer is involved in a data or control couple. Each line with "active" also requires that the field "fp-targets" have a space-separated list of function names in your code that this line could possibly call. 4. Once this information is provided in and saved, call this CLICAST command to instruct VectorCAST on how you want the function pointers handled: clicast -e COUpling MAnual_analysis UPdate
Continue on as usual, running the Coupling Apply command.
VectorCAST/Manage: 52067: Manage is not aware of Industry Mode when selecting Code Coverage Previously, when VectorCAST/Manage was set to an industry mode other than default, the coverage type configured displayed the description associated with "default industry mode". In VectorCAST version 6.4w, the coverage type corresponds to the industry mode configured. If a coverage type does not exist for a particular industry mode, the description from default industry mode will be used. 63596: Manage/QA build/execute preserves CBA Previously, when performing a build/execute on a Manage/QA environment that contained CBA results, the CBA information would be lost. This has been fixed in VectorCAST version 6.4w.
VectorCAST/RSP: 62705: Parser should allow indexing into char literals in --tasking mode Tasking compilers allow indexing into multi-byte char literals, as in: return 'abcdefgh'[index];
Previous versions of VectorCAST issued an error when parsing this code in tasking mode. This problem has been fixed in VectorCAST version 6.4w.
Release Notes - VectorCAST: 6.4v VectorCAST/C,C++, Ada (Core) 49474: Allow monitored VC/Cover environments to be created from VC/Manage VectorCAST version 6.4v now includes the shortcut to create a new, monitored, Cover environment within your VectorCAST/Manage project. By default, the environment is stored in vcast_qa sub-folder within the work space directory, but can be modified by the user by setting the "Storage Location" in the environment wizard. 55148: Support for Saving Coverage Reports to any filename and extension Previously, the user wanting to save all coverage reports via the Save Coverage Reports dialog was restricted to selecting only the location in which the reports would be saved. Each report was saved with a hard-coded name in the format: __report.html or .txt
The dialog did not allow the user to specify a filename and file extension for the reports. In addition to the existing functionality, in VectorCAST version 6.4v the user can choose to save a single report to any location, filename, and file extension. The report must be in TEXT format to enable this selection. As before, the user sets the checkboxes to specify which sections to include in the combined report. The data for all selected units are combined into a single report To access the Save Coverage Reports dialog in a Cover environment: 1. Select the unit(s) you want to include in the report. 2. Choose Environment => View => Save Coverage Reports... In a Unit Test environment: 1. Select the unit(s) you want to include in the report. 2. Choose Test => Save Coverage Reports... 59181: Update Japanese and Chinese translations
VectorCAST version 6.4v includes updated translations for Japanese and Chinese languages. 60689: Crash using F5 while renaming a test case Previously, VectorCAST permitted test execution to be started using F5 even when a test was in rename mode. This situation caused the execution to continue indefinitely, appearing as though the GUI crashed. This problem has been resolved in VectorCAST version 6.4v. 60929: VectorCAST should set LM_APP_DISABLE_CACHE_READ if VECTOR_LICENSE_FILE or LM_LICENSE_FILE is set In VectorCAST version 6.4v, if the VectorCAST license is defined by the environment value VECTOR_LICENSE_FILE or LM_LICENSE_FILE, VectorCAST will ignore the value defined in the registry. To use the registry value, unset the environment variable(s). 62628: Add support for maintaining test script when functions move from one UUT to another Previously, when a subprogram was moved from one UUT to another, the Test Script Maintenance utility would not be able to identify that the testcases were still applicable to the environment, just in a different unit. As a result, the testcases were removed from the environment on test script re-import. In VectorCAST version 6.4v, the Test Script Maintenance utility correctly assigns the testcases for the moved subprogram to the other unit. 63113: User action before re-build is finished VectorCAST version 6.4v contains fixes for GUI crashes that can occur when using the environment wizard or when rebuilding environment. 63146: Test Case Maintenance Utility takes 30-40 minutes Previously, when rebuilding an environment, the Test Script Maintenance Utility took a long time when the size of the environment artifacts exceeded a certain size. In VectorCAST version 6.4v, the behavior of the Test Script Maintenance Utility has been altered to support this use-case more efficiently. 63355: When using VectorCAST in Japanese, dialog boxes and Manage configuration tooltips have garbage characters
Previously, when using the VectorCAST GUI with the Japanese language selected, the Help About dialog and the Instrumentation progress dialog contained unprintable or "garbage" characters. In addition, in Manage, some tooltips in the Configuration window also contained garbage characters. These problems have been resolved in VectorCAST version 6.4v. 63517: Improve diff processing for Test Script Maintenance Utility Previously, when rebuilding an environment, the Test Script Maintenance Utility took a long time when the testcases in the environment contained a very large set of values. This problem has been mitigated in VectorCAST version 6.4v. 63537: Partition tests generated without range data fail to execute Previously, when the clicast command "test partition" was run with no range data available, VectorCAST would indicate the tests were created, but the internal data structures were not populated correctly. This caused a crash when those tests were executed. Starting with VectorCAST version 6.4v, trying to generate partition test cases without range data will result in an error message. 64023: Debug mode enabled in Licensing code VectorCAST version 6.4v supports tracking calls to VectorCAST's licensing functionality (FLEXlm) when in debug mode, specifically with vresult_trace enabled. 64215: Allow Coverage-By-Analysis results to be editable after import Previously, VectorCAST would not allow users to edit Coverage-By-Analysis (CBA) results via the CBA editor in the GUI that were imported from a coverage script (.cvr). VectorCAST version 6.4v allows all CBA results to be edited regardless of how they were created. This includes CBA results that were imported via .cvr, .cba, and after rebuilding an environment.
VectorCAST/Ada: 63361: Support for preprocessing Ada files when using GNAT GPR build process Previously, when VectorCAST encountered preprocessor directives in a source file, it would treat that line as a comment and ignore it. This could cause instrumentation issues because comments are stripped out of the instrumented file, which could cause incorrect behavior and/or coverage numbers. In VectorCAST version 6.4v, there is a new Builder option "Preprocess GNAT source files"
that enables preprocessing of the Unit Under Test (and any non-stubbed unit instrumented for code coverage) when the preprocessor is configured in the GNAT Project file (.gpr) specified when building the environment. clicast -lada VCAST_PREPROCESS_ADA_FILES True | False
The default value is False.
VectorCAST/Analytics: 62935: Data API delete speed Projects with very large numbers of iterations, range iterations, or tests may have experienced slow removal of test results. The issue causing this is now fixed in VectorCAST version 6.4v. Some data must be migrated into a new format for the fix, so if you are opening one of these projects for the first time after the update, you may experience a long delay. If you do not want to wait, you can skip this migration process by rebuilding your environment. 63307: Vcdash shows instrumented file VectorCAST version 6.4v fixes an issue that caused Analytics to display instrumented source files instead of original source files when using --history-dir and instrument-inplace.
VectorCAST/C++: 55668: Parser thinks more than one overloaded function matches argument list when using boost/signals2.hpp Previously, when parsing source code with a #include of boost/signals2.hpp, VectorCAST incorrectly gave the error: "more than one instance of overloaded function "boost::variant::initializer::initialize [with T0_=boost::weak_ptr, TN=, boost::signals2:: detail::foreign_void_weak_ptr>]" matches the argument list"
This problem has been resolved in VectorCAST version 6.4v. 59443: Char values rejected from .tst import after range collection failure In previous versions of VectorCAST, if an error occurred during range data collection, a test script import error would occur for test cases that specified character values. This problem is fixed in VectorCAST version 6.4v.
60551: Harness uses incorrect sprintf format string for double In previous versions of VectorCAST, the harness used a non-standard sprintf format string when printing values of type double. In VectorCAST version 6.4v, the standard "% g" format string is used. 61826: SBF code generates locally undefined Init Object, causing link error Previously, environments where a stub-by-function unit contained a testable function with a parameter that is an array of classes without default constructors did not link. This problem has been resolved in VectorCAST version 6.4v. To get the new behavior, you must rebuild any affected older environments. 62141: Compile error caused during Incremental Rebuild for an SBF unit with main Previously, incrementally rebuilding an environment with a stub-by-function unit containing the main function caused a compile error. This problem has been resolved in VectorCAST version 6.4v. 62714: Deactivated probe point missing from editor In previous versions of VectorCAST, deactivating all probe points after trying to apply a probe point with an error might cause the deactivated probe points to be missing in the probe point editor and/or report. This problem has been fixed in VectorCAST version 6.4v. 62963: Instrumented ternary operator where the second operand is omitted results in an incorrect value being returned Previously, branch or basis path instrumentation of a conditional operator with an omitted second operand caused 1 to be returned when the first operand evaluated to true. That behavior was incorrect when the first operand was a value other than 1. This problem has been resolved in VectorCAST version 6.4v. 63039: C/C++ Tutorial files now support Targets with no Standard Input In VectorCAST version 6.4v, the Tutorial files in the VectorCAST installation directory have been changed to allow users on Targets without Standard Input (stdin) to use them more easily. By default, the manager_driver.c (.cpp) source file requires stdin in its use of scanf (). However, when an environment is built with one of the following macros defined, the source file no longer requires stdin.
- If ORDER is defined while a UNIT TEST environment is built or instrumented or while a COVER environment is instrumented, then it is as if "P" (for Place_Order) has been entered as input. - If CHECK is defined, then it is as if "G" (for Get_Check_Total) has been entered as input. In addition, a script named buildIt is provided in the same directory. The script contains two ways to compile the sources. By default, it compiles the sources assuming stdin is available. By uncommenting the other command and commenting out the original command, the user can build the sources while defining ORDER. Note, to use the buildIt script with a COVER environment, the best practice is to append the c_cover_io.c file to one of the units, such as manager_driver.c (.cpp). To do this in the VectorCAST GUI, right-click manager_driver.c (.cpp) and choose "Append Cover IO". In CLICAST, enter either: clicast -e -u manager_driver.c cover append_cover_io True
or clicast -e -u manager_driver.cpp cover append_cover_io True
63200: Execution report generation now uses less RAM Previously, generation of execution reports failed for some large compound tests since VectorCAST ran out of memory. In VectorCAST version 6.4v, generation of text reports now uses less RAM. 63299: Pure virtual function overridden twice in generated concrete subclass Previously, when an abstract class contained a pure virtual function with the same name and parameters but a different return type as a pure virtual function in a base class, VectorCAST incorrectly generated definitions for both of those functions, causing a compile error. This problem has been resolved in VectorCAST version 6.4v. 64382: Stubbed constructor member initialization list should utilize pointers and references to abstract types VectorCAST version 6.4v is able to use the "this" pointer and parameters more often in the member initialization list of stubbed constructors. This usage should avoid situations where infinite recursion occurs due to the stub calling itself or other constructors. To get the new behavior, you must rebuild any affected environments.
VectorCAST/Cover: 62629: Incorrect instrumentation when local variable assigned constant bool
expression Previously, when instrumenting Statement+Branch coverage, the function's entry point coverage was missing when the first variable in the function was assigned the value of a constant expression containing a logical or comparison operator. Consequently, this statement with the constant was also missing coverage. For example, with source code like this: int func ( void ) { int local_variable = (0 != 0); return local_variable; }
the entry point to the function func did not receive coverage after test execution, and the line "int local_variable = (0 != 0);" was not instrumented. This problem has been fixed in VectorCAST version 6.4v. 62711: Call coverage result lines rejected when adding result file Previously when re-instrumenting with Function Call coverage enabled, VectorCAST would not correctly update the Function Call coverage stored in the database, which could result in invalid lines when adding result files. This problem has been corrected in VectorCAST version 6.4v so that the Function Call coverage is always updated when necessary. 63535: Crash instrumenting MC/DC or determining basis paths for certain source with Visual Studio C++ 2015 (6.4f and later) VectorCAST versions 6.4f and later crashed when initializing MC/DC coverage or determining basis paths for some Microsoft Visual Studio C++ 2015 code. This problem has been resolved in VectorCAST version 6.4v. 62742: Include Coverage-by-Analysis (CBA) data in Function Coverage Previously, VectorCAST would only consider run-time coverage (that is, coverage from test execution) and not Coverage-by-Analysis (CBA) as contributing toward function coverage. Function coverage is displayed as an additional column in the Metrics report and the Function Call Coverage report. In VectorCAST version 6.4v, this behavior has been changed so that both test execution coverage and CBA coverage contribute toward function coverage. Metrics Report
The Function Coverage column in the Metrics report displays "100%" if the function has been entered by either execution or CBA coverage. The two rows below that indicate how many statements are coverage by execution, and how many by Analysis. Function Call Coverage Report The Function Call Coverage report includes columns for both Function Coverage (the function has been entered) and Function Calls (the call has been executed). In VectorCAST, CBA data only affects function coverage, not function call coverage. When only CBA results are responsible for the function coverage, the character "A" (for "Analysis") is displayed in the Function Coverage column. When execution results or a combination of execution and CBA results contribute to the coverage, the usual "Y" (for "Yes") is displayed in the column. 63536: Preprocess or parse errors while instrumenting in a cover environment should be saved to unitname.ERR file Previously, preprocess or parse errors that occurred during instrumentation were written to the file VCAST.ERR, which was then overwritten when another unit had an error. This problem is resolved in VectorCAST version 6.4v, where errors for each unit are saved to an individual .ERR file. If instrumentation is successful, no .ERR file is created. 64175: CLICAST should report error file name during instrumentation when error is less than 6 lines long Previously, CLICAST did not report the name of the error file where a preprocess or parse error is logged if the error was less than six lines long. In VectorCAST version 6.4v, the name of the file is now given.
VectorCAST/Manage: 62097: Test script conversion failure triggers error 'Dependency Added, Full Rebuild Required' In previous versions of VectorCAST/Manage, the build and execution of an environment would be aborted after a tst script conversion failure. This has been resolved in VectorCAST version 6.4v. 62956: Output from the system_tests.py should go to the execute or build log
Previously, when python scripts were invoked by VectorCAST, stdout and stderr were directed to the debug stream. From CLICAST, output was directed to stdout and from the GUI, output was directed to the Message Window. In VectorCAST version 6.4v, python output is directed to the output handle at the time of invocation. For example, python output goes to the build.log when invoked during a build, or goes to the execute.log when invoked during execution.
VectorCAST/Probe: 61564: If I omit the trailing colon on a command, we get a STORAGE_ERROR to the console Previously, VectorCAST would fail to parse probe points added to the environment using a Probe Point file (.pp) containing a command without a trailing colon, causing the CLICAST command to hang or add invalid Probe Points. This problem has been fixed in VectorCAST version 6.4v. 63220: Adding probes using a .pp file may hang the parser Previously, VectorCAST would fail to parse probe points added to the environment using a Probe Point file (.pp) containing a blank line, causing the CLICAST command to add the Probe Point to hang. This problem has been fixed in VectorCAST version 6.4v.
VectorCAST/RGW: 58313: Intland Codebeamer RGW integration VectorCAST version 6.4v includes RGW support for Inland Codebeamer. Inland Codebeamer is a collaborative web-based requirements and ALM solution. The VectorCAST/RGW integration allows the user to import Requirements from the Codebeamer server, then export test results back to the Codebeamer server.
VectorCAST/RSP: 62383: Support 'Direct Array Indexing' on all Ada targets Previously, on certain limited Ada targets, VectorCAST was unable to determine the proper indices for arrays, and therefore only supported positional notation (1..N) instead of the actual array index. In VectorCAST version 6.4v, a new Builder option named "Alternate direct array
indexing" has been added to address this deficiency. When this option is True, VectorCAST builds the harness using a different mechanism which allows VectorCAST to get the appropriate index for almost every array, regardless of target limitations. clicast -lada option VCAST_TARGET_DIRECT_ARRAY_INDEXING True | False
The default value is False.
Release Notes - VectorCAST: 6.4u VectorCAST C,C++, Ada (Core) 60161: Failed to execute external editor command In the Options dialog, the user can specify a path to an External Editor to be used when opening text files. If the path contains spaces, the user encloses the path in quotes. Previous versions of VectorCAST incorrectly marked such a path in quotes as being in an error state, with a red outline, and would not start the External Editor. This problem has been resolved in VectorCAST version 6.4u. 61940: Saving Code Coverage Summary does not honor VCAST_RPTS_DELIMITER option Previously, when saving the Code Coverage Summary report from the GUI as a .CSV file, the column separator was a "," which could cause parsing errors if the subprogram name also contains "," (for overloaded subprograms). Additionally, the option "Delimiter" on the Reports tab, Format sub-tab, Text sub-sub-tab was not being honored when saving the Code Coverage Summary. In VectorCAST version 6.4u, VectorCAST honors the VCAST_RPTS_DELIMITER option as a column separator when saving the Code Coverage Summary. 62646: Crash when saving testcase while selected in Execute Status details Previously, a crash occurred while saving a test case with results and coverage after that test case was selected in the Execution Status window. This problem has been fixed in VectorCAST version 6.4u. 62877: Easy way to copy info from About VectorCAST dialog to clipboard In VectorCAST version 6.4u, in the About VectorCAST dialog, text can be selected with the mouse and copied to the clipboard using the right-click menu or the Ctrl+C shortcut.
62886: Button to move units in Create Environment wizard is disabled Previously, in VectorCAST version 6.4t, the controls to add and remove units in the Create Environment wizard's "Choose UUTs & Stubs" step were disabled inappropriately. This issue has been fixed in VectorCAST version 6.4u.
VectorCAST/Ada: 47400: Pragma Unreferenced causes compile error in SBF Previously, if a subprogram in a Unit Under Test used 'pragma unreferenced', building a Stub-By-Function environment for that unit would generate a compile error due to the parameter being referenced as part of the stub processing. This has been fixed in VectorCAST version 6.4u. 62355: Global anonymous array objects defined after a nested package cause harness build error Previously, if a Unit Under Test contained a global anonymous array, such as: OBJECT : array ( 1 .. N ) of TYPE_T;
that was defined after a nested package body, VectorCAST's harness code inserted into the nested package body would incorrectly refer to the global object, causing compilation errors. This problem has been resolved in VectorCAST version 6.4u. 62631: Typemark containing private types from nested package causes harness compilation error Previously, when a Unit Under Test contained a typemark that referred to a private type within a nested package (e.g. an array whose element was a private type), VectorCAST's harness code inserted into the top-level package would incorrectly refer to a non-visible procedure within the nested package, causing compilation errors. This problem has been resolved in VectorCAST version 6.4u. 62694: Compilation error when UUT is instance of nested generic package Previously, when a Unit Under Test was an instantiation of a nested package, and that nested package defined its own types, VectorCAST could incorrectly build the test harness, resulting in error messages indicating a typemark was not visible. This problem has been fixed in VectorCAST version 6.4u.
VectorCAST/C++:
39195: Improved preservation of CBA data across source code changes Previously, when rebuilding an environment with Coverage By Analysis data (CBA), VectorCAST would retain the CBA in unpredictable and sometimes incorrect ways. For example, if a source code line with CBA was modified and the environment rebuilt, the line would still (erroneously) be covered by CBA. Similarly, if a new line of code was inserted in a function above the CBA-covered line and the environment rebuilt, a different line would be (erroneously) covered by CBA. In VectorCAST version 6.4u, CBA is preserved across source code changes in a predictable manner. During environment rebuild, VectorCAST exports the CBA data to a .cvr script with 2 lines of context before and/or after the line with CBA. If any of these lines have changed in the source code, the CBA is discarded and noted in the Coverage Import/Export Log. A current limitation of this feature in VectorCAST version 6.4u is that the Import Log is not displayed in the GUI or in CLICAST when CBA data is removed after environment rebuild. - This log can be accessed in the GUI using the Coverage => View Import Log menu item. - To see the Import Log after rebuilding the environment in CLICAST, look at the file IMPORT.LOG in the environment directory. 43013: Allow increment/decrement on enums in Borland mode Previously, using increment/decrement on enums with Borland mode in a Unit test environment would cause a parser error. This problem has been resolved in VectorCAST version 6.4u. 43721: Variables named f in test harness renamed to vcast_f Previously, the test harness used some variables named f. In VectorCAST version 6.4u, those variables have been renamed to vcast_f so that users who need to #define f for their source code may do so. 52004: Stub generated for function which cannot copy its return type Previously, stubs were incorrectly generated for functions where the return type had a private or protected copy constructor, causing a compile error. This problem has been resolved in VectorCAST version 6.4u.
57368: Function which returns private type treated as uncallable/untestable Functions returning private or protected types were previously not testable. In VectorCAST version 6.4u, new environments allow testing of those functions, though the returned value cannot be captured. 60627: Array of anonymous struct incorrectly stubbed Previously, stubs for arrays and pointers to anonymous classes, structs, and unions had incorrect syntax, causing compile errors. In VectorCAST version 6.4u, anonymous classes, structs, and unions are now stubbed correctly if C++11 is available, or if the new Build option VCAST_TYPEOF_OPERATOR is set to True. clicast -lc option VCAST_TYPEOF_OPERATOR True | False
The default value is determined by the compiler template. This option indicates whether the compiler accepts the __typeof__ operator. 61648: Coverage instrumenter should not treat unique symbols as being defined at unique addresses Previously, branch conditions that compared weak symbol pointers could incorrectly be treated as constant. This problem is resolved in VectorCAST version 6.4u, where the branch instrumentation allows both the True and the False outcomes, compared to only one outcome previously. 61895: Cannot insert probe on do/while statement [statement coverage] In VectorCAST version 6.4u, probe points are allowed before the while statement in do/ while loop. 62177: Handle __prog__ pointers for Microchip Previously, VectorCAST created invalid test harness code for some Microchip source code containing __prog__ pointers, causing a compile error. This problem has been resolved in VectorCAST version 6.4u. 62743: Incorrect float values printed in Execution Report when using VCAST_NO_SPRINTF define In recent versions of VectorCAST, floating point values would be incorrectly printed by the unit test harness when using the defined variable VCAST_NO_SPRINTF. This
problem is fixed in VectorCAST version 6.4u. Existing environments should be updated or rebuilt to use the fix. 63008: Stubbed constructor member initialization list should better utilize pointer and reference parameters When VectorCAST stubs a constructor that requires a member initialization list, it tries to use constructor parameters for initializing the members or base classes. If a member or base class initialization requires an initializer of a type not available among constructor parameters, a new instance of that type is created. VectorCAST version 6.4u now attempts to use parameters that are references or pointers to the required type when generating the initialization list. This change reduces the number of new instances created in the harness. 63300: Instrumentation error in Control and Data Coupling Previously, instrumentation insertion points were being miscalculated when gcc was being used due to gcc adding DOS line endings. This resulted in VectorCAST incorrectly placing Control and Data Coupling instrumentation inside existing comments. VectorCAST version 6.4u now accounts for extra DOS line endings to fix the problem.
VectorCAST/Cover: 61053: Support for auto-insert of c_cover_io.c via right-click menu Previous versions of VectorCAST support a CLICAST command to specify that a unit in a Cover environment should have the c_cover_io.c file appended during instrumentation. Doing so eliminates the need to add the /c_cover_io.c file on the command line when compiling the instrumented sources. In VectorCAST version 6.4u, the user is able to do this in the GUI as well. To specify that a C/C++ unit should have the c_cover_io.c file appended, right-click the unit and choose "Append Cover IO". The unit is immediately re-instrumented. Typically, only one unit per Cover environment is selected in order to avoid redefinition errors during compilation, and it is usually the one with the main() function. clicast -e -u cover append_cover_io True | False
62374: Support IO configuration of auto-include of c_cover_io.c VectorCAST/Cover supports the automatic inclusion of the VectorCAST coverage library file (c_cover_io.c or .cpp) into one or more Cover environment source files using the
clicast command: clicast -e -u cover append_cover_io True
In VectorCAST version 6.4u, users have ability to configure the auto-included coverage library using the standard VectorCAST configuration macros. Any configuration macros beginning with "VCAST_" that you define in the "Defined variables" section of the Options dialog, C/C++ tab, are applied to the coverage library during the next instrumentation of the source files in the Cover environment. For example, to configure the coverage library (c_cover_io.c) for standard output, just add "VCAST_USE_STDOUT" to the "Defined variable" options. In clicast, you would use: clicast -lc option C_DEFINE_LIST VCAST_USE_STDOUT
Then re-instrument the files that have been tagged as "append_cover_io" files, and recompile and re-execute your application. 62636: Crash when choosing Environment menu when option "Instrument for function call coverage" is True Previously, a crash occurred when opening the Environment menu after a Cover environment was closed, and the option "Instrument for Function Call coverage" was True. This issue has been fixed in VectorCAST version 6.4u.
VectorCAST/Manage: 39195: Improved preservation of CBA data across source code changes Previously, when C/C++ unit test environments were rebuilt after source code changes, Covered By Analysis data (CBA) was unpredictably discarded, or worse, re-applied on a different line. In VectorCAST version 6.4u, CBA is preserved across source code changes in a predictable manner. During environment Full build/execute, VectorCAST exports the CBA data to a . cvr script with 2 lines of context before and/or after the line with CBA. If any of these lines have changed in the source code, the CBA is discarded and noted in the Coverage Import/ Export Log. Limitations: - the CBA is not retained on Incremental Rebuild for Monitored environments - the CBA is not retained on build/execute for System Test environments - Coverage Import/Export Log is not displayed after environment rebuild. To access this log:
- Open the environment from within Manage and choose Coverage => View Import Log - Open the file IMPORT.LOG in the environment directory 41049: Test case changes lost in VC/Manage Previously, when an environment was updated in one particular context and then another context of the same environment was subsequently opened and then closed, the changes made in the first environment would be lost. Now in VectorCAST version 6.4u, the user is notified that the environment is now out of date because of the previous change and must be updated, rebuilt, or re-executed before it can be opened. 61233: Create, import environment, and migrate in single invocation VectorCAST version 6.4u adds additional functionality to the manage CLI "--import" command. The --import command can be passed the --migrate option from the command line. This will import and migrate an environment to the given group within the given testsuite. 45850: Manage support for continually re-importing Migrated environments VectorCAST version 6.4u includes improved functionality for working with migrated environments. For users who maintain regression scripts or the original environments over source code changes, VectorCAST makes it easy to continually re-import these updated regression scripts or built environments, thus updating the Manage project with the most current version of the environments. A new Manage command, "--re-import", allows the user to re-import existing migrated environments from their initial location from which they were originally imported. The command always uses the same mode of import (.env | ENV directory | regression scripts).
After re-import, CBT can be used to re-run only the tests needing execution based on the changes detected. Note: - Monitored environments are skipped - Cover environments are skipped 62151: Manage build.log shows incorrect sequence of commands and output On Windows, when an incremental build/execute was performed and if the incremental rebuild failed, and a full rebuild followed, Manage was writing to the same build.log for
both commands. In VectorCAST version 6.4u, a separate build.log is produced for each command.
VectorCAST/QA: 58404: Lua Example on Windows Build/Execute failure Previously, the Lua Example located in Examples/SystemTesting/LuaExample had failing test cases when created, built, and executed without making any user changes. In VectorCAST version 6.4u, all test cases pass when executed.
VectorCAST/RGW 62575: RGW Cache file location The Requirements Gateway (RGW) cache file is used to speed up operations that involve multiple updates to the RGW Repository, such as a single test run on an environment with hundreds of test cases. The updates are written to the cache file first, and then once the operation is complete, the cache was committed to another location. In previous versions of VectorCAST, the cache file was written to the Repository directory. VectorCAST version 6.4u changes the location for the cache file to the environment directory to better support multiple users of the same RGW Repository in future VectorCAST releases.
VectorCAST/RSP: 57500: Elements of volatile array in memory region not supported by harness Elements of a volatile array in a memory region, such as the Keil huge region, were not supported in the test harness starting with VectorCAST version 6.3h. Setting an expected value for those elements would result in the text "Not Supported: Cannot_Process" appearing in the Execution report. This problem has been resolved in VectorCAST version 6.4u. 62716: Default VCAST_NO_SETJMP value should be true for the Microchip MPLAB C30 compiler Previously, the default value for the VCAST_NO_SETJMP configuration option was False for the Microchip MPLAB C30 compiler. The False value caused the link error "undefined reference to 'setjmp'" when the source code contained unions. In VectorCAST version 6.4u, the default value is set to True.
62863: Lauterbach TERMGATE integration problems with Hightec tricore-gcc compiler In VectorCAST version 6.4u, the VectorCAST test harness has been updated to correctly support the combination of TERMGATE and the Tricore compiler, where the fpos_t type does not convert automatically to int/long.
Release Notes - VectorCAST: 6.4t VectorCAST C,C++, Ada (Core) 59000: Improved Test Compile functionality for Parameter and Testcase User Code VectorCAST version 6.4t includes improved test compile functionality. In the Parameter User Code and Testcase User code windows, if there a compile error, a new button is displayed. This button opens an editor window containing the temporary preprocessed file that is used to test compile the user code, scrolled to the text in the user code. Using this output may help to debug any user code compile errors. 59421: Support for File Scope Probe Points VectorCAST/C++ and VectorCAST/Cover version 6.4t now support adding a Probe Point at file scope. To add a File Scope Probe Point, first instrument the unit or environment for coverage. Open the Probe Point Editor for the unit. Above the familiar editor for the function scope Probe Points, you see the new File Scope Probe Point. Here you can enter any code that is valid at the file scope, such as new function definitions or global variables. Only one File Scope Probe Point can be entered per unit. Click one of the Test Compile buttons to test compile all active Probe Points (File Scope and regular function scope). When you save and apply the Probe Points for the unit, the File Scope Probe Point is inserted in the instrumented source file just after the last #include line. File Scope Probe Points are written to the regression scripts along with the regular function scope Probe Points. 60127: Crash importing some test scripts specifying attributes Previously, in certain situations, a test script with test cases that contain TEST. ATTRIBUTE lines for elements within an array or structure could cause a testcase
database corruption causing VectorCAST to crash during the test script import. This problem has been resolved in VectorCAST version 6.4t. 61859: Specialized automatic initialization/finalization tests don't execute properly Previously, using auto-initialization/finalization with a specialized test case caused an error dialog during test execution. "VectorCAST was unable to perform the action: CLICAST - RUN_TEST_CASE - TYPES.COMPOUND_DATA_LIST. ACCESSS_RANGE_ERROR". This error has been fixed in VectorCAST version 6.4t. 61914: Tests ignored due to "Ignore incomplete auto-generated test cases" still counted in reports Previously, when generating automatic test cases, if the VCAST_IGNORE_INCOMPLETE_TESTS options was on, and partial/template cases were generated, then even though the script import process would properly ignore the appropriate testcases, the Testcase Management Report would still count them as part of the summary status. This problem has been fixed in VectorCAST version 6.4t. 61964: Jobs window shows elapsed time for Monitored processes Currently, VectorCAST's Jobs window displays the elapsed time for processes called directly by VectorCAST. Previously, VectorCAST could not display the elapsed time for monitored processes. Monitored processes are those that are called by a process that VectorCAST called. An example of a monitored job is when an option is set to call a python or shell script to perform processing. VectorCAST version 6.4t displays the elapsed time of monitored jobs with a duration greater then one second in the Jobs window.
VectorCAST/Ada: 60812: Unable to instrument unit that instantiates from an instantiation Previously, when the UUT was an instantiation of a generic defined in another instantiation, VectorCAST was unable to find the body of the UUT, causing errors during Basis Path calculation and coverage instrumentation. This has been resolved in VectorCAST version 6.4t. 60822: 'pragma inline' in subprogram body gives compile error with SBF Previously, the VectorCAST Ada environment builder would have a compile error when building an SBF environment if a subprogram body in a Unit Under Test contained a pragma INLINE. This problem has been fixed in VectorCAST version 6.4t.
61026: Incorrect handling of INTERFACES.INTEGER_64 type When building range data for standard Ada packages in a Multi-unit Whitebox environment, integer-based numbers do not get range values (by design). Previously, VectorCAST would use the range of 'integer' for test script data verification, which would cause numbers outside of the 'integer' range to be flagged as an error during test script import. In VectorCAST version 6.4t, these numbers are no longer validated at all, allowing the user to enter whatever values are necessary. 61108: Harness build errors with whitebox of nested packages Previously, when building an environment for a UUT with one or more nested packages, the environment builder could fail to correctly implement the type handling procedures used for types within the nested packages. This has been resolved in VectorCAST version 6.4t. 62005: Typemark appearing after nested package body causes compile errors When VectorCAST builds type-handling procedures for a nested package in the UUT, it will build the procedure for all visible types. Previously, that would include all types defined in the enclosing package. When a typemark is defined after a nested package body, this processing would cause compilation errors because the typemark was not defined before the procedure. This issue has been resolved in VectorCAST version 6.4t.
VectorCAST/Analytics: 60423: Support for Importing Custom Analytics Dashboards VectorCAST version 6.4t implements support for saving a Dashboard, modifying it or creating your own, and then importing your custom Dashboard. With a Dashboard open, choose the "Save" icon in the upper right to export the current Dashboard to a JSON file. By default, it is named local_dashboard.vdash. You can then edit this Dashboard file to suit your needs. It is recommended you run it through a JSON validator. When ready to import your custom Dashboard, select the "File Open" icon to import the local_dashboard.vdash file. It is then listed in the dropdown selector as "Local Dashboard Settings." Once you have a Dashboard you like, you can then set it up to be used by everyone connected to the Analytics server by installing it on the machine with the Analytics server. You can install more than one custom Dashboard.
To do this, copy the local_dashboard.vdash file to the Analytics configuration directory and start the Analytics server with the configuration directory: vcdash --project= --config=
If you do not currently use a configuration directory, create one using: vcdash --create-config=vcdash_config
62395: Instrumenting Cover environment in-place prevents Analytics from displaying files Previously, the Analytics Dashboard was not correctly displaying files in Cover environments that were instrumented in-place. To view the source file in the Analytics Dashboard, click the small "file icon" next to the filename in the Project Tree. This problem is fixed in VectorCAST version 6.4t.
VectorCAST/C++: 46821: Parser should accept unnamed parameters for Borland C code Previously, building a C unit test environment that contained unnamed parameters for Borland C code would generate a parser error. This problem has been fixed in VectorCAST version 6.4t. 57345: Invalid stub code generated when return type uses decltype parameter references Previously, VectorCAST generated stub code that did not compile when the return type of a stub used a decltype referring to parameters of the function. This problem has been resolved in VectorCAST version 6.4t. 58160: New gcc/g++ templates for newer versions Default options for gcc/g++ versions 5.2, 5.3, 5.4, 6.0, 6.1, 6.2, and 6.3 are now available in VectorCAST version 6.4t. The following templates have been added to clicast: GNU_C_52 GNU_C_53
GNU_C_54 GNU_C_60 GNU_C_61 GNU_C_62 GNU_C_63 GNU_CPP_52 GNU_CPP_53 GNU_CPP_54 GNU_CPP_60 GNU_CPP_61 GNU_CPP_62 GNU_CPP_63 GNU_CPP11_52 GNU_CPP11_53 GNU_CPP11_54 GNU_CPP11_60 GNU_CPP11_61 GNU_CPP11_62 GNU_CPP11_63 GNU_CPP14_52 GNU_CPP14_53 GNU_CPP14_54 GNU_CPP14_60 GNU_CPP14_61 GNU_CPP14_62 GNU_CPP14_63 60498: Probe Points now available for all statements when using Block Statement Coverage Previously, when "Instrument blocks for statement coverage" was selected, probe points could not be added for statements prior to the last statement of the block. This problem has been resolved in VectorCAST version 6.4t. To get the new behavior, you must reinstrument for code coverage. 61505: Parser using Code Composer flags requires declaration or statement after #pragma DATA_ALIGN In previous versions of VectorCAST, a parse error could occur if #pragma DATA_ALIGN was used in a Code Composer C source file and the #pragma was not immediately followed by a declaration or statement. This problem is fixed in VectorCAST version 6.4t.
61897: Post-preprocess command result not always used In previous versions of VectorCAST, output from a post-preprocessing command might not be used when VectorCAST verified a UUT is parseable in the environment wizard or in the Test Settings dialog (accessed from the Options dialog, C/C++ tab, Test Settings button). This problem has been fixed in VectorCAST version 6.4t.
VectorCAST/Cover: 40767: Control and Data Coupling Verification VectorCAST version 6.4t includes a new implementation of Control and Data Coupling for C/C++ source files in Cover environments for licensed customers. The former implementation in Manage has been removed. This new implementation supports coupling requirements of both DO-178B and DO-178C projects using a combination of static analysis to identify the couples in a code base and run-time verification of the couples during application execution. The intent of the coupling analysis is to prove that the control and data flow between architectural components in the implementation match what was intended by the design, and to prove that these flows have been tested. DO-178B requires applicants to identify couples in the design, and to verify that those couples, and only those couples, exist in the implementation. DO-178C additionally requires applicants to verify that the couples have been exercised during functional requirement testing. DO-178C requires proof that a data object is set before it is used, and that every call of a Control Couple has been executed and that the next statement executed after the call, is the first statement of the called function. VectorCAST's Component Report, Couples Report, and Coupling Coverage Report provide this proof. The feature requires that the sources in the Cover environment be instrumented for coverage. If the sources are not instrumented, the Coupling analysis instruments them for coupling-only coverage. The following coverage types allow coupling: - Statement - Coupling-only (new) The feature requires that all sources listed in the components.xml file (see below) be present in the Cover environment. Therefore, if the user's base directory contains more sources than are planned to be in the Cover environment, the user should edit the components.xml file to only include the sources in the Cover environment. The following is a quick summary of the CLICAST coupling commands:
1. Create Cover environment, add sources. This example uses the name "COVER" for the Cover environment. 2. (optional) clicast -e COVER cover inst STATEMENT | COUPLING 3. clicast -e COVER coupling components 4. Edit COVER/coupling/components.xml if needed 5. clicast -e COVER coupling analyze [] 6. clicast -e COVER coupling apply 7. compile COVER/c_cover_io.c (or .cpp) COVER/ coupling/couplingData.c -ICOVER -I
8. Execute the instrumented application 9. clicast -e COVER cover result add TESTINSS.DAT 10. clicast -e COVER coupling report coverage More information is provided in the VectorCAST/Cover User's Guide. 60844: 'vcast_unit_list_values' now defined as const in vcast_c_options.h When using buffered coverage I/O with VectorCAST/Cover, a global variable vcast_unit_list_values is defined in the c_cover_io.c(pp) file. In VectorCAST version 6.4t, this variable is declared const. In addition, when compiling this file, if a macro named VCAST_UNIT_LIST_VALUES_ATTR is defined, it will be used as part of the variable definition. This allows users to specify declaration attributes such as might be used to specify that a variable be placed in ROM. 61022: Instrumenter very slow when TU has many comments Instrumentation of files with many C style comments is now faster in VectorCAST version 6.4t. 61066: VCAST_APPEND_TO_TESTINSS option is not honored when creating cover environment from CLI Previously, there was no mechanism to set the "Append to Testinss" option for a Cover environment from the command line. In VectorCAST version 6.4t, the capability is correctly controlled by the CLICAST command: clicast -lc Option VCAST_APPEND_TO_TESTINSS True | False
and of course when set in the Options dialog, Coverage tab, Cover Environment sub-tab. A change in value for this option takes effect upon reinstrumentation. 61083: Instrumented file does not compile when "cover append_cover_io" command is used with VCAST_COVERAGE_COLLAPSE_ALL true
Instrumented files did not compile when the clicast cover append_cover_io command was used with a true value and the configuration option VCAST_COVERAGE_COLLAPSE all was set to true. This problem has been resolved in VectorCAST version 6.4t. 61946: Instrumentation speed improvements Coverage instrumentation of some files, especially those using macros, is now faster in VectorCAST version 6.4t. 62024: "Compiler supports long long" option now available on Target tab In VectorCAST version 6.4t, the configuration option "Compiler supports long long" has been moved from the Builder tab to the Target tab.
VectorCAST/Lint: 62053: Lint only environment requires cover license for regression scripts Previously, Lint environment regression scripts would sometimes contain 'clicast cover' commands, which would fail if there were no VectorCAST/Cover license available. In VectorCAST version 6.4t, only 'clicast lint' commands appear in the regression script. 62180: Lint options file environment variable expansion broken from CLI Previously, if the Lint options file used environment variables for paths, the Lint Analysis would only work correctly when called from the VectorCAST GUI. In VectorCAST version 6.4t, environment variables are correctly handled from VectorCAST 'clicast' as well.
VectorCAST/Manage: 33376: Problem in python API reporting of control flow results in Manage Previously, the Python API provided for an environment in Manage would consider an environment having control flow results but no test case expected results as having no results at all. This problem has been fixed in VectorCAST version 6.4t such that the API considers this situation as having results. 53072: Original Source Report incorrect when using Block Statement Coverage The original source report incorrectly labelled some covered lines as uncovered when using the "Instrument blocks for statement coverage" option. Some covered lines were also reported as covered for multiple environments when they were only covered in a
single one. These problems have been resolved in VectorCAST version 6.4t. To get the new behavior in an older Manage project, you must delete the build/ vcast_data/cover.db file from the project directory before reinstrumenting environments for code coverage. 60566: Testcases failing after rebuild in Manage Previously, when a build action was performed on an environment that had execution results, the testcases would be reported as failures because they did not execute as part of the build (only) action. In VectorCAST version 6.4t, the testcase results are removed entirely and reported correctly as NOT EXECUTED. 62208: Manage project wizard crash caused by Refresh action Starting in VectorCAST version 6.4t, the menu options "Refresh" and "Reporting" are not available for environments in the Manage project update wizard.
VectorCAST/QA: 61054: Compile errors after reinstrumenting Linux QA Demo in versions 6.4o and later VectorCAST versions 6.4o and later had compile errors upon reinstrumenting the QA demo on Linux. This problem has been resolved in VectorCAST version 6.4t.
VectorCAST/RGW: 58927: Support for cleaning out historical RGW data from database VectorCAST version 6.4t implements new python scripts to enable the user to manage the size of the Requirements Repository by selectively cleaning out historical Requirements and Test Run data from the database. rgw_report.py and rgw_clean.py, located in the $VECTORCAST_DIR/python/vector/
apps/RGWutility directory, reports on the current historical data in the Requirements database, and clear out all data except the most recent requirements data and test execution data in the database, respectively.
Release Notes - VectorCAST: 6.4s VectorCAST C,C++, Ada (Core) 183: Unused Expected Values capability for User Code VectorCAST version 6.4s implements a new Execute option called "Detect unused expected user code." Enable this option to detect test-specific expected user code that has not been executed during a test. Such code is most likely to be associated with a stub that has not been called. When True and some testcase or parameter user code has not been executed, the test fails, and the Execution Report displays the unused values, the unit, and whether that unit is stubbed or not-stubbed. Disable this option if you have added parameter user code to a stub that you expect to never get called. (You might add code to an uncalled stub if you want the test to show a failure if the stub ever gets called.) clicast -lc|-lada options VCAST_DETECT_UNUSED_EXPECTED_UC TRUE | FALSE
The default value is False. 50748: New Execute option to fail test cases with no Expected Values VectorCAST version 6.4s implements a new Execution option to identify test cases that have no Expected Values. Located on the Options dialog => Execute tab, the option is called "Fail if no expected values." When set to True, a test is prohibited from executing if it does not contain at least 1 Expected Value, Expected Parameter User Code, or Test Case User Code. It is marked as Failed in the Test Case Tree, and appears as "Abnormal Termination - No expected values" in the Testcase Management Report. clicast -lc | -lada option VCAST_TESTCASE_FAIL_ON_NO_EXPECTED True | False
The default value is False. 51686: Informational messages (I) still displayed in Test Script Log with "Only show errors in script logs" set to True Previously, setting the configuration option VCAST_SCRIPT_LOG_SHOW_ONLY_ERRORS to true left informational messages, the ones prefaced by (I), in the test script log. In VectorCAST version 6.4s, the informational messages are removed from the test script log if
VCAST_SCRIPT_LOG_SHOW_ONLY_ERRORS is true. 57031: HTML tag in TXT report when "Generate execution reports in all formats" not checked Previously, VectorCAST added spurious HTML tags to the Execution report in TEXT format when tests were executed while the format was set to HTML, but then changed to TEXT prior to generating the report. The opposite was also true. These problems have been fixed in VectorCAST version 6.4s. The generated Execution or Full report notifies the user that the tests should be executed before re-generating the report in the desired format. Note that setting the option "Generate execution reports in all formats" prior to executing tests eliminates this problem. 57523: Generic Analysis Tool VectorCAST version 6.4s supports a user-configurable static analysis tool, implemented as a Custom Tool. The concept of this new feature is to allow users to run any program that performs file-based source code analysis and view the results of that analysis within VectorCAST's Generic Analysis Viewer. To access the new Custom Tool, choose Static Analysis => Edit Analysis Tools, which brings up a dialog similar to the Custom Tools dialog. To configure a new analysis tool, simply configure the command to be used to perform the analysis, and then ensure that the analysis output is an XML file, formatted in the way that the VectorCAST Generic Analysis Viewer expects. To help you understand how to configure a new Custom Tool, VectorCAST includes a built-in example for use with C/C++ source files. In the Edit Analysis Tools dialog, there is an item called Example Analysis. This item is pre-configured to use VectorCAST/Lint to perform analysis and display the messages using the Generic Analysis Viewer. It uses a python script to invoke VectorCAST/Lint on the source files, and then massages the output into the expected format for the Generic Analysis Viewer. This python file can be used as a template for adding your own analysis tools to VectorCAST. You can use this example as-is by simply checking the box to add the command to the toolbar or menu. Then you can right-click on a C/C++ source file in the open Unit Test or Cover environment and choose Analyze Source => Example Analysis. In the same way, you can recall the analysis results at any time, using the right-click => View Analysis => Example analysis menu item. 59430: Compound Testcase Editor Improvements
VectorCAST version 6.4s has made improvements in the Compound Test Case Editor. Several areas have been changed to make the tool easier to use. These improvements include: - a way to determine which slots are specialized tests - interlocks to prevent a user from dropping or pasting a Specialized test into a nonspecialized compound test and to prevent a user from inadvertently corrupting the test cases - improved drag and drop with multi-selection and - the ability to now search to find text within a slot 60666: "create regression scripts" overwrites .tst symlink with empty file Previously, if a set of regression scripts were actually Linux "links", certain types of links would not be maintained if the regression scripts were re-created over the old files. This problem has been fixed in VectorCAST version 6.4s.
VectorCAST/Ada: 59839: Invalid coverage lines on Ada statements The Ada instrumenter in VectorCAST version 6.4s has been improved to instrument "accept", "begin", and "loop" statements in a more consistent manner. If you have source code with any of these constructs, you may see an increase in coverage totals. 60110: Incorrect instrumentation on single line subprogram Previously, when a conditional statement contained a function call with a parameter as part of a logical comparison, VectorCAST would not always instrument the logical comparison. For example, return F1 ( A ) * F2 ( F3 ( B ) < 0 );
would not show instrumentation for the "F3(B) < 0". This problem has been fixed in VectorCAST version 6.4s. 60825: Stub Object containing constant pointers in private are causes compilation errors Previously, when a global object had been declared using a type mark with an 'access constant' qualifier, VectorCAST would incorrectly build the call to the procedure that could modify the object, resulting in compilation/link errors. This has been fixed in VectorCAST version 6.4s.
VectorCAST/C++: 43621:Startup files list not cleared when changing compiler configurations Previously, when switching from one compiler template to another in the GUI, the list of startup files retained all entries from the first template. In VectorCAST version 6.4s, only user-created entries are retained. 46927: Switching compiler configurations does not always reset certain options Switching compiler configurations did not reset the following configuration options: C_DEBUG_HELP_FILE C_EXEC_HELP_FILE PRECOMPILE_CMD PRECOMPILE_EXT VCAST_ALT_WB_METHOD VCAST_ASSIGN_WITHOUT_COPY_CTOR VCAST_AUTO_CLEAR_TEST_USER_CODE VCAST_DUMP_BUFFER VCAST_FILE_PREFIX VCAST_FORCE_ELAB_TYPE_SPEC VCAST_GH_INTEX_CMD VCAST_GH_INT_FILE VCAST_NO_FFLUSH VCAST_PREPROCESS_PREINCLUDE VCAST_REMOVE_PREPROCESSOR_COMMENTS VCAST_USE_STATIC_MEMORY This problem has been resolved in VectorCAST version 6.4s. 51385: Support GNU type __float128 Previously, VectorCAST did not recognize the GNU types __float128 and __float80. This problem has been resolved in VectorCAST version 6.4s. 57677: Adding configure stubs user code or object initialization user code triggers reinitialization of code coverage Previously, coverage instrumentation was re-initialized when configure stubs user code or object initialization user code was changed. In VectorCAST version 6.4s, the instrumented harness is still linked, but coverage instrumentation is not re-initialized. 59113: Copy VectorCAST tries to create an array initializer with 2 billion elements
In previous versions of VectorCAST, the C++ environment builder would attempt to stub arrays with uninstantiated template-dependent size, leading to a crash. This problem is fixed in VectorCAST version 6.4s. 59303: Error "excessive recursion at instantiation of function" incorrectly given in some cases VectorCAST incorrectly gave the error "excessive recursion at instantiation of function" in some cases where there are many instantiations. This problem has been resolved in VectorCAST version 6.4s. 59793: "Choose a subclass" menu doesn't show all eligible subclasses VectorCAST version 6.4p has a problem where some subclasses were not detected, making them unavailable when setting a pointer of the parent class. This problem has been resolved in VectorCAST version 6.s. If you have an environment built with 6.4p or later with the problem, you must rebuild the environment to get the fixed behavior. 60282: VCAST_DISABLE_STD_CONTAINER_DETECTION should default to FALSE for all compiler templates VectorCAST version 6.4s sets the default value for VCAST_DISABLE_STD_CONTAINER_DETECTION to False for all C/C++ compiler templates. As a result, regression scripts no longer need to include the option unless it is set to True in the environment. 60536: Probe point context matching is incomplete Previously, when applying probe points, VectorCAST would not always handle the context provided properly. In some situations the context-after would be ignored, which would result in an incorrect insertion point for the probe point. This problem has been fixed in VectorCAST version 6.4s. 61152: MC/DC test report does not show branch for ? operator with constant 1st operand in constructor call of a decl not using new The MC/DC test report did not show a branch for the conditional operator when it had a constant first operand and was located in the constructor call of a declaration not using the new operator. This omission did not affect MC/DC test scripts, but it did mean that subsequent conditions received identification numbers that did not match those in the MC/DC coverage report. The problem has been resolved in VectorCAST version 6.4s.
VectorCAST/Cover: 51447: VCAST_CLEAR_COVERAGE_DATA_ID() does not clear vcast_optimized_mcdc_array_* buffers In previous versions of VectorCAST, using VCAST_CLEAR_COVERAGE_DATA_ID() in the c_cover_io.c did not clear buffers related to optimized MC/DC instrumentation. This problem is fixed in VectorCAST version 6.4s. 58455: Crash when instrumenting re-throw statement with function call coverage enabled Previously, VectorCAST crashed when instrumenting for Statement coverage with function call coverage enabled if the source code contained a throw statement without an expression. This problem has been resolved in VectorCAST version 6.4s. 60151: Import of cover script from Ada unit test environment fails if unit only has 'separate' subprograms Previously, if a Coverage script (.cvr) was generated by a VectorCAST/Ada environment and a Unit Under Test in that environment only had 'separate' subprograms, the Coverage script would not import into a Cover environment correctly, causing missing coverage data. This problem has been fixed in VectorCAST version 6.4s. 60904: Invalid instrumentation for ternary expression within union initialization Branch coverage instrumentation did not compile for some C source files containing a ternary expression in a struct or union initialization when the configuration option VCAST_COVERAGE_FOR_DECLARATIONS was set to true and VCAST_AVOID_COMMA_OPERATOR was set to false. Basis paths analysis and MC/DC tests also omitted the ternary expression. These problems have been resolved in VectorCAST version 6.4s.
VectorCAST/Manage: 48791: Import .env file to Manage project to add Monitored environment In Manage, the user can right-click a Group node in a Manage project and choose Add Existing Environment. Previously, the only choice in this dialog was a built Unit Test environment (.vce) or Cover environment (.vcp). With VectorCAST version 6.4s, the user can now select a single environment script (*.env). The environments added using "Add Existing Environment" are Monitored.
manage -p --import <.env file>
Other ways to use the --import argument: manage -p --import manage -p --import <.vce or .vcp file> manage -p --import <.env file> <.tst file> <.csh or .bat file>
Optional arguments can be given as well: [--level=