"-DCOMMAND=${GH_536_COMMAND}"
-DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/test/data/lcet10.txt
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-redirect.cmake)
+
+ set(GH_536_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:switchlevels> 6 15248 1 1050 2 25217)
+ add_test(NAME GH-536-deflate-zero-stored-block
+ COMMAND ${CMAKE_COMMAND}
+ "-DCOMMAND=${GH_536_COMMAND}"
+ -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/test/data/lcet10.txt
+ -DOUTPUT=${CMAKE_CURRENT_SOURCE_DIR}/test/data/lcet10-zl.txt.gz
+ -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-redirect.cmake)
+
+ set(GH_536_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:minigzip> -d)
+ add_test(NAME GH-536-inflate-zero-stored-block
+ COMMAND ${CMAKE_COMMAND}
+ "-DCOMMAND=${GH_536_COMMAND}"
+ -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/test/data/lcet10-zl.txt.gz
+ -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-redirect.cmake)
+
endif()
FEATURE_SUMMARY(WHAT ALL INCLUDE_QUIET_PACKAGES)
if (s->block_open == 0) {
last = (flush == Z_FINISH) ? 1 : 0;
zng_tr_emit_tree(s, STATIC_TREES, last);
+ s->block_open = 1;
}
do {
fill_window(s);
if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) {
zng_tr_emit_end_block(s, static_ltree, 0);
+ s->block_open = 0;
s->block_start = s->strstart;
flush_pending(s->strm);
return need_more;
last = (flush == Z_FINISH) ? 1 : 0;
zng_tr_emit_end_block(s, static_ltree, last);
+ s->block_open = 0;
s->block_start = s->strstart;
flush_pending(s->strm);
put_short(s, (uint16_t)~stored_len);
cmpr_bits_add(s, 32);
sent_bits_add(s, 32);
- if (stored_len)
+ if (stored_len) {
memcpy(s->pending_buf + s->pending, (unsigned char *)buf, stored_len);
- s->pending += stored_len;
- cmpr_bits_add(s, stored_len << 3);
- sent_bits_add(s, stored_len << 3);
+ s->pending += stored_len;
+ cmpr_bits_add(s, stored_len << 3);
+ sent_bits_add(s, stored_len << 3);
+ }
}
/* ===========================================================================
send_code(s, END_BLOCK, ltree, bi_buf, bi_valid);
s->bi_valid = bi_valid;
s->bi_buf = bi_buf;
- s->block_open = 0;
Tracev((stderr, "\n+++ Emit End Block: Last: %u Pending: %u Total Out: %zu\n",
last, s->pending, s->strm->total_out));
(void)last;
cmpr_bits_add(s, 3);
s->bi_valid = bi_valid;
s->bi_buf = bi_buf;
- s->block_open = 1;
Tracev((stderr, "\n--- Emit Tree: Last: %u\n", last));
}