Files
cpp-project-template/third_party/zlib-ng/test/gh1235.c
tqcq 68b2e7f763
Some checks failed
sm-rpc / build (Debug, arm-linux-gnueabihf) (push) Successful in 1m34s
sm-rpc / build (Debug, aarch64-linux-gnu) (push) Successful in 2m46s
sm-rpc / build (Debug, host.gcc) (push) Failing after 1m28s
sm-rpc / build (Release, aarch64-linux-gnu) (push) Successful in 2m14s
sm-rpc / build (Release, arm-linux-gnueabihf) (push) Successful in 2m8s
sm-rpc / build (Debug, mipsel-linux-gnu) (push) Successful in 5m35s
sm-rpc / build (Release, host.gcc) (push) Failing after 1m55s
sm-rpc / build (Release, mipsel-linux-gnu) (push) Successful in 7m21s
fix: breakpad use miniz
2025-08-25 15:24:22 +08:00

40 lines
1.3 KiB
C

#include <assert.h>
#include <stdio.h>
#include <string.h>
#include "zutil.h"
int main(void) {
unsigned char plain[32];
unsigned char compressed[130];
PREFIX3(stream) strm;
z_size_t bound;
z_size_t bytes;
for (int i = 0; i <= 32; i++) {
memset(plain, 6, i);
memset(&strm, 0, sizeof(strm));
PREFIX(deflateInit2)(&strm, 0, 8, 31, 1, Z_DEFAULT_STRATEGY);
bound = PREFIX(deflateBound)(&strm, i);
strm.next_in = plain;
strm.next_out = compressed;
strm.avail_in = i;
strm.avail_out = sizeof(compressed);
if (PREFIX(deflate)(&strm, Z_FINISH) != Z_STREAM_END) return -1;
if (strm.avail_in != 0) return -1;
printf("bytes = %2i, deflateBound = %2zi, total_out = %2zi\n", i, (size_t)bound, (size_t)strm.total_out);
if (bound < strm.total_out) return -1;
if (PREFIX(deflateEnd)(&strm) != Z_OK) return -1;
}
for (int i = 0; i <= 32; i++) {
bytes = sizeof(compressed);
for (int j = 0; j < i; j++) {
plain[j] = j;
}
bound = PREFIX(compressBound)(i);
if (PREFIX(compress2)(compressed, &bytes, plain, i, 1) != Z_OK) return -1;
printf("bytes = %2i, compressBound = %2zi, total_out = %2zi\n", i, (size_t)bound, (size_t)bytes);
if (bytes > bound) return -1;
}
return 0;
}