# API Sanity Checker - Change Log

Thanks to all for reporting issues so the tool can continue to be improved!

## Version 1.98.6 (September 17, 2013)

api-sanity-checker-1.98.6.tar.gz
This is a bug-fix release.

- Improvements
  - Support for ABI Compliance Checker 1.99.8.3

- Bug Fixes
  - Corrected generated test cases code and Makefiles
  - Support for SUSE 11.2

- Other
  - Code cleaning

## Version 1.98.3 (February 07, 2013)

api-sanity-checker-1.98.3.tar.gz
This is a bug-fix release with a few new features.

- New Options
  - -target

- Bug Fixes
  - Corrected formatting of generated HTML-pages
  - Corrected generated makefiles
  - Corrected -vnum option
  - Other fixes

- Other
  - Code cleaning

## Version 1.98.2 (January 10, 2013)

api-sanity-checker-1.98.2.tar.gz
This is a bug-fix release.

- Bug Fixes
  - Fixed a problem with resolving of undefined symbols
  - Moved linker options to LIBS variable in generated makefiles

## Version 1.98 (December 14, 2012)

api-sanity-checker-1.98.tar.gz

API Sanity Checker 2.0 pre-release.

This is a next major release including a lot of new features and bug fixes.

NOTE: Requires ABI Compliance Checker 1.98.7

- New Options
  - -optimize-includes
  - -no-inline
  - -keep-internal
  - -lang
  - -cache
  - -browse
  - -open

- Improvements
  - Added tests for inline functions
  - Added test_include_preamble section of the XML-descriptor
  - Added test_defines section of the XML-descriptor
  - Improved design of test cases viewer
  - Support for OpenBSD

- Bug Fixes
  - More accurate list of includes in test cases
  - Corrected auto-generated sub-class declarations
  - Corrected Makefile to install modules
  - Other fixes

- Other
  - Code cleaning and refactoring

## Version 1.12.11 (December 14, 2012)

api-sanity-checker-1.12.11.tar.gz
This is a bug-fix release with a few new features.

- Improvements
  - Support for Mac OS X 10.8

- Bug Fixes
  - Corrected generating of tests for protected methods
  - Disabled tests for WEAK symbols
  - Corrected Makefile
  - Other fixes

- Other
  - Code cleaning

## Version 1.12.10 (October 02, 2012)

api-sanity-checker-1.12.10.tar.gz

- Added README
- Docs cleaning

## Version 1.12.9 (December 13, 2011)

api-sanity-checker-1.12.9.tar.gz
This is a next bug fix release.

- Completed Tasks
  - Rename to API Sanity Checker (2093)

- New Features
  - Add Makefile.pl installer (1869)

## Version 1.12.5 (June 03, 2011)

api-sanity-autotest-1.12.5.tar.gz
This is a next bug fix release.

- Bug Fixes
  - Corrected automatic include paths for headers
  - Corrected template type names
  - Corrected automatic preamble and finalization
  - Corrected links in the problem summary
  - Corrected help message and documentation
  - Support for C-headers containing C++ keywords
  - Corrected design of test viewer

- New Features
  - Support for the latest GCC 4.6.0

## Version 1.12 (March 03, 2011)

api-sanity-autotest-1.12.tar.gz
This is a next major release including a lot of new features and bug fixes.

- New Features
  - Ported to Mac OS X (10.5) and MS Windows (Xp, Vista, 7)
  - Improved performance
  - Using File::Temp for storing temporary files
  - Implemented universal library descriptor: you can specify a directory with headers and shared objects or comma separated list of headers and shared objects instead of a standard XML-descriptor
  - Extended Help message
  - Added -info option to show full information about the tool
  - Added -strict-* options family
  - Added -debug option for debugging
  - Added <param_name> associating section to specialized types
  - Added -vnum option to specify library version number outside the descriptor
  - Added <defines> section to the XML-descriptor to add defines at the headers parsing stage
  - Added documentation: Options.html, Descriptor.html

- Bug Fixes
  - Corrected automatic detection of include paths for headers (-I options to GCC)
  - Option -without-shared-objects has been renamed to -headers-only
  - Corrected parsing of header files, identifying of some previously missed classes
  - Documentation has been moved to "doc/" subdirectory

## Version 1.11.1 (March 03, 2011)

api-sanity-autotest-1.11.1.tar.gz
This is generally a bug fix release.

- New Features
  - Added documentation: README.html, CHANGES.html, SPECTYPE.html

- Bug Fixes
  - Corrected processing of typedef type names, fixed potential program hangup
  - Corrected processing of special symbols in file paths specified by XML-descriptor ("+" and others)

## Version 1.11 (July 22, 2010)

api-sanity-autotest-1.11.tar.gz
This is a next release with several new features.

- New Features
  - Added <skip_libs> section to the library descriptor: this section contains a list of shared objects and/or directories with shared objects that should not be processed
  - Added -library-full-name option to display full library name in title of the report
  - Improved performance on big libraries
  - Improved unit tests code

