Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
26 changes: 24 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,18 @@ jobs:
- name: ubu24-analyzers
os: ubuntu-24.04
coverage: true
extra_cmake_flags: -DCMAKE_BUILD_TYPE=Debug
debug: on
micromamba_shell_init: bash
- name: ubu22
os: ubuntu-22.04
micromamba_shell_init: bash
- name: ubu22-arm
os: ubuntu-22.04-arm
micromamba_shell_init: bash
- name: ubu22-arm-valgrind
os: ubuntu-22.04-arm
debug: on
micromamba_shell_init: bash
- name: osx15-x86
os: macos-15-intel
micromamba_shell_init: bash
Expand Down Expand Up @@ -77,6 +81,9 @@ jobs:
if: ${{ runner.os != 'windows' }}
run: |
os="${{ matrix.os }}"
if [[ "${{ matrix.debug }}" == "on" ]]; then
echo "BUILD_TYPE=Debug" >> $GITHUB_ENV
fi
if [[ "${os}" == "macos"* ]]; then
echo "ncpus=$(sysctl -n hw.ncpu)" >> $GITHUB_ENV
else
Expand Down Expand Up @@ -114,7 +121,7 @@ jobs:
-DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX \
-DXEUS_CPP_ENABLE_CODE_COVERAGE=${{ matrix.coverage }} \
-DCMAKE_COMPILE_WARNING_AS_ERROR=ON \
${{ matrix.extra_cmake_flags }}
-DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }}

- name: build, run C++ tests & install
if: ${{ runner.os == 'windows' }}
Expand All @@ -133,6 +140,21 @@ jobs:
cd build
make install -j ${{ env.ncpus }}
make -j ${{ env.ncpus }} check-xeus-cpp
if [[ "${{ matrix.os }}" != "macos"* && "${{ matrix.debug }}" == "on" ]]; then
sudo apt update
sudo apt install libc6-dbg
micromamba install -c conda-forge valgrind
if [[ "${{ matrix.os }}" == *"arm"* ]]; then
SUPPRESSION_FILE="${{ github.workspace }}/etc/xeus-cpp-valgrind_arm.supp"
else
SUPPRESSION_FILE="${{ github.workspace }}/etc/xeus-cpp-valgrind_x86.supp"
fi
valgrind --show-error-list=yes --track-origins=yes --error-exitcode=1 \
--show-leak-kinds=definite,possible \
--gen-suppressions=all \
--suppressions="${SUPPRESSION_FILE}" \
test/test_xeus_cpp
fi

- name: Python tests Unix Systems
if: ${{ runner.os != 'windows' }}
Expand Down
43 changes: 43 additions & 0 deletions etc/xeus-cpp-valgrind_arm.supp
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{
Suppression 1
Memcheck:Addr8
fun:__GI_memcpy
fun:_ZN4xcpp11interpreter20inspect_request_implERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii
fun:_ZN4xeus12xinterpreter15inspect_requestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii
fun:_ZN21DOCTEST_ANON_SUITE_11L20DOCTEST_ANON_FUNC_14Ev
fun:_ZN7doctest7Context3runEv
fun:main
}

{
Suppression 2
Memcheck:Addr2
fun:__GI_memcpy
fun:_ZN4xcpp11interpreter20inspect_request_implERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii
fun:_ZN4xeus12xinterpreter15inspect_requestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii
fun:_ZN21DOCTEST_ANON_SUITE_11L20DOCTEST_ANON_FUNC_14Ev
fun:_ZN7doctest7Context3runEv
fun:main
}

{
Suppression 3
Memcheck:Overlap
fun:__GI_memcpy
fun:_ZN4xcpp11interpreter20inspect_request_implERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii
fun:_ZN4xeus12xinterpreter15inspect_requestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii
fun:_ZN21DOCTEST_ANON_SUITE_11L20DOCTEST_ANON_FUNC_12Ev
fun:_ZN7doctest7Context3runEv
fun:main
}

