Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
performance
PERForate
Commits
b2f4f08c
Commit
b2f4f08c
authored
Apr 06, 2020
by
Pádraig Ó Conbhuí
Browse files
Add Catch2 v2.11.3 to external/catch2
parents
1e63e69a
da3ad944
Changes
384
Hide whitespace changes
Inline
Side-by-side
external/catch2/.conan/build.py
0 → 100644
View file @
b2f4f08c
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import
os
import
re
from
cpt.packager
import
ConanMultiPackager
from
cpt.ci_manager
import
CIManager
from
cpt.printer
import
Printer
class
BuilderSettings
(
object
):
@
property
def
username
(
self
):
""" Set catchorg as package's owner
"""
return
os
.
getenv
(
"CONAN_USERNAME"
,
"catchorg"
)
@
property
def
login_username
(
self
):
""" Set Bintray login username
"""
return
os
.
getenv
(
"CONAN_LOGIN_USERNAME"
,
"horenmar"
)
@
property
def
upload
(
self
):
""" Set Catch2 repository to be used on upload.
The upload server address could be customized by env var
CONAN_UPLOAD. If not defined, the method will check the branch name.
Only master or CONAN_STABLE_BRANCH_PATTERN will be accepted.
The master branch will be pushed to testing channel, because it does
not match the stable pattern. Otherwise it will upload to stable
channel.
"""
return
os
.
getenv
(
"CONAN_UPLOAD"
,
"https://api.bintray.com/conan/catchorg/Catch2"
)
@
property
def
upload_only_when_stable
(
self
):
""" Force to upload when running over tag branch
"""
return
os
.
getenv
(
"CONAN_UPLOAD_ONLY_WHEN_STABLE"
,
"True"
).
lower
()
in
[
"true"
,
"1"
,
"yes"
]
@
property
def
stable_branch_pattern
(
self
):
""" Only upload the package the branch name is like a tag
"""
return
os
.
getenv
(
"CONAN_STABLE_BRANCH_PATTERN"
,
r
"v\d+\.\d+\.\d+"
)
@
property
def
reference
(
self
):
""" Read project version from branch create Conan reference
"""
return
os
.
getenv
(
"CONAN_REFERENCE"
,
"Catch2/{}"
.
format
(
self
.
_version
))
@
property
def
channel
(
self
):
""" Default Conan package channel when not stable
"""
return
os
.
getenv
(
"CONAN_CHANNEL"
,
"testing"
)
@
property
def
_version
(
self
):
""" Get version name from cmake file
"""
pattern
=
re
.
compile
(
r
"project\(Catch2 LANGUAGES CXX VERSION (\d+\.\d+\.\d+)\)"
)
version
=
"latest"
with
open
(
"CMakeLists.txt"
)
as
file
:
for
line
in
file
:
result
=
pattern
.
search
(
line
)
if
result
:
version
=
result
.
group
(
1
)
return
version
@
property
def
_branch
(
self
):
""" Get branch name from CI manager
"""
printer
=
Printer
(
None
)
ci_manager
=
CIManager
(
printer
)
return
ci_manager
.
get_branch
()
if
__name__
==
"__main__"
:
settings
=
BuilderSettings
()
builder
=
ConanMultiPackager
(
reference
=
settings
.
reference
,
channel
=
settings
.
channel
,
upload
=
settings
.
upload
,
upload_only_when_stable
=
settings
.
upload_only_when_stable
,
stable_branch_pattern
=
settings
.
stable_branch_pattern
,
login_username
=
settings
.
login_username
,
username
=
settings
.
username
,
test_folder
=
os
.
path
.
join
(
".conan"
,
"test_package"
))
builder
.
add
()
builder
.
run
()
external/catch2/.conan/test_package/CMakeLists.txt
0 → 100644
View file @
b2f4f08c
cmake_minimum_required
(
VERSION 3.2.0
)
project
(
test_package CXX
)
include
(
${
CMAKE_BINARY_DIR
}
/conanbuildinfo.cmake
)
conan_basic_setup
(
TARGETS
)
find_package
(
Catch2 REQUIRED CONFIG
)
add_executable
(
${
PROJECT_NAME
}
test_package.cpp
)
target_link_libraries
(
${
PROJECT_NAME
}
CONAN_PKG::Catch2
)
set_target_properties
(
${
PROJECT_NAME
}
PROPERTIES CXX_STANDARD 11
)
external/catch2/.conan/test_package/conanfile.py
0 → 100644
View file @
b2f4f08c
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from
conans
import
ConanFile
,
CMake
import
os
class
TestPackageConan
(
ConanFile
):
settings
=
"os"
,
"compiler"
,
"build_type"
,
"arch"
generators
=
"cmake"
def
build
(
self
):
cmake
=
CMake
(
self
)
cmake
.
configure
()
cmake
.
build
()
def
test
(
self
):
assert
os
.
path
.
isfile
(
os
.
path
.
join
(
self
.
deps_cpp_info
[
"Catch2"
].
rootpath
,
"licenses"
,
"LICENSE.txt"
))
bin_path
=
os
.
path
.
join
(
"bin"
,
"test_package"
)
self
.
run
(
"%s -s"
%
bin_path
,
run_environment
=
True
)
external/catch2/.conan/test_package/test_package.cpp
0 → 100644
View file @
b2f4f08c
#define CATCH_CONFIG_MAIN
#include
<catch2/catch.hpp>
int
Factorial
(
int
number
)
{
return
number
<=
1
?
1
:
Factorial
(
number
-
1
)
*
number
;
}
TEST_CASE
(
"Factorial Tests"
,
"[single-file]"
)
{
REQUIRE
(
Factorial
(
0
)
==
1
);
REQUIRE
(
Factorial
(
1
)
==
1
);
REQUIRE
(
Factorial
(
2
)
==
2
);
REQUIRE
(
Factorial
(
3
)
==
6
);
REQUIRE
(
Factorial
(
10
)
==
3628800
);
}
\ No newline at end of file
external/catch2/.gitattributes
0 → 100644
View file @
b2f4f08c
# This sets the default behaviour, overriding core.autocrlf
* text=auto
# All source files should have unix line-endings in the repository,
# but convert to native line-endings on checkout
*.cpp text
*.h text
*.hpp text
# Windows specific files should retain windows line-endings
*.sln text eol=crlf
# Keep executable scripts with LFs so they can be run after being
# checked out on Windows
*.py text eol=lf
# Keep the single include header with LFs to make sure it is uploaded,
# hashed etc with LF
single_include/**/*.hpp eol=lf
# Also keep the LICENCE file with LFs for the same reason
LICENCE.txt eol=lf
external/catch2/.github/FUNDING.yml
0 → 100644
View file @
b2f4f08c
patreon
:
horenmar
external/catch2/.github/ISSUE_TEMPLATE/bug_report.md
0 → 100644
View file @
b2f4f08c
---
name
:
Bug report
about
:
Create an issue that documents a bug
title
:
'
'
labels
:
'
'
assignees
:
'
'
---
**Describe the bug**
A clear and concise description of what the bug is.
**Expected behavior**
A clear and concise description of what you expected to happen.
**Reproduction steps**
Steps to reproduce the bug.
<!-- Usually this means a small and self-contained piece of code that uses Catch and specifying compiler flags if relevant. -->
**Platform information:**
<!-- Fill in any extra information that might be important for your issue. -->
-
OS:
**Windows NT**
-
Compiler+version:
**GCC v2.9.5**
-
Catch version:
**v1.2.3**
**Additional context**
Add any other context about the problem here.
external/catch2/.github/ISSUE_TEMPLATE/feature_request.md
0 → 100644
View file @
b2f4f08c
---
name
:
Feature request
about
:
Create an issue that requests a feature or other improvement
title
:
'
'
labels
:
'
'
assignees
:
'
'
---
**Description**
Describe the feature/change you request and why do you want it.
**Additional context**
Add any other context or screenshots about the feature request here.
external/catch2/.github/pull_request_template.md
0 → 100644
View file @
b2f4f08c
<!--
Please do not submit pull requests changing the
`version.hpp`
or the single-include
`catch.hpp`
file, these are changed
only when a new release is made.
Before submitting a PR you should probably read the contributor documentation
at docs/contributing.md. It will tell you how to properly test your changes.
-->
## Description
<!--
Describe the what and the why of your pull request. Remember that these two
are usually a bit different. As an example, if you have made various changes
to decrease the number of new strings allocated, that's what. The why probably
was that you have a large set of tests and found that this speeds them up.
-->
## GitHub Issues
<!--
If this PR was motivated by some existing issues, reference them here.
If it is a simple bug-fix, please also add a line like 'Closes #123'
to your commit message, so that it is automatically closed.
If it is not, don't, as it might take several iterations for a feature
to be done properly. If in doubt, leave it open and reference it in the
PR itself, so that maintainers can decide.
-->
external/catch2/.gitignore
0 → 100644
View file @
b2f4f08c
*.build
*.pbxuser
*.mode1v3
*.ncb
*.suo
Debug
Release
*.user
*.xcuserstate
.DS_Store
xcuserdata
CatchSelfTest.xcscheme
Breakpoints.xcbkptlist
projects/VS2010/TestCatch/_UpgradeReport_Files/
projects/VS2010/TestCatch/TestCatch/TestCatch.vcxproj.filters
projects/VisualStudio/TestCatch/UpgradeLog.XML
projects/CMake/.idea
projects/CMake/cmake-build-debug
UpgradeLog.XML
Resources/DWARF
projects/Generated
*.pyc
DerivedData
*.xccheckout
Build
.idea
.vs
cmake-build-*
benchmark-dir
.conan/test_package/build
external/catch2/.travis.yml
0 → 100644
View file @
b2f4f08c
language
:
cpp
branches
:
except
:
-
/dev-appveyor.*/
common_sources
:
&all_sources
-
ubuntu-toolchain-r-test
-
llvm-toolchain-trusty
-
llvm-toolchain-trusty-3.9
-
llvm-toolchain-trusty-4.0
-
llvm-toolchain-xenial-5.0
-
llvm-toolchain-xenial-6.0
matrix
:
include
:
# 1/ Linux Clang Builds
-
os
:
linux
compiler
:
clang
addons
:
apt
:
sources
:
*all_sources
packages
:
[
'
clang-3.5'
]
env
:
COMPILER='clang++-3.5'
-
os
:
linux
compiler
:
clang
addons
:
apt
:
sources
:
*all_sources
packages
:
[
'
clang-3.6'
]
env
:
COMPILER='clang++-3.6'
# Clang 3.7 is intentionally skipped as we cannot get it easily on
# TravisCI container
-
os
:
linux
compiler
:
clang
addons
:
apt
:
sources
:
*all_sources
packages
:
[
'
lcov'
,
'
clang-3.8'
]
env
:
COMPILER='clang++-3.8'
-
os
:
linux
compiler
:
clang
addons
:
apt
:
sources
:
*all_sources
packages
:
[
'
clang-3.9'
]
env
:
COMPILER='clang++-3.9'
-
os
:
linux
compiler
:
clang
addons
:
apt
:
sources
:
*all_sources
packages
:
[
'
clang-4.0'
]
env
:
COMPILER='clang++-4.0'
-
os
:
linux
dist
:
xenial
compiler
:
clang
addons
:
apt
:
sources
:
*all_sources
packages
:
[
'
clang-5.0'
]
env
:
COMPILER='clang++-5.0'
-
os
:
linux
dist
:
xenial
compiler
:
clang
addons
:
apt
:
sources
:
*all_sources
packages
:
[
'
clang-6.0'
]
env
:
COMPILER='clang++-6.0'
# 2/ Linux GCC Builds
-
os
:
linux
compiler
:
gcc
addons
:
apt
:
sources
:
*all_sources
packages
:
[
'
g++-4.8'
]
env
:
COMPILER='g++-4.8'
-
os
:
linux
compiler
:
gcc
addons
:
apt
:
sources
:
*all_sources
packages
:
[
'
g++-4.9'
]
env
:
COMPILER='g++-4.9'
-
os
:
linux
compiler
:
gcc
addons
:
apt
:
sources
:
*all_sources
packages
:
[
'
g++-5'
]
env
:
COMPILER='g++-5'
-
os
:
linux
compiler
:
gcc
addons
:
&gcc6
apt
:
sources
:
*all_sources
packages
:
[
'
g++-6'
]
env
:
COMPILER='g++-6'
-
os
:
linux
compiler
:
gcc
addons
:
&gcc7
apt
:
sources
:
*all_sources
packages
:
[
'
g++-7'
]
env
:
COMPILER='g++-7'
-
os
:
linux
compiler
:
gcc
addons
:
&gcc8
apt
:
sources
:
*all_sources
packages
:
[
'
g++-8'
]
env
:
COMPILER='g++-8'
# 3b/ Linux C++14 Clang builds
# Note that we need newer libstdc++ for C++14 support
-
os
:
linux
compiler
:
clang
addons
:
apt
:
packages
:
[
'
clang-3.8'
,
'
libstdc++-6-dev'
]
sources
:
-
ubuntu-toolchain-r-test
-
llvm-toolchain-trusty
env
:
COMPILER='clang++-3.8' CPP14=1
-
os
:
linux
compiler
:
clang
addons
:
apt
:
sources
:
*all_sources
packages
:
[
'
clang-3.9'
,
'
libstdc++-6-dev'
]
env
:
COMPILER='clang++-3.9' CPP14=1
-
os
:
linux
compiler
:
clang
addons
:
apt
:
sources
:
*all_sources
packages
:
[
'
clang-4.0'
,
'
libstdc++-6-dev'
]
env
:
COMPILER='clang++-4.0' CPP14=1
-
os
:
linux
dist
:
xenial
compiler
:
clang
addons
:
apt
:
sources
:
*all_sources
packages
:
[
'
clang-5.0'
,
'
libstdc++-6-dev'
]
env
:
COMPILER='clang++-5.0' CPP14=1
-
os
:
linux
dist
:
xenial
compiler
:
clang
addons
:
apt
:
sources
:
*all_sources
packages
:
[
'
clang-6.0'
,
'
libstdc++-6-dev'
]
env
:
COMPILER='clang++-6.0' CPP14=1
# 4a/ Linux C++14 GCC builds
-
os
:
linux
compiler
:
gcc
addons
:
*gcc6
env
:
COMPILER='g++-6' CPP14=1
-
os
:
linux
compiler
:
gcc
addons
:
*gcc7
env
:
COMPILER='g++-7' CPP14=1
-
os
:
linux
compiler
:
gcc
addons
:
*gcc8
env
:
COMPILER='g++-8' CPP14=1
# 5/ OSX Clang Builds
-
os
:
osx
osx_image
:
xcode7.3
compiler
:
clang
env
:
COMPILER='clang++'
-
os
:
osx
osx_image
:
xcode8
compiler
:
clang
env
:
COMPILER='clang++'
-
os
:
osx
osx_image
:
xcode9
compiler
:
clang
env
:
COMPILER='clang++'
-
os
:
osx
osx_image
:
xcode9.1
compiler
:
clang
env
:
COMPILER='clang++'
-
os
:
osx
osx_image
:
xcode9.1
compiler
:
clang
env
:
COMPILER='clang++' CPP14=1
# 6/ Special builds -- examples, coverage, valgrind, etc.
-
os
:
linux
compiler
:
gcc
addons
:
apt
:
sources
:
*all_sources
packages
:
[
'
lcov'
,
'
g++-7'
]
env
:
COMPILER='g++-7' CPP14=1 EXAMPLES=1 COVERAGE=1 EXTRAS=1
-
os
:
linux
compiler
:
clang
addons
:
apt
:
packages
:
[
'
clang-3.8'
,
'
lcov'
]
sources
:
-
ubuntu-toolchain-r-test
-
llvm-toolchain-trusty
env
:
COMPILER='clang++-3.8' EXAMPLES=1 COVERAGE=1 EXTRAS=1
-
os
:
linux
compiler
:
gcc
addons
:
apt
:
sources
:
*all_sources
packages
:
[
'
valgrind'
,
'
lcov'
,
'
g++-7'
]
env
:
COMPILER='g++-7' CPP14=1 VALGRIND=1
-
os
:
osx
osx_image
:
xcode9.1
compiler
:
clang
env
:
COMPILER='clang++' CPP14=1 EXAMPLES=1 COVERAGE=1 EXTRAS=1
# 7/ C++17 builds
-
os
:
linux
compiler
:
gcc
addons
:
*gcc7
env
:
COMPILER='g++-7' CPP17=1
-
os
:
linux
compiler
:
gcc
addons
:
*gcc7
env
:
COMPILER='g++-7' EXAMPLES=1 COVERAGE=1 EXTRAS=1 CPP17=1
-
os
:
linux
dist
:
xenial
compiler
:
clang
addons
:
apt
:
sources
:
*all_sources
packages
:
[
'
clang-6.0'
,
'
libstdc++-8-dev'
]
env
:
COMPILER='clang++-6.0' CPP17=1
-
os
:
linux
dist
:
xenial
compiler
:
clang
addons
:
apt
:
sources
:
*all_sources
packages
:
[
'
clang-6.0'
,
'
libstdc++-8-dev'
]
env
:
COMPILER='clang++-6.0' CPP17=1 EXAMPLES=1 COVERAGE=1 EXTRAS=1
# 8/ Conan
-
language
:
python
python
:
-
"
3.7"
dist
:
xenial
install
:
-
pip install conan-package-tools
env
:
-
CONAN_GCC_VERSIONS=8
-
CONAN_DOCKER_IMAGE=conanio/gcc8
script
:
-
python .conan/build.py
install
:
-
DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
-
mkdir -p ${DEPS_DIR} && cd ${DEPS_DIR}
-
|
if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
CMAKE_URL="http://cmake.org/files/v3.8/cmake-3.8.2-Linux-x86_64.tar.gz"
mkdir cmake && travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake
export PATH=${DEPS_DIR}/cmake/bin:${PATH}
elif [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
which cmake || brew install cmake;
fi
before_script
:
-
export CXX=${COMPILER}
-
cd ${TRAVIS_BUILD_DIR}
# Regenerate single header file, so it is tested in the examples...
-
python scripts/generateSingleHeader.py
-
|
if [[ ${CPP17} -eq 1 ]]; then
export CPP_STANDARD=17
elif [[ ${CPP14} -eq 1 ]]; then
export CPP_STANDARD=14
else
export CPP_STANDARD=11
fi
# Use Debug builds for running Valgrind and building examples
-
cmake -H. -BBuild-Debug -DCMAKE_BUILD_TYPE=Debug -Wdev -DCATCH_USE_VALGRIND=${VALGRIND} -DCATCH_BUILD_EXAMPLES=${EXAMPLES} -DCATCH_ENABLE_COVERAGE=${COVERAGE} -DCATCH_BUILD_EXTRA_TESTS=${EXTRAS} -DCMAKE_CXX_STANDARD=${CPP_STANDARD} -DCMAKE_CXX_STANDARD_REQUIRED=On -DCMAKE_CXX_EXTENSIONS=OFF
# Don't bother with release build for coverage build
-
cmake -H. -BBuild-Release -DCMAKE_BUILD_TYPE=Release -Wdev -DCMAKE_CXX_STANDARD=${CPP_STANDARD} -DCMAKE_CXX_STANDARD_REQUIRED=On -DCMAKE_CXX_EXTENSIONS=OFF
script
:
-
cd Build-Debug
-
make -j
2
-
CTEST_OUTPUT_ON_FAILURE=1 ctest -j
2
# Coverage collection does not work for OS X atm
-
|
if [[ "${TRAVIS_OS_NAME}" == "linux" ]] && [[ "${COVERAGE}" == "1" ]]; then
make gcov
make lcov
bash <(curl -s https://codecov.io/bash) -X gcov || echo "Codecov did not collect coverage reports"
fi
-
# Go to release build
-
cd ../Build-Release
-
make -j
2
-
CTEST_OUTPUT_ON_FAILURE=1 ctest -j
2
external/catch2/CMake/Catch2Config.cmake.in
0 → 100644
View file @
b2f4f08c
@PACKAGE_INIT@