1
0
mirror of https://git.code.sf.net/p/zint/code synced 2026-05-02 04:05:33 +00:00
Files
gitlost f9a493522f DATAMATRIX: add new options DM_B256_START and DM_C40_START to
`options_3`, allowing forcing of Base 256 or C40 mode a la BWIPP
  for initial no. of characters specified in `option_1`, with 0
  meaning all (CLI "--dmb256=" and "--dmc40=", GUI also (apart
  from MAILMARK_2D, which may be added later);
  export masks `DM_B256_C40_START_MASK` & `DM_SQUARE_DMRE_MASK` in
  "zint.h"
ZBarcode_Encode_File: report filename (possibly truncated) in error
  message on failed open
GUI: uniquify some accelerators and add some child widget getter
  helpers to "mainwindow.cpp"
backend/DEVELOPER -> backend/README, with some expansion
debian/copyright: a few more fixes
BWIPP/pandoc: update to latest
tests/fuzz: adjust for new DATAMATRIX options
2026-03-30 21:25:22 +01:00
..

% backend/tests/fuzz/README 2026-03-26
% Tested on Ubuntu 24.04 LTS
% vim: set ts=4 sw=4 et :

To run fuzzers "fuzz_data" and "fuzz_gs1" using OSS-Fuzz

Assuming have cloned OSS-Fuzz somewhere:

    git clone https://github.com/google/oss-fuzz

and using the following shell vars:

    export OSS_FUZZ_DIR=<oss-fuzz-clone-dir>
    export ZINT_DIR=<zint-clone-dir>
    export PROJECT_NAME=zint

make sure have latest:

    cd $OSS_FUZZ_DIR
    git pull origin master

Link zint's "backend/tests/fuzz" to a sub-dir of OSS-Fuzz`s project dir as "zint", e.g.:

    cd $OSS_FUZZ_DIR/projects
    ln -s $ZINT_DIR/backend/tests/fuzz $PROJECT_NAME

Create corpus dirs, e.g. could create in the "build" dir in "<oss-fuzz-clone-dir>":

    mkdir -p $OSS_FUZZ_DIR/build/corpus_data
    mkdir -p $OSS_FUZZ_DIR/build/corpus_gs1

Then can use OSS-Fuzz's python helpers to build the docker image and fuzzers:

    cd $OSS_FUZZ_DIR/projects/$PROJECT_NAME
    python3 $OSS_FUZZ_DIR/infra/helper.py build_image $PROJECT_NAME

(on any subsequent runs can add "--no-pull" option to avoid the "Pull latest base images" question)

    python3 $OSS_FUZZ_DIR/infra/helper.py build_fuzzers $PROJECT_NAME

Then run "fuzz_data":

    python3 $OSS_FUZZ_DIR/infra/helper.py run_fuzzer --corpus-dir=build/corpus_data $PROJECT_NAME fuzz_data

and/or "fuzz_gs1":

    python3 $OSS_FUZZ_DIR/infra/helper.py run_fuzzer --corpus-dir=build/corpus_gs1 $PROJECT_NAME fuzz_gs1

If want to test local changes not in zint's commit tree, then create an archive, e.g.

    cd $ZINT_DIR
    git stash
    git archive -o backend/tests/fuzz/zint.tar.gz 'stash@{0}'
    git stash pop

then edit "Dockerfile" and comment out "RUN zint clone ..." and uncomment "ADD ./zint.tar.gz zint" and
rebuild Docker image and fuzzers.