Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
19b1e96
Fix static analysis workflow, add cppcheck + info to readme
eljonny May 1, 2024
2cd5d67
Fix catching the object by value.
eljonny May 2, 2024
c45e198
Hopefully this will fix the permissions issue.
eljonny May 2, 2024
bfba42b
Reverting the previous change, there was just a permission issue in the
eljonny May 2, 2024
6be1940
Change TestCaseName to TestObjName, extract strings
eljonny May 3, 2024
66714a7
TestObjName does not allow construction with std::string
eljonny May 3, 2024
5b938c5
Major refactor and API change
eljonny May 13, 2024
c863f4c
Refactoring, new Assertions-specific test suite
eljonny May 13, 2024
67d527a
Test coverage to get patch coverage up for the PR. Refactoring.
eljonny May 13, 2024
e639374
Version bump to 1.0.0. New test target. Install new internal headers.
eljonny May 13, 2024
d5fc6b4
Restructure and add to the CodeLite project.
eljonny May 13, 2024
0455b4a
Fix PRIVATE_HEADER property
eljonny May 13, 2024
5674ad5
Remove unnecessary include. Add necessary include.
eljonny May 13, 2024
5f5628e
Accidentally moved TestCaseTests.cpp to the wrong virtual directory
eljonny May 13, 2024
f994446
Let's try this again. Fix Assertions includes and add std usings.
eljonny May 13, 2024
6692a53
Move the operator<< definition to the source file.
eljonny May 13, 2024
df5f4ce
Forgot to include ostream.
eljonny May 13, 2024
952a980
This include should have been conditional.
eljonny May 13, 2024
a7bbf28
Fix clang error -wunused-lambda-capture
eljonny May 13, 2024
0917aad
Workaround for MSVC error C3493
eljonny May 13, 2024
739a2fa
Cleanup, TC member initialization, TC capture bools, fix message bug
eljonny Jun 22, 2024
a4a42e4
Expand TestSuite test suite
eljonny Jun 22, 2024
c88b657
Remove excess whitespace, add/fix/flesh-out docs, fix private API.
eljonny Jun 23, 2024
4fc92d0
Finish removing reliance on the parameter
eljonny Jun 23, 2024
62a4c96
Remove unused function
eljonny Jun 23, 2024
6a79874
Fix multiple frees on streams, make sure test failures aren't silenced
eljonny Jun 27, 2024
a999262
Clean up how test failures in a suite are recorded; Fixed failing tests
eljonny Jun 27, 2024
f750fef
Another windows-only segfault
eljonny Jun 27, 2024
8dc3ae4
Windows segfault - deeper debug logging
eljonny Jun 27, 2024
5a1cf0e
Windows segfault debugging - remove some dbg logging, add deeper logging
eljonny Jun 28, 2024
21dc49e
Fixed a bug where cout buffer was being used instead of clog and cerr
eljonny Jun 28, 2024
644620a
It looks like that bug fix fixed the windows segfault in the TC tests
eljonny Jun 28, 2024
186bda5
Fix Static Analysis build badge
eljonny Jun 28, 2024
4280e27
Clarify that the lib cannot be installed with vcpkg or conan yet
eljonny Jun 28, 2024
0b25504
This needed to be committed to main
eljonny Jul 2, 2024
8f91d8a
Mark constructors as explicit to conform to the C++ standard (#15)
eljonny Jul 2, 2024
4b248a8
Ignore .vs directory, should not be in version control
eljonny Aug 3, 2024
d7b7db6
Ignore new build output structure.
eljonny Aug 12, 2024
6fd733e
Sometimes it appears CMAKE_CONFIGURATION_TYPES is used instead of CMA…
eljonny Aug 12, 2024
b427302
Work in the build.
eljonny Sep 22, 2024
cef3b06
Update CMakePresets.json
eljonny Jan 24, 2025
7a53486
Remove split out preset files, they are all now in CMakePresets.json
eljonny Jan 24, 2025
193e289
Remove outputJUnitFile since VS appears to not support version 6, red…
eljonny Jan 24, 2025
c64fbe1
Update presets so all configurations are covered as buildPresets, fixes
eljonny Feb 6, 2025
f59cb35
Fixes for issues revealed through ClangCL compilation
eljonny Feb 6, 2025
bf0c3c2
Fixes for issues revealed through ClangCL compilation
eljonny Feb 6, 2025
476fdb8
Update the CMake Presets version to 6, as that is what we are intendi…
eljonny Feb 8, 2025
a56ae88
Expand/fix/refmt .clang-tidy, enhance CMakePresets, toolchains, cmake
eljonny Feb 17, 2025
9a3dd0e
Fix boolean operator casing.
eljonny Feb 17, 2025
516373f
Fix issues uncovered in finishing presets for Windows builds
eljonny Feb 17, 2025
b8a52a7
Qualify calls to std::move, remove using std::move.
eljonny Feb 17, 2025
1707379
Update codecov.yml
eljonny Feb 17, 2025
a88236a
Removed obsolete/generated CodeLite files and duplicate license file.
eljonny Feb 18, 2025
9d2cf31
Ignore the cppcheck checkers report file.
eljonny Feb 18, 2025
dd5e0fc
New CI workflows - build MSIs, added image resources, readme updates
eljonny Feb 18, 2025
fb008e3
Fix cpack not using the built configuration
eljonny Feb 18, 2025
8046671
Whoopsies
eljonny Feb 18, 2025
9107222
Created a fork of StaticAnalysis action that uses clang-19, try using it
eljonny Feb 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 12 additions & 3 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
Checks: '-*,bugprone-*,cert-*,clang-analyzer-*,cppcoreguidelines-*,hicpp-*,misc-*,modernize-*,performance-*,portability-*,readability-*'
AnalyzeTemporaryDtors: false
FormatStyle: "file"
{
"Checks": "-*,bugprone-*,cert-*,clang-analyzer-*,cppcoreguidelines-*,hicpp-*,misc-*,modernize-*,performance-*,portability-*,readability-*,-modernize-use-nullptr,-hicpp-use-nullptr",
"HeaderFilterRegex": ".*",
"ExcludeHeaderFilterRegex": "boost/.*",
"WarningsAsErrors": "*",
"FormatStyle": "none",
"SystemHeaders": false,
"ExtraArgs": [
"-Iinclude",
"-I3rdparty/include"
]
}
1 change: 1 addition & 0 deletions .github/workflows/cmake-linux-pack-nost.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ jobs:
- name: Pack
working-directory: ${{ steps.strings.outputs.build-output-dir }}
run: |
cpack -G TXZ
cpack -G DEB
cpack -G RPM

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/cmake-linux-pack-st.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ jobs:
- name: Pack
working-directory: ${{ steps.strings.outputs.build-output-dir }}
run: |
cpack -G TXZ
cpack -G DEB
cpack -G RPM

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/cmake-multi-platform-st.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ jobs:
run: |
cpack --config CPackConfig.cmake -C ${{ matrix.build_type }}
cpack --config CPackConfig.cmake -C ${{ matrix.build_type }} -G ZIP
cpack --config CPackConfig.cmake -C ${{ matrix.build_type }} -G 7Z

- name: 'Artifact Storage'
uses: actions/upload-artifact@v4
Expand Down
33 changes: 0 additions & 33 deletions .github/workflows/cmake-static-analysis-rls.yml

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: TestCPP Static analysis - Debug
name: TestCPP Static analysis - cppcheck/clang-tidy

on:
# Will run on push when merging to 'branches'. The output will be shown in the console
Expand All @@ -18,16 +18,15 @@ jobs:

steps:
- uses: actions/checkout@v4

- name: Run static analysis
uses: JacobDomagala/StaticAnalysis@master
- name: Static analysis for C++(Clang-19)/Python project
uses: eljonny/StaticAnalysis@clang-19
with:
language: c++

# Exclude any issues found in ${Project_root_dir}/lib
exclude_dir: lib
# Exclude any issues found in ${Project_root_dir}/3rdparty
exclude_dir: 3rdparty

use_cmake: true
cmake_args: -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -Wno-dev

cppcheck_args: --enable=all --suppress=missingIncludeSystem --std=c++11
cppcheck_args: --quiet --enable=all --inconclusive --suppress=missingIncludeSystem --suppress=unusedFunction --suppress=checkersReport --suppress='*:3rdparty/*' --std=c++11 --inline-suppr --force --check-level=exhaustive
66 changes: 66 additions & 0 deletions .github/workflows/cmake-windows-pack-nost.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: TestCPP CMake WIX Pack - No Stacktraces

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build:
runs-on: ${{ matrix.os }}

strategy:
# Set fail-fast to false to ensure that feedback is delivered for all matrix combinations. Consider changing this to true when your workflow is stable.
fail-fast: false

# Set up a matrix to run the following 3 configurations:
# 1. <Windows, Release, latest MSVC compiler toolchain on the default runner image, default generator>
# 2. <Linux, Release, latest GCC compiler toolchain on the default runner image, default generator>
# 3. <Linux, Release, latest Clang compiler toolchain on the default runner image, default generator>
#
# To add more build types (Release, Debug, RelWithDebInfo, etc.) customize the build_type list.
matrix:
os: [windows-latest]
build_type: [Release, Debug]
c_compiler: [cl]
include:
- os: windows-latest
c_compiler: cl
cpp_compiler: cl

steps:
- uses: actions/checkout@v4

- name: Set reusable strings
# Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file.
id: strings
shell: bash
run: |
echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"

- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: >
cmake -B ${{ steps.strings.outputs.build-output-dir }}
-DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }}
-DCMAKE_C_COMPILER=${{ matrix.c_compiler }}
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
-S ${{ github.workspace }}

