Binary compatibility report for the gmock library between 1.1.0 and 1.4.0 versions on x86
Test Info
Library Name | gmock |
Version #1 | 1.1.0 |
Version #2 | 1.4.0 |
CPU Architecture | x86 |
GCC Version | 4.5 |
Test Results
Total Header Files | 18 |
Total Shared Libraries | 2 |
Total Symbols / Types | 59 / 71 |
Verdict | Incompatible (23.73%) |
---|
Problem Summary
| Severity | Count |
---|
Added Symbols | - | 10 |
Removed Symbols | High | 2 |
Problems with Data Types | High | 1 |
Medium | 0 |
Low | 2 |
Problems with Symbols | High | 2 |
Medium | 1 |
Low | 0 |
Problems with Constants | Low | 0 |
Added Symbols (10)
gmock-internal-utils.h,
libgmock.so.0.0.0
namespace testing::internal
LogIsVisible ( LogSeverity severity )
[ symbol: _ZN7testing8internal12LogIsVisibleENS0_11LogSeverityE ]
gmock-printers.h,
libgmock.so.0.0.0
namespace testing::internal
UniversalPrintArray ( char const* begin, size_t len, std::ostream* os )
[ symbol: _ZN7testing8internal19UniversalPrintArrayEPKcjPSo ]
gmock-spec-builders.h,
libgmock.so.0.0.0
namespace testing
Expectation::Expectation [in-charge] ( )
[ symbol: _ZN7testing11ExpectationC1Ev ]
Expectation::Expectation [not-in-charge] ( )
[ symbol: _ZN7testing11ExpectationC2Ev ]
Expectation::~Expectation [in-charge] ( )
[ symbol: _ZN7testing11ExpectationD1Ev ]
Expectation::~Expectation [not-in-charge] ( )
[ symbol: _ZN7testing11ExpectationD2Ev ]
Mock::AllowLeak ( void const* mock_obj ) [static]
[ symbol: _ZN7testing4Mock9AllowLeakEPKv ]
Sequence::AddExpectation ( Expectation const& expectation ) const
[ symbol: _ZNK7testing8Sequence14AddExpectationERKNS_11ExpectationE ]
namespace testing::internal
ExpectationBase::FindUnsatisfiedPrerequisites ( testing::ExpectationSet* result ) const
[ symbol: _ZNK7testing8internal15ExpectationBase28FindUnsatisfiedPrerequisitesEPNS_14ExpectationSetE ]
gmock.h,
libgmock.so.0.0.0
namespace testing
FLAGS_gmock_catch_leaked_mocks [data]
[ symbol: _ZN7testing30FLAGS_gmock_catch_leaked_mocksE ]
to the top
Removed Symbols (2)
gmock-spec-builders.h,
libgmock.so.0.0.0
namespace testing
Sequence::AddExpectation ( internal::linked_ptr<internal::ExpectationBase>const& expectation ) const
[ symbol: _ZNK7testing8Sequence14AddExpectationERKNS_8internal10linked_ptrINS1_15ExpectationBaseEEE ]
namespace testing::internal
ExpectationBase::FindUnsatisfiedPrerequisites ( ExpectationBase::ExpectationBaseSet* result ) const
[ symbol: _ZNK7testing8internal15ExpectationBase28FindUnsatisfiedPrerequisitesEPSt3setINS0_10linked_ptrIS1_EENS0_17LinkedPtrLessThanIS1_EESaIS4_EE ]
to the top
Problems with Data Types, High Severity (1)
gmock-spec-builders.h
namespace testing::internal
[+] class ExpectationBase (1)
| Change |
Effect |
1 | Pure virtual method ExpectationBase::GetHandle ( ) has been added to this class. | 1) Applications will not provide the implementation for this pure virtual method and therefore cause a crash in the library trying to call this method. 2) The layout of virtual table has been changed. Call of any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 5 entries | Virtual Table (New) - 6 entries |
---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | ExpectationBase::~ExpectationBase | ExpectationBase::~ExpectationBase |
12 | ExpectationBase::~ExpectationBase | ExpectationBase::~ExpectationBase |
16 | __cxa_pure_virtual | __cxa_pure_virtual |
20 | | __cxa_pure_virtual |
[+] affected symbols (6)
ExpectationBase::AllPrerequisitesAreSatisfied ( ) constCall of this virtual method may result in crash or incorrect behavior of applications because the layout of virtual table has been changed.
ExpectationBase::DescribeCallCountTo ( std::ostream* os ) constCall of this virtual method may result in crash or incorrect behavior of applications because the layout of virtual table has been changed.
ExpectationBase::ExpectationBase [in-charge] ( char const* file, int line )Call of this virtual method may result in crash or incorrect behavior of applications because the layout of virtual table has been changed.
ExpectationBase::RetireAllPreRequisites ( )Call of this virtual method may result in crash or incorrect behavior of applications because the layout of virtual table has been changed.
ExpectationBase::SpecifyCardinality ( testing::Cardinality const& cardinality )Call of this virtual method may result in crash or incorrect behavior of applications because the layout of virtual table has been changed.
ExpectationBase::~ExpectationBase [in-charge] ( )Call of this virtual method may result in crash or incorrect behavior of applications because the layout of virtual table has been changed.
to the top
Problems with Symbols, High Severity (2)
gmock-spec-builders.h,
libgmock.so.0.0.0
namespace testing
[+] Sequence::AddExpectation ( internal::linked_ptr<internal::ExpectationBase>const& expectation ) const (1)
changed to:Sequence::AddExpectation ( Expectation const& expectation ) const
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZNK7testing8Sequence14AddExpectationERKNS_8internal10linked_ptrINS1_15ExpectationBaseEEE to _ZNK7testing8Sequence14AddExpectationERKNS_11ExpectationE. This may cause "undefined reference" linker error in old client applications. |
namespace testing::internal
[+] ExpectationBase::FindUnsatisfiedPrerequisites ( ExpectationBase::ExpectationBaseSet* result ) const (1)
changed to:ExpectationBase::FindUnsatisfiedPrerequisites ( testing::ExpectationSet* result ) const
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZNK7testing8internal15ExpectationBase28FindUnsatisfiedPrerequisitesEPSt3setINS0_10linked_ptrIS1_EENS0_17LinkedPtrLessThanIS1_EESaIS4_EE to _ZNK7testing8internal15ExpectationBase28FindUnsatisfiedPrerequisitesEPNS_14ExpectationSetE. This may cause "undefined reference" linker error in old client applications. |
to the top
Problems with Symbols, Medium Severity (1)
gmock.h,
libgmock.so.0.0.0
namespace testing
[+] FLAGS_gmock_verbose [data] (1)
[ symbol: _ZN7testing19FLAGS_gmock_verboseE ]
| 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. |
to the top
Problems with Data Types, Low Severity (2)
gtest-string.h
namespace testing::internal
[+] class String (2)
| Change |
Effect |
1 | Field length_ 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)
testing::FLAGS_gmock_verbose [data]Return value has type 'String'.
to the top
Header Files (18)
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-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