## Version 1.10 (June 25, 2010)

Api-sanity-autotest-1.10.tar.gz
This is generally a bug fix release.

- New Features:
  - Added -relpath option: replace {RELPATH} in the library descriptor to some relative path
  - Added <add_include_paths> section to the library descriptor: this section contains a list of include paths that should be added to the automatically detected include paths
  - Improved initializing sequences in the test scenarios

- Bug Fixes:
  - Corrected techniques for auto-detection of header file dependencies (include paths)
  - Corrected checking of complex namespaces changes (C++)
  - Corrected reuse of previously created variables in tests

## Version 1.9 (June 08, 2010)

Api-sanity-autotest-1.9.tar.gz
This is generally a bug fix release.

- New Features:
  - Added -params option for improving tests by adding parameter names separately from header files
  - Added -header option for restricting a list of functions that should be tested by providing a header file name in which they are declared
  - Added <skip_warnings> section to the library descriptor for skipping some test messages
  - Separated stderr and stdout streams of the tool
  - Improved tests generating rate
  - Treating SEGV|FPE|BUS|ILL|PIPE|SYS|XCPU|XFSZ signals as errors in the report, other as warnings
  - Improved test data generation

- Bug Fixes:
  - Corrected complex array type names
  - Corrected techniques for auto-detection of undefined symbols in the shared objects
  - Corrected techniques for auto-detection of out parameters
  - Corrected list of included headers
  - Fixed tool hanging on some C++ headers (with many namespaces)
  - Corrected order of preamble/finalization in the code
  - Corrected initialization of agc/argv parameters
  - Corrected initialization of big arrays
  - Removed recursive calls from the tests code
  - Corrected initialization of structure members
  - Corrected initialization of struct/union types
  - Corrected global_code/init_code/final_code/value parsing techniques
  - Corrected tests cleaning

## Version 1.8 (May 05, 2010)

Api-sanity-autotest-1.8.tar.gz
This release includes many bug fixes and new features after integration to the Upstream Tracker system.

- New Features:
  - Ignoring hidden .svn, .git, .bzr, .hg, and CVS directories
  - Added -dumpversion option for printing tool version and don't do anything else
  - Added <out_params> section to the library descriptor
  - Added <lib_version> section to the specialized type (<spec_type>) and to the collection of specialized types (<collection>). It allows to specify library version(s) the specialized type or collection will be applied to
  - Improved techniques for auto-detection of out parameters
  - Improved header files sorting for protecting from compilation errors on the intermediate phase of temporary header file compilation
  - Improved techniques for auto-detection of header file dependencies (include paths)
  - Extended set of tested interfaces
  - Improved techniques for auto-detection of undefined symbols in the specified shared objects
  - Calling of library malloc function instead of standard malloc()
  - Improved techniques for initializing intrinsic types
  - Added sentinel to function call (if needed)
  - Treating receiving of ABRT signals and exit codes as warnings
  - Added prefixes to header file includes in the test cases

- Bug Fixes:
  - Test cases for some previously missed C++ namespaces
  - Removed hidden "void const** __vtt_parm" parameters from the signature of some constructors
  - Corrected redefinition of pure virtual destructors
  - Corrected processing of several environment specialized types
  - Corrected selection of functions to call for initializing parameters of other functions
  - Corrected code parsing techniques (for <value> section of the specialized type)
  - Preventing hanged execution of the tool on big arrays (>1024 elements)
  - Corrected processing of <final_code> of specialized type for return value
  - Corrected list of header file includes in the test cases
  - Corrected processing of command line options

## Version 1.7 (March 26, 2010)

Api-sanity-autotest-1.7.tar.gz
This release includes new features, bug fixes and changed license.

- New Features:
  - The license was changed to dual GNU GPL and LGPL
  - Added <pre_condition> and <post_condition> properties in the specialized types. Obsolete <constraint> property will be supported, but should be replaced by <post_condition> in the new code
  - Added -splint-specs option for using splint annotations in the headers (@returned@, @out@, @notnull@, @requires@ and @ensures@)
  - Using of throw() in the tests for C++ methods with the exceptions handling
  - Changed meaning of the <skip_interfaces> section in the descriptor. Now it defines interfaces that should not be called in the tests
  - Added <skip_headers> section in the descriptor

- Bug Fixes:
  - Corrected processing of <libs_depend> section in the descriptor
  - Directory with temporary files renamed from "temp" to hidden ".tmp_dir"
  - Corrected processing of shared object dependencies
  - Corrected processing of relative paths in the <headers>, <include_paths>, <libs> and <libs_depend> sections
  - Added tests for some previously missed functions and conversion operators in C++
  - Improved internal test suite
  - Corrected usage of the out-parameters
  - Corrected code alignment
  - Corrected LIBS variable in the makefiles
  - Corrected enumeration members selecting
  - Corrected some error messages

