Binary compatibility report for the gmock library between 1.4.0 and 1.5.0 versions on x86
Test Info
Library Name | gmock |
Version #1 | 1.4.0 |
Version #2 | 1.5.0 |
CPU Architecture | x86 |
GCC Version | 4.5 |
Test Results
Total Header Files | 19 |
Total Shared Libraries | 2 |
Total Symbols / Types | 68 / 86 |
Verdict | Incompatible (36.76%) |
---|
Problem Summary
| Severity | Count |
---|
Added Symbols | - | 4 |
Removed Symbols | High | 4 |
Problems with Data Types | High | 1 |
Medium | 2 |
Low | 3 |
Problems with Symbols | High | 2 |
Medium | 2 |
Low | 0 |
Problems with Constants | Low | 0 |
Added Symbols (4)
gmock-spec-builders.h,
libgmock.so.0.0.0
namespace testing::internal
ExpectationBase::ExpectationBase [in-charge] ( char const* file, int line, string const& source_text )
[ symbol: _ZN7testing8internal15ExpectationBaseC1EPKciRKSs ]
ExpectationBase::ExpectationBase [not-in-charge] ( char const* file, int line, string const& source_text )
[ symbol: _ZN7testing8internal15ExpectationBaseC2EPKciRKSs ]
gtest-port.h,
libgmock.so.0.0.0
namespace testing::internal
ThreadLocalValueHolderBase::~ThreadLocalValueHolderBase [in-charge-deleting] ( )
[ symbol: _ZN7testing8internal26ThreadLocalValueHolderBaseD0Ev ]
ThreadLocalValueHolderBase::~ThreadLocalValueHolderBase [in-charge] ( )
[ symbol: _ZN7testing8internal26ThreadLocalValueHolderBaseD1Ev ]
to the top
Removed Symbols (4)
gmock-matchers.h,
libgmock.so.0.0.0
namespace testing
MatcherInterface<std::string const&>::ExplainMatchResultTo ( std::basic_string<char>const& p1, std::ostream* p2 ) const
[ symbol: _ZNK7testing16MatcherInterfaceIRKSsE20ExplainMatchResultToES2_PSo ]
MatcherInterface<std::string>::ExplainMatchResultTo ( std::basic_string<char>& p1, std::ostream* p2 ) const
[ symbol: _ZNK7testing16MatcherInterfaceISsE20ExplainMatchResultToESsPSo ]
gmock-spec-builders.h,
libgmock.so.0.0.0
namespace testing::internal
ExpectationBase::ExpectationBase [in-charge] ( char const* file, int line )
[ symbol: _ZN7testing8internal15ExpectationBaseC1EPKci ]
ExpectationBase::ExpectationBase [not-in-charge] ( char const* file, int line )
[ symbol: _ZN7testing8internal15ExpectationBaseC2EPKci ]
to the top
Problems with Data Types, High Severity (1)
gmock-spec-builders.h
namespace testing::internal
[+] class ExpectationBase (1)
| Change |
Effect |
1 | Size of this class has been increased from 56 bytes to 60 bytes. | 1) An object of this class can be allocated by the applications and old size will be hardcoded at the compile time. Call of any exported constructor will break the memory of neighbouring objects on the stack or heap. 2) The memory layout and size of subclasses will be changed.. |
[+] affected symbols (5)
ExpectationBase::AllPrerequisitesAreSatisfied ( ) constThis method is from 'ExpectationBase' class.
ExpectationBase::FindUnsatisfiedPrerequisites ( testing::ExpectationSet* result ) constThis method is from 'ExpectationBase' class.
ExpectationBase::RetireAllPreRequisites ( )This method is from 'ExpectationBase' class.
ExpectationBase::SpecifyCardinality ( testing::Cardinality const& cardinality )This method is from 'ExpectationBase' class.
ExpectationBase::~ExpectationBase [in-charge] ( )This method is from 'ExpectationBase' class.
to the top
Problems with Symbols, High Severity (2)
gmock-spec-builders.h,
libgmock.so.0.0.0
namespace testing::internal
[+] ExpectationBase::ExpectationBase [not-in-charge] ( char const* file, int line ) (1)
changed to:ExpectationBase::ExpectationBase [not-in-charge] ( char const* file, int line, string const& source_text )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN7testing8internal15ExpectationBaseC2EPKci to _ZN7testing8internal15ExpectationBaseC2EPKciRKSs. This may cause "undefined reference" linker error in old client applications. |
[+] ExpectationBase::ExpectationBase [in-charge] ( char const* file, int line ) (1)
changed to:ExpectationBase::ExpectationBase [in-charge] ( char const* file, int line, string const& source_text )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN7testing8internal15ExpectationBaseC1EPKci to _ZN7testing8internal15ExpectationBaseC1EPKciRKSs. This may cause "undefined reference" linker error in old client applications. |
to the top
Problems with Data Types, Medium Severity (2)
gmock-matchers.h
namespace testing
[+] class MatcherInterface<std::string const&> (1)
| Change |
Effect |
1 | Pure virtual method MatcherInterface<std::string const&>::MatchAndExplain ( std::basic_string<char>const& x, MatchResultListener* listener ) const has been added to this class instead of MatcherInterface<std::string const&>::Matches ( std::basic_string<char>const& x ) const. | Applications will provide an older method to the library instead of expected newely added virtual method. It may result in crash or incorrect behavior of applications. |
[+] affected symbols (3)
MatcherInterface<std::string const&>::DescribeNegationTo ( std::ostream* os ) constCall of this method may result in crash or incorrect behavior of applications because some pure virtual method in v-table has been replaced by other.
MatcherInterface<std::string const&>::ExplainMatchResultTo ( std::basic_string<char>const& p1, std::ostream* p2 ) constCall of this method may result in crash or incorrect behavior of applications because some pure virtual method in v-table has been replaced by other.
MatcherInterface<std::string const&>::~MatcherInterface [in-charge] ( )Call of this method may result in crash or incorrect behavior of applications because some pure virtual method in v-table has been replaced by other.
[+] class MatcherInterface<std::string> (1)
| Change |
Effect |
1 | Pure virtual method MatcherInterface<std::string>::MatchAndExplain ( std::basic_string<char> x, MatchResultListener* listener ) const has been added to this class instead of MatcherInterface<std::string>::Matches ( std::basic_string<char> x ) const. | Applications will provide an older method to the library instead of expected newely added virtual method. It may result in crash or incorrect behavior of applications. |
[+] affected symbols (3)
MatcherInterface<std::string>::DescribeNegationTo ( std::ostream* os ) constCall of this method may result in crash or incorrect behavior of applications because some pure virtual method in v-table has been replaced by other.
MatcherInterface<std::string>::ExplainMatchResultTo ( std::basic_string<char>& p1, std::ostream* p2 ) constCall of this method may result in crash or incorrect behavior of applications because some pure virtual method in v-table has been replaced by other.
MatcherInterface<std::string>::~MatcherInterface [in-charge] ( )Call of this method may result in crash or incorrect behavior of applications because some pure virtual method in v-table has been replaced by other.
to the top
Problems with Symbols, Medium Severity (2)
gmock-spec-builders.h,
libgmock.so.0.0.0
namespace testing::internal
[+] g_gmock_implicit_sequence [data] (1)
[ symbol: _ZN7testing8internal25g_gmock_implicit_sequenceE ]
| Change | Effect |
---|
1 | Size of this global data has been changed from 4 bytes to 8 bytes. | Applications will obtain a different value and execution may change. |
[+] g_gmock_mutex [data] (1)
[ symbol: _ZN7testing8internal13g_gmock_mutexE ]
| Change | Effect |
---|
1 | Type of this global data has been changed from Mutex (1 byte) to MutexBase (28 bytes). | Applications will obtain a different value and execution may change. |
to the top
Problems with Data Types, Low Severity (3)
gmock-spec-builders.h
namespace testing::internal
[+] class ExpectationBase (1)
| Change |
Effect |
1 | Field source_text_ has been added to this type. | Size of the inclusive type has been changed. ATTENTION: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. |
[+] affected symbols (5)
ExpectationBase::AllPrerequisitesAreSatisfied ( ) constThis method is from 'ExpectationBase' class.
ExpectationBase::FindUnsatisfiedPrerequisites ( testing::ExpectationSet* result ) constThis method is from 'ExpectationBase' class.
ExpectationBase::RetireAllPreRequisites ( )This method is from 'ExpectationBase' class.
ExpectationBase::SpecifyCardinality ( testing::Cardinality const& cardinality )This method is from 'ExpectationBase' class.
ExpectationBase::~ExpectationBase [in-charge] ( )This method is from 'ExpectationBase' class.
gtest-port.h
namespace testing::internal
[+] class ThreadLocal<testing::Sequence*> (2)
| Change |
Effect |
1 | Field default_ has been added to this type. | Size of the inclusive type has been changed. ATTENTION: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. |
2 | Size of this type has been changed from 4 bytes to 8 bytes. | The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. |
[+] affected symbols (1)
g_gmock_implicit_sequence [data]Return value has type 'ThreadLocal<testing::Sequence*>'.
to the top
Header Files (19)
gmock-actions.h
gmock-cardinalities.h
gmock-generated-actions.h
gmock-generated-function-mockers.h
gmock-generated-matchers.h
gmock-generated-nice-strict.h
gmock-matchers.h
gmock-more-actions.h
gmock-printers.h
gmock-spec-builders.h
gmock.h
gtest-death-test.h
gtest-message.h
gtest-param-test.h
gtest-spi.h
gtest-test-part.h
gtest-typed-test.h
gtest.h
gtest_prod.h
to the top
Shared Libraries (2)
libgmock.so.0.0.0
libgmock_main.so.0.0.0
to the top