{
Suppression 4
Memcheck:Addr1
fun:__GI_memcpy
fun:_ZN4xcpp11interpreter20inspect_request_implERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii
fun:_ZN4xeus12xinterpreter15inspect_requestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii
fun:_ZN21DOCTEST_ANON_SUITE_11L20DOCTEST_ANON_FUNC_14Ev
fun:_ZN7doctest7Context3runEv
fun:main
}
73 changes: 73 additions & 0 deletions etc/xeus-cpp-valgrind_x86.supp
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
{
Suppression 1
Memcheck:Addr8
fun:memmove
fun:copy
fun:_S_copy
fun:_S_copy_chars
fun:_S_copy_chars
fun:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPKcS4_EEEEvT_SB_St20forward_iterator_tag.isra.0
fun:basic_string<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char> > >
fun:str
fun:operator std::__cxx11::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char> > >::string_type
fun:_ZN4xcpp11interpreter20inspect_request_implERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii
fun:_ZN4xeus12xinterpreter15inspect_requestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii
fun:_ZN21DOCTEST_ANON_SUITE_11L20DOCTEST_ANON_FUNC_14Ev
fun:_ZN7doctest7Context3runEv
fun:main
}

{
Suppression 2
Memcheck:Addr2
fun:memmove
fun:copy
fun:_S_copy
fun:_S_copy_chars
fun:_S_copy_chars
fun:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPKcS4_EEEEvT_SB_St20forward_iterator_tag.isra.0
fun:basic_string<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char> > >
fun:str
fun:operator std::__cxx11::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char> > >::string_type
fun:_ZN4xcpp11interpreter20inspect_request_implERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii
fun:_ZN4xeus12xinterpreter15inspect_requestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii
fun:_ZN21DOCTEST_ANON_SUITE_11L20DOCTEST_ANON_FUNC_14Ev
fun:_ZN7doctest7Context3runEv
fun:main
}

{
Suppression 3
Memcheck:Cond
fun:_ZN4llvm5APInt7setBitsEjj
fun:_ZL16computeKnownBitsPKN4llvm5ValueERKNS_5APIntERNS_9KnownBitsEjRKNS_13SimplifyQueryE
fun:_ZN4llvm16computeKnownBitsEPKNS_5ValueERNS_9KnownBitsERKNS_10DataLayoutEjPNS_15AssumptionCacheEPKNS_11InstructionEPKNS_13DominatorTreeEb
fun:_ZNK4llvm12SelectionDAG13InferPtrAlignENS_7SDValueE
fun:_ZN12_GLOBAL__N_111DAGCombiner9visitLOADEPN4llvm6SDNodeE
fun:_ZN12_GLOBAL__N_111DAGCombiner7combineEPN4llvm6SDNodeE
fun:_ZN4llvm12SelectionDAG7CombineENS_12CombineLevelEPNS_14BatchAAResultsENS_15CodeGenOptLevelE
fun:_ZN4llvm16SelectionDAGISel17CodeGenAndEmitDAGEv
fun:_ZN4llvm16SelectionDAGISel20SelectAllBasicBlocksERKNS_8FunctionE
fun:_ZN4llvm16SelectionDAGISel20runOnMachineFunctionERNS_15MachineFunctionE
fun:_ZN4llvm22SelectionDAGISelLegacy20runOnMachineFunctionERNS_15MachineFunctionE
fun:_ZN4llvm19MachineFunctionPass13runOnFunctionERNS_8FunctionE.part.0
}

{
Suppression 4
Memcheck:Addr1
fun:memmove
fun:copy
fun:_S_copy
fun:_S_copy_chars
fun:_S_copy_chars
fun:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPKcS4_EEEEvT_SB_St20forward_iterator_tag.isra.0
fun:basic_string<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char> > >
fun:str
fun:operator std::__cxx11::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char> > >::string_type
fun:_ZN4xcpp11interpreter20inspect_request_implERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii
fun:_ZN4xeus12xinterpreter15inspect_requestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii
fun:_ZN21DOCTEST_ANON_SUITE_11L20DOCTEST_ANON_FUNC_14Ev
fun:_ZN7doctest7Context3runEv
fun:main
}
Loading