## Version 1.6 (March 03, 2010)

Api-sanity-autotest-1.6.tar.gz

- New Features:
  - Ported to FreeBSD and Haiku
  - Added namespaces usage in the tests
  - More accurate distinguishing pointer arguments *x and arrays x[]
  - Added log for describing tool actions and occurred errors
  - Improved techniques for auto-detection of header file dependencies (include paths)
  - Added <libs> attribute to the specialized type for describing external libraries used by this type
  - Added check for gcc/g++ version (>=3.0.0)
  - Added -view-only option
  - Added arguments to the tests
  - More accurate detection of default gcc include paths
  - Improved internal test suite
  - Added error code on return

- Bug Fixes:
  - Corrected signal handling
  - Corrected header include lists
  - Corrected makefiles
  - Corrected usage of the out-parameters
  - Corrected styles in the report design
  - Corrected error messages
  - Corrected code highlighting

## Version 1.5 (February 15, 2010)

Api-sanity-autotest-1.5.tar.gz
This is generally a bug fix release.

- New Features
  - Added <libs_depend> section of the descriptor for shared objects that should be provided to GCC for resolving undefined symbols (if NEEDED elf section in the library shared objects doesn't include it)
  - Added techniques for auto-detection of undefined symbols in the specified shared objects

- Bug Fixes
  - Corrected processing of header files in the /usr/include directory
  - Corrected header include lists
  - Corrected makefiles
  - Corrected template for the collection of specialized types
  - Corrected processing of tab characters in the descriptor
  - Corrected usage of the out-parameters and return values
  - Corrected alignment and highlighting of specialized type code
  - Corrected parameters provided to X virtual frame buffer (xvfb)

## Version 1.4 (February 04, 2010)

Api-sanity-autotest-1.4.tar.gz
This is generally a bug fix release.

- New Features
  - Automated detecting of header file dependencies. Now providing of <include_paths> section in the descriptor is not necessary
  - Added template for the collection of specialized types (-specialized-type-template option)
  - Optimized execution time

- Bug Fixes
  - Corrected makefiles
  - Corrected descriptor template
  - More appropriate usage of the out-parameters
  - Corrected header include lists
  - Corrected classes hierarchy in C

## Version 1.3 (January 29, 2010)

Api-sanity-autotest-1.3.tar.gz

- New Features
  - Added -t2c option for generating tests in the Template2Code format
  - Improved overall tests structure. Removed unnecessary code. More appropriate usage of the out-parameters. Improved makefiles code
  - Added -without-shared-objects option for running the tool without providing of shared objects. It is necessary if the library contains in-line functions only and has no shared objects
  - Added <libgroup> section in the descriptor for dividing the library into groups
  - Added -isolated option to restrict functions usage in the tests by the lists specified by the -functions-list option or by the group devision in the descriptor
  - Tool has been ported to the Cygwin
  - Using of constants (defines) for initializing parameters
  - Added printing of incorrect return/parameter values to the report (intrinsic types only)
  - Added -clean option for cleaning the tests

- Bug Fixes
  - Corrected help message
  - Corrected highlighting of the code defines in the reports
  - Corrected type conversion algorithms
  - Corrected variables reusing for initializing parameters
  - Corrected variables naming in the code of specialized types
  - Corrected reusing of specialized type attributes for the out-parameters
  - Corrected statements (REQ, REQva) for checking requirements in the generated code
  - Corrected selection of functions to call for initializing parameters
  - Corrected headers include list at the beginning of tests

## Version 1.2 (December 22, 2009)

Api-sanity-autotest-1.2.tar.gz

- New Features
  - New sections "Warnings" and "Unexpected Output" in the report
  - Random test generation mode improved (random selecting of enumeration members and values for intrinsic types)
  - More accurate selecting of functions to call for initializing parameters of other functions
  - Added names to unnamed parameters by analyzing type names
  - Initialization of subclasses in C (if there are no other ways to initialize structure type)
  - More accurate initializing of array types
  - More accurate selecting of enumeration members
  - More accurate type conversion algorithms
  - Test data improved (added *.xml and *.dtd files)
  - Values set for intrinsic types extended

- Bug Fixes
  - Corrected highlighting of variables in the report
  - Corrected parsing of <interfaces> section (in <associating> section) in the collection of specialized types

## Version 1.1 (December 04, 2009)

Api-sanity-autotest-1.1.tar.gz

- New Features
  - Inserting elements in the lists (C++ only)
  - More accurate selecting of functions to call for initializing parameters
  - More information about detected errors in the report
  - New help message
  - Additional warnings

- Bug Fixes
  - Corrected initialization of typedefs to intrinsic types
  - Corrected headers include list at the beginning of tests
  - Corrected sorting of detected problems in the report

## Version 1.0 (November 30, 2009)

Api-sanity-autotest-1.0.tar.gz
Initial prototype of the tool.