- name: Build
# Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }}

- name: Pack
working-directory: ${{ steps.strings.outputs.build-output-dir }}
run: |
cpack -G WIX -C ${{ matrix.build_type }}

- name: 'Artifact Storage'
uses: actions/upload-artifact@v4
with:
name: linux-packages-${{ matrix.os }}-${{ matrix.c_compiler }}-${{ matrix.build_type }}
path: ${{ github.workspace }}/_packages/**
overwrite: true
67 changes: 67 additions & 0 deletions .github/workflows/cmake-windows-pack-st.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: TestCPP CMake WIX Pack

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build:
runs-on: ${{ matrix.os }}

strategy:
# Set fail-fast to false to ensure that feedback is delivered for all matrix combinations. Consider changing this to true when your workflow is stable.
fail-fast: false

# Set up a matrix to run the following 3 configurations:
# 1. <Windows, Release, latest MSVC compiler toolchain on the default runner image, default generator>
# 2. <Linux, Release, latest GCC compiler toolchain on the default runner image, default generator>
# 3. <Linux, Release, latest Clang compiler toolchain on the default runner image, default generator>
#
# To add more build types (Release, Debug, RelWithDebInfo, etc.) customize the build_type list.
matrix:
os: [windows-latest]
build_type: [Release, Debug]
c_compiler: [cl]
include:
- os: windows-latest
c_compiler: cl
cpp_compiler: cl

steps:
- uses: actions/checkout@v4

- name: Set reusable strings
# Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file.
id: strings
shell: bash
run: |
echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"

- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: >
cmake -B ${{ steps.strings.outputs.build-output-dir }}
-DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }}
-DCMAKE_C_COMPILER=${{ matrix.c_compiler }}
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
-DTESTCPP_STACKTRACE_ENABLED=1
-S ${{ github.workspace }}

- name: Build
# Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }}

- name: Pack
working-directory: ${{ steps.strings.outputs.build-output-dir }}
run: |
cpack -G WIX -C ${{ matrix.build_type }}

- name: 'Artifact Storage'
uses: actions/upload-artifact@v4
with:
name: linux-packages-${{ matrix.os }}-${{ matrix.c_compiler }}-${{ matrix.build_type }}
path: ${{ github.workspace }}/_packages/**
overwrite: true
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,7 @@ build-debug
build-release
_packages
test_package/build
CMakeUserPresets.json
/.vs
out/
**/cppcheck-checkers.report
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ cmake_minimum_required (VERSION 3.16)
set (PROJECT_NAME "TestCPP")
set (PROJECT_GROUP_NAME "cpptesting")

project (${PROJECT_NAME} VERSION 0.2.1 LANGUAGES CXX)
project (${PROJECT_NAME} VERSION 1.0.0 LANGUAGES CXX)

set (CMAKE_CXX_STANDARD 11)
set (CMAKE_CXX_STANDARD_REQUIRED ON)
Expand Down
Loading
Loading