@@ -43,26 +43,29 @@ jobs:
4343        run : | 
4444          CXXFLAGS=--coverage CFLAGS=--coverage python scripts/build/install.py 
4545#  coverage tests     
46-       - name : Run tests 
46+       - name : Run python  tests 
4747        run : | 
48-           python -m pytest --doctest-modules --cov=./ --cov-report=xml -s 
48+           python -m pytest --doctest-modules --cov=./ --cov-report=xml:coverage-python.xml  -s 
4949
50- name : Capture Coverage Data with lcov  
50+ name : Capture C++  Coverage Data 
5151        run : | 
52-           lcov --capture --directory . --output-file coverage.info --no-external 
53- 
54-       - name : Generate HTML Coverage Report with genhtml 
52+           lcov --capture --directory . --output-file coverage-cpp.info --no-external 
53+           python -m pip install gcovr 
54+           gcovr -r . --xml-pretty --output coverage-cpp.xml 
55+ 
56+       - name : Merge Coverage Reports 
5557        run : | 
56-           genhtml coverage.info --output-directory coverage_report 
57- 
58+           python -m pip install coverage-merge 
59+           coverage-merge -o merged-coverage.xml coverage-python.xml coverage-cpp.xml 
60+ 
5861      - name : Upload Coverage 
5962        uses : codecov/codecov-action@v3 
6063        with :
6164          token : ${{ secrets.CODECOV_TOKEN }} 
6265          directory : ./coverage/reports/ 
6366          env_vars : OS,PYTHON 
6467          fail_ci_if_error : false 
65-           files : ./coverage.xml 
68+           files : ./merged- coverage.xml 
6669          flags : unittests 
6770          name : codecov-umbrella 
6871          path_to_write_report : ./coverage/codecov_report.txt 
@@ -199,54 +202,4 @@ jobs:
199202
200203name : Build Documentation 
201204        run : | 
202-           sphinx-build -b html docs/source/ docs/build/html 
203- 
204-   test-python-cpp-unified-report :
205-     runs-on : ubuntu-latest 
206-     timeout-minutes : 20 
207-     steps :
208-       - name : Checkout Repository 
209-         uses : actions/checkout@v4 
210- 
211-       - name : Set up Python 
212-         uses : actions/setup-python@v5 
213-         with :
214-           python-version : " 3.11" 
215- 
216-       - name : Install Python Dependencies 
217-         run : | 
218-           python -m pip install --upgrade pip 
219-           python -m pip install pytest pytest-cov coverage 
220- 
221- name : Run Python Tests 
222-         run : | 
223-           pytest pydatastructs/utils/tests/ --cov=src --cov-report xml:coverage-python.xml --cov-report html:coverage-html 
224- 
225- name : Install C++ Dependencies 
226-         run : | 
227-           sudo apt-get update 
228-           sudo apt-get install -y g++ gcov lcov 
229- 
230- name : Compile and Run C++ Tests 
231-         run : | 
232-           g++ -o tests/test_cpp tests/test.cpp 
233-           ./tests/test_cpp 
234-           lcov --capture --directory . --output-file coverage-cpp.info 
235- 
236- name : Convert C++ Coverage to XML 
237-         run : | 
238-           python -m pip install gcovr 
239-           gcovr -r . --xml-pretty --output coverage-cpp.xml 
240- 
241- name : Combine Coverage Reports 
242-         run : | 
243-           coverage combine coverage-python.xml coverage-cpp.xml -o unified-reports/combined-coverage.xml 
244- 
245- name : Generate HTML Report 
246-         run : | 
247-           coverage html -i --data unified-reports/combined-coverage.xml --directory unified-reports/html 
248- 
249- name : Upload Combined Coverage to Codecov 
250-         run : bash <(curl -s https://codecov.io/bash) -f unified-reports/combined-coverage.xml 
251-         env :
252-           CODECOV_TOKEN : ${{ secrets.CODECOV_TOKEN }} 
205+           sphinx-build -b html docs/source/ docs/build/html 
0 commit comments