Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
ccd890e
Initial 4.0.0-rc2
doganulus Oct 11, 2025
0e7d4d4
Add nanotrav back
doganulus Oct 12, 2025
db0e672
Update build script
doganulus Nov 5, 2025
adbdf1d
Apply cmake package name convention of PascalCase
doganulus Nov 5, 2025
efd2723
Revert the namespace change
doganulus Nov 5, 2025
1052018
Add valgrind, address santizers, and code coverage to CI/CD workflows…
Alan-Jowett Nov 7, 2025
025bf01
Fix code coverage badge to point to cuddorg/cudd instead of my person…
Alan-Jowett Nov 7, 2025
99ed7ee
Fix cmake target config logic for downstream find_package usage
doganulus Nov 7, 2025
97db02f
Update tests
doganulus Nov 8, 2025
c9d7c1f
Add separate test workflow
doganulus Nov 8, 2025
5772ac9
Update workflows
doganulus Nov 8, 2025
d0fbe15
Fix test build option
doganulus Nov 8, 2025
2010bec
Fix matrix variable
doganulus Nov 8, 2025
67821e6
Simplify test workflows
doganulus Nov 8, 2025
5fa8c65
Fix sanitizer error
doganulus Nov 8, 2025
9da586d
Fix test workflows
doganulus Nov 8, 2025
d8f77c6
Fix line errors
doganulus Nov 8, 2025
8d94f63
Exclude third-party deps from coverage calculation
doganulus Nov 8, 2025
3396dc4
Capture coverage data only from src
doganulus Nov 8, 2025
41d43a3
Add coverage cmake target
doganulus Nov 11, 2025
edf1ced
Fix lcov unused error
doganulus Nov 11, 2025
b7b1ca9
Ignore lcov unused errors
doganulus Nov 11, 2025
4c2a914
Update version info and cmake install
doganulus Nov 14, 2025
1db417f
Install to the default location for tests
doganulus Nov 14, 2025
ec67980
Install with privileges
doganulus Nov 14, 2025
cf135f2
Add scan-build tests (#29)
doganulus Nov 14, 2025
e98ff42
Do not fetch Catch2
doganulus Nov 14, 2025
061185d
Add test file for each source module in src/ (#30)
Copilot Nov 20, 2025
b6849c9
Add tests for cuddBddIte.c (#33)
Copilot Nov 21, 2025
61c4aed
Add comprehensive test coverage for cuddBddAbs.c (87.59%) (#34)
Copilot Nov 21, 2025
0962372
Fix cmake source directory error
doganulus Nov 22, 2025
4547cb4
Add comprehensive test suite for cuddBddCorr.c (82% coverage) (#35)
Copilot Nov 24, 2025
20b1330
Add comprehensive test coverage for cuddInit.c - achieve 88.7% line c…
Copilot Nov 24, 2025
bdd2e4e
Add comprehensive test coverage for cuddCache.c (86.8% lines, 100% fu…
Copilot Nov 24, 2025
11a6ca0
Add comprehensive test cases for src/cuddCompose.c (#44)
Copilot Nov 24, 2025
6f87adc
Complete test cases for src/cuddEssent.c (#43)
Copilot Nov 24, 2025
dc86dab
Add comprehensive test cases for src/cuddExport.c (89.27% line covera…
Copilot Nov 24, 2025
b3b1ccf
Add comprehensive test coverage for src/cuddLinear.c (100% functions,…
Copilot Nov 25, 2025
ceb6a28
Complete test coverage for cuddAddAbs.c - achieve 82% coverage (#31)
Copilot Nov 25, 2025
3373370
Add comprehensive test coverage for cuddUtil.c (#47)
Copilot Nov 25, 2025
89d4f1c
Add comprehensive test suite for cuddDecomp.c (56.7% line coverage) (…
Copilot Nov 25, 2025
3793ed5
[WIP] Add test cases for src/cuddPriority.c to achieve 80% coverage (…
Copilot Nov 26, 2025
cd0c7c0
Add comprehensive test cases for cuddSubsetSP.c (#54)
Copilot Nov 26, 2025
3a41765
Add comprehensive test cases for cuddReorder.c (#49)
Copilot Nov 26, 2025
f7fe491
Add test cases for cuddGenCof.c coverage (#52)
Copilot Nov 26, 2025
a336610
Add test cases for src/cuddSubsetHB.c (#53)
Copilot Nov 26, 2025
b7f8497
Add comprehensive test suite for cuddTable.c (#38)
Copilot Nov 26, 2025
343d203
Add comprehensive test cases for src/epd.c (#56)
Copilot Nov 27, 2025
12cb372
Add comprehensive tests for cuddZddUtil.c (#58)
Copilot Nov 27, 2025
ae1637a
Add comprehensive test coverage for cuddTable.c (#57)
Copilot Nov 27, 2025
60b0627
Add comprehensive test cases for cuddZddSymm.c (#60)
Copilot Nov 27, 2025
82086fb
Update workflow trigger conditions
doganulus Nov 27, 2025
2e83c1b
Add comprehensive test cases for mtrGroup.c (#61)
Copilot Nov 27, 2025
8418a4e
Add test cases for src/cuddZddFuncs.c (#63)
Copilot Nov 27, 2025
217a847
Fix workflow concurrency (#66)
doganulus Nov 28, 2025
d018ead
[WIP] Add test cases for src/cuddGroup.c (#59)
Copilot Nov 28, 2025
6bf8c9c
[WIP] Add test cases for src/cuddZddLin.c (#64)
Copilot Nov 28, 2025
5f58996
[WIP] Add test cases for src/cuddZddReord.c (#65)
Copilot Nov 28, 2025
a43d364
Add comprehensive test coverage for cuddLCache.c (#67)
Copilot Nov 28, 2025
eff6aa9
Add comprehensive test cases for src/cuddRead.c (#71)
Copilot Nov 28, 2025
17203fd
Increase code coverage for src/cuddApprox.c (#74)
Copilot Nov 29, 2025
5627314
Add comprehensive tests for cuddBridge.c (#72)
Copilot Nov 29, 2025
5cd12df
Add comprehensive test cases for cuddHarwell.c (#73)
Copilot Nov 29, 2025
c4f3ad6
Add comprehensive tests for cuddDecomp.c coverage improvement (#75)
Copilot Nov 29, 2025
7ae3e43
Add comprehensive test cases for cuddSat.c (#76)
Copilot Nov 29, 2025
9a6dd79
Add comprehensive tests for cuddAnneal.c (#77)
Copilot Nov 29, 2025
0e9cf82
Add comprehensive tests for cuddSplit.c (#78)
Copilot Nov 29, 2025
6d9430f
Complete test cases for src/cuddAPI.c (#70)
Copilot Nov 29, 2025
9e41f94
Add comprehensive test cases (#79)
Copilot Nov 29, 2025
d5b9348
[WIP] Add test cases for src/cuddClip.c(#80)
Copilot Nov 29, 2025
f0f6367
Add test cases for src/cuddCheck.c (#69)
Copilot Nov 30, 2025
a7a782f
Add comprehensive test suite for cuddGenetic.c genetic algorithm (#81)
Copilot Nov 30, 2025
4b29cc4
Add comprehensive tests for cuddApa.c (#82)
Copilot Nov 30, 2025
1e19f70
Add comprehensive tests for cuddSign.c (#83)
Copilot Nov 30, 2025
011aafa
Add comprehensive tests for cuddAddIte.c (#84)
Copilot Nov 30, 2025
5113007
Add comprehensive test cases for cuddAddApply.c (#85)
Copilot Nov 30, 2025
afc90aa
Add comprehensive test cases for cuddAddFind.c (#86)
Copilot Nov 30, 2025
6bd3268
Add comprehensive test coverage for cuddAddInv.c (#87)
Copilot Nov 30, 2025
c116a2c
Add comprehensive tests for cuddAddNeg.c (#88)
Copilot Nov 30, 2025
956a107
Add comprehensive test cases for cuddSolve.c (#89)
Copilot Dec 1, 2025
deda337
Complete test cases for src/cuddCof.c (#90)
Copilot Dec 1, 2025
b096cbb
Add comprehensive test cases for cuddAddWalsh.c (#91)
Copilot Dec 1, 2025
0b9ea9e
Add comprehensive test cases for mtrBasic.c (#93)
Copilot Dec 1, 2025
f08ad13
Add comprehensive tests for cstringstream.c (#94)
Copilot Dec 1, 2025
738dd84
Add comprehensive tests for cuddZddSymm.c (#97)
Copilot Dec 4, 2025
7b52c22
Add comprehensive test cases for cuddUtil.c (#98)
Copilot Dec 4, 2025
367b7c1
Add comprehensive test cases for cuddDecomp.c (#96)
Copilot Dec 4, 2025
36b82b8
Add comprehensive tests for cuddAndAbs.c (#99)
Copilot Dec 4, 2025
d49b14d
Add comprehensive tests for cuddExact.c (#100)
Copilot Dec 4, 2025
3f649a0
Add comprehensive test cases for cuddWindow.c (#103)
Copilot Dec 5, 2025
a364f7a
Add comprehensive test cases for cuddLevelQ.c (#104)
Copilot Dec 5, 2025
c0ed900
Complete test cases for src/cuddRef.c (#106)
Copilot Dec 6, 2025
de95825
Add comprehensive tests for cuddSymmetry.c (#110)
Copilot Dec 6, 2025
e622730
Add comprehensive tests for cuddZddCount.c (#109)
Copilot Dec 6, 2025
88edc2a
Add comprehensive tests for cuddLiteral.c (#105)
Copilot Dec 6, 2025
c9b7acb
Add test cases for cuddZddIsop.c (#107)
Copilot Dec 6, 2025
fea3db3
Add test cases for cuddZddPort.c (#111)
Copilot Dec 6, 2025
9d9d1d2
Add comprehensive tests for cuddZddMisc.c (#112)
Copilot Dec 6, 2025
61fdf48
Add comprehensive test coverage for st.c (#113)
Copilot Dec 6, 2025
2321135
Add comprehensive test coverage for cuddInteract.c (#114)
Copilot Dec 7, 2025
0fd6813
Add comprehensive test coverage for cuddZddSetop.c (#115)
Copilot Dec 7, 2025
d1857bf
Add comprehensive test suite for cuddObj.cc (#32)
Copilot Dec 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
42 changes: 42 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
FROM ghcr.io/almalinux/almalinux:8
ARG TARGETARCH TARGETOS TARGETPLATFORM TARGETVARIANT

RUN dnf install -y \
dnf-plugins-core \
dnf-plugin-config-manager \
epel-release \
&& \
dnf config-manager --enable powertools && \
dnf install -y \
git \
wget \
make \
cmake \
ninja-build \
gcc-toolset-14-gcc \
gcc-toolset-14-gcc-c++ \
python3.12 \
python3.12-pip \
pkgconf-pkg-config \
&& \
dnf clean all

RUN dnf install -y \
clang \
clang-devel \
clang-tools-extra \
clang-analyzer \
lcov \
valgrind \
&& \
dnf clean all

RUN git clone --depth 1 --branch v3.4.0 https://github.com/catchorg/Catch2.git /tmp/catch2 && \
cmake -S/tmp/catch2 -B/tmp/catch2/build \
-DBUILD_TESTING=OFF \
-DCATCH_INSTALL_DOCS=OFF \
&& \
cmake --build /tmp/catch2/build/ --target install -j$(nproc) && \
rm -rf /tmp/catch2

RUN echo "source /opt/rh/gcc-toolset-14/enable" >> /etc/bashrc
30 changes: 30 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"name": "CUDD",
"build": {
"dockerfile": "Dockerfile"
},
"customizations": {
"vscode": {
"settings": {
"terminal.integrated.shell.linux": "/bin/bash",
"cmake.sourceDirectory": "${workspaceFolder}",
"cmake.buildDirectory": "/tmp/build",
"cmake.generator": "Ninja",
"cmake.configureArgs": [
"-DCUDD_BUILD_SHARED_LIBS=OFF",
"-DCUDD_BUILD_DDDMP=ON",
"-DCUDD_BUILD_TESTS=ON"
],
"C_Cpp.default.compileCommands": [
"{$workspaceFolder}/compile_commands.json"
]
},
"extensions": [
"EditorConfig.EditorConfig",
"ms-vscode.cpptools",
"ms-vscode.cmake-tools",
"redhat.vscode-yaml",
]
}
}
}
25 changes: 25 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# EditorConfig is awesome: https://editorconfig.org

# top-most EditorConfig file
root = true

# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 2

# Matches multiple files with brace expansion notation
# Set default charset
[*.{js,py}]
charset = utf-8

# 4 space indentation
[*.py]
indent_style = space
indent_size = 4

# Tab indentation (no size specified)
[Makefile]
indent_style = tab
36 changes: 36 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Test

on:
pull_request:
branches:
- main
- 4.0.0
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
cmake-test:
runs-on: ubuntu-24.04
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y cmake ninja-build catch2

- name: Configure
run: |
cmake -S . -B /tmp/build \
-DCUDD_BUILD_WITH_STATS=ON \
-DCUDD_BUILD_TESTS=ON

- name: Build
run: cmake --build /tmp/build

- name: Test
run: ctest --test-dir /tmp/build --output-on-failure
54 changes: 54 additions & 0 deletions .github/workflows/test_cmake.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: CMake Build and Install

on:
pull_request:
branches:
- main
- 4.0.0
workflow_dispatch:

concurrency:
group: ${{ github.event_name }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
cmake-test:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
cmake-version:
- '3.18' # debian11
- '3.22' # ubuntu22.04
- '3.25' # debian12
- '3.26' # rhel8, rhel9
- '3.28' # ubuntu24.04, leap15.6
- '3.30' # rhel10
- '3.31' # debian13, leap16.0
- 'latest'
build-shared-libs: ['ON', 'OFF']

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup cmake
uses: jwlawson/actions-setup-cmake@v2
with:
cmake-version: ${{ matrix.cmake-version }}

- name: Configure
run: |
cmake -S . -B /tmp/build \
-DCUDD_BUILD_SHARED_LIBS=${{ matrix.build-shared-libs }}

- name: Build
run: cmake --build /tmp/build

- name: Install
run: sudo cmake --install /tmp/build

- name: Verify Installation
run: |
cmake -S extras/simple -B /tmp/simple
cmake --build /tmp/simple
64 changes: 64 additions & 0 deletions .github/workflows/test_coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Code Coverage

on:
pull_request:
branches:
- main
- 4.0.0
workflow_dispatch:

concurrency:
group: ${{ github.event_name }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
coverage:
runs-on: ubuntu-24.04

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y cmake ninja-build catch2 lcov

- name: Configure with coverage flags
run: |
cmake -S . -B /tmp/build \
-DCUDD_BUILD_SHARED_LIBS=OFF \
-DCUDD_BUILD_WITH_STATS=ON \
-DCUDD_BUILD_TESTS=ON \
-DCUDD_BUILD_COVERAGE=ON

- name: Build
run: cmake --build /tmp/build

- name: Capture test coverage data
run: cmake --build /tmp/build --target coverage

- name: Upload coverage to Coveralls
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
file: /tmp/build/coverage.info
format: lcov

- name: Upload coverage HTML report
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: /tmp/build/coverage_html/

- name: Summary
if: always()
run: |
echo "## Code Coverage Summary"
echo "- Build type: Debug with coverage flags"
if [ -f "/tmp/build/coverage.info" ]; then
echo "Coverage data generated successfully"
lcov --summary /tmp/build/coverage.info --ignore-errors unused
else
echo "Coverage data not available"
fi
Loading