Как узнать, какая версия Gtest используется в проекте, с которым я работаю? Я работаю над платформой Linux.
Установите самую надежную версию
Ответ 1
Исходный код библиотек libgtest
или libgtest_main
не содержит специальных функций, которые позволяют распознавать их версию (что-то вроде GetGTestVersion ()
или что-то еще).
Также заголовочные файлы не имеют определенных идентификаторов (что-то вроде GTEST_VERSION
или что-то еще).
Таким образом, вы не можете проверить версию Google C++ Testing Framework
во время выполнения внутри кода пользователя.
Но сопровождающие предоставляют как часть специальной script scripts/gtest-conf, которая:
...
provides access to the necessary compile and linking
flags to connect with Google C++ Testing Framework, both in a build prior to
installation, and on the system proper after installation.
...
Помимо всего прочего, этот script имеет несколько опций, связанных с версией:
...
Installation Queries:
...
--version the version of the Google Test installation
Version Queries:
--min-version=VERSION return 0 if the version is at least VERSION
--exact-version=VERSION return 0 if the version is exactly VERSION
--max-version=VERSION return 0 if the version is at most VERSION
...
script также содержит пример использования:
Examples:
gtest-config --min-version=1.0 || echo "Insufficient Google Test version."
...
Это означает, что пользователь может тестировать версию фреймворка во время сборки с помощью script gtest-config
.
Примечание
script gtest-config
получить фактическую версию структуры во время конфигурации через переменные, объявленные в configure.ac.
...
AC_INIT([Google C++ Testing Framework],
[1.7.0],
[[email protected]],
[gtest])
...
И после вызова autoconf
в файле configure
заполнены следующие идентификаторы:
...
# Identity of this package.
PACKAGE_NAME='Google C++ Testing Framework'
PACKAGE_TARNAME='gtest'
PACKAGE_VERSION='1.7.0'
PACKAGE_STRING='Google C++ Testing Framework 1.7.0'
PACKAGE_BUGREPORT='[email protected]'
PACKAGE_URL=''
...
# Define the identity of the package.
PACKAGE='gtest'
VERSION='1.7.0'
...
Пока структура, скомпилированная с опцией AC_CONFIG_HEADERS, содержит идентификаторы, хранящиеся в файле build-aux/config.h
и доступные пользователю во время компиляции.
Ответ 2
Файл CHANGES в домашнем каталоге gtest содержит номер версии gtest.
Ответ 3
Если вы клонировали официальный репозиторий, вы можете проверить последний коммит Git в каталоге Google Test (например, используя git log -n 1
или git rev-parse HEAD
) и сравнить его со списком выпущенных версий.
В моем случае хеш коммита - ec44c6c1675c25b9827aacd08c02433cccde7780, что соответствует версии 1.8.0.