zlib-ng/test/test_shared_ng.h
Ilya Leoshkevich e63f36b1cf Introduce ZLIBNG_ENABLE_TESTS
This patch adds the ability to run zlib-ng test suite against the
original zlib as follows:

    cmake -DZLIB_COMPAT=ON -DZLIBNG_ENABLE_TESTS=OFF .
    make
    LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu make test

The benefit of this is that modifications to the original zlib can be
tested with a more extensive zlib-ng's testsuite, and the assumptions
that the zlib-ng tests make can be validated against the original zlib.

In addition to a number of tests that exercise purely zlib-ng specific
API, there are a few that expect zlib-ng specific behavior from the
original zlib API:

- deflate() (obviously) emits different streams
- zlib-ng's deflatePrime() can take more than 16 bits
- zVersion() returns a different string

Adjust or disable the respective tests for ZLIBNG_ENABLE_TESTS=OFF.
2022-11-01 13:25:19 +01:00

24 lines
571 B
C

#ifndef TEST_SHARED_NG_H
#define TEST_SHARED_NG_H
#include "test_shared.h"
/* Test definitions that can only be used in the zlib-ng build environment. */
static inline int deflate_prime_32(PREFIX3(stream) *stream, uint32_t value) {
int err;
#ifdef ZLIBNG_ENABLE_TESTS
err = PREFIX(deflatePrime)(stream, 32, value);
#else
/* zlib's deflatePrime() takes at most 16 bits */
err = PREFIX(deflatePrime)(stream, 16, value & 0xffff);
if (err != Z_OK) return err;
err = PREFIX(deflatePrime)(stream, 16, value >> 16);
#endif
return err;
}
#endif