diff --git a/.github/workflows/wide_integer_fuzzing.yml b/.github/workflows/wide_integer_fuzzing.yml
new file mode 100644
index 0000000..a945329
--- /dev/null
+++ b/.github/workflows/wide_integer_fuzzing.yml
@@ -0,0 +1,49 @@
+# ------------------------------------------------------------------------------
+# Copyright Christopher Kormanyos 2024.
+# Distributed under the Boost Software License,
+# Version 1.0. (See accompanying file LICENSE_1_0.txt
+# or copy at http://www.boost.org/LICENSE_1_0.txt)
+# ------------------------------------------------------------------------------
+
+name: wide_integer_fuzzing
+on:
+ push:
+ branches:
+ - '**'
+ pull_request:
+ schedule:
+ - cron: '15 2 * * *' # run at 2:15 AM UTC
+jobs:
+ clang-fuzzing:
+ runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
+ strategy:
+ fail-fast: false
+ matrix:
+ tcase: [ add, sub, mul, div ]
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: '0'
+ - name: update-tools
+ run: sudo apt install llvm lld
+ - name: clone-submods-bootstrap-headers-boost-develop
+ run: |
+ git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
+ cd ../boost-root
+ git submodule update --init tools
+ git submodule update --init libs/config
+ git submodule update --init libs/multiprecision
+ ./bootstrap.sh
+ ./b2 headers
+ - name: clang-fuzzing
+ run: |
+ grep BOOST_VERSION ../boost-root/boost/version.hpp
+ echo "compile and instrument fuzzing test"
+ clang++ -v
+ clang++ -g -O2 -fsanitize=fuzzer,address,undefined -I. -I../boost-root test/fuzzing/test_fuzzing_${{ matrix.tcase }}.cpp -o test_fuzzing_${{ matrix.tcase }}
+ echo "ls test_fuzzing_${{ matrix.tcase }}"
+ ls -la test_fuzzing_${{ matrix.tcase }}
+ ./test_fuzzing_${{ matrix.tcase }} -max_total_time=240
diff --git a/README.md b/README.md
index 1fb7f41..3132a50 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,8 @@
+
+
@@ -340,6 +342,8 @@ as well as in offline checks to improve static code quality.
GCC's run-time
[sanitizers](https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html)
are used in CI in order to help assure dynamic quality.
+This effort also includes _fuzzing_ with
+[libFuzzer](https://llvm.org/docs/LibFuzzer.html).
Additional quality checks are performed on pull-request
and merge to master using modern third party open-source services.
diff --git a/test/fuzzing/test_fuzzing_add.cpp b/test/fuzzing/test_fuzzing_add.cpp
new file mode 100644
index 0000000..b2d11e1
--- /dev/null
+++ b/test/fuzzing/test_fuzzing_add.cpp
@@ -0,0 +1,127 @@
+///////////////////////////////////////////////////////////////////////////////
+// Copyright Christopher Kormanyos 2024.
+// Distributed under the Boost Software License,
+// Version 1.0. (See accompanying file LICENSE_1_0.txt
+// or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+// cd /mnt/c/Users/ckorm/Documents/Ks/PC_Software/NumericalPrograms/ExtendedNumberTypes/wide_integer
+// clang++ -g -O2 -fsanitize=fuzzer,address,undefined -I. -I/mnt/c/boost/boost_1_85_0 test/fuzzing/test_fuzzing_add.cpp -o test_fuzzing_add
+// ./test_fuzzing_add -max_total_time=180
+
+#include