aboutsummaryrefslogtreecommitdiff
path: root/tests (follow)
AgeCommit message (Collapse)AuthorFilesLines
2024-04-06CVE-2024-3094: import xz-5.6.0.tar.xzjiatan/v5.6.0/autofooBertrand Jacquin1-77/+0
2024-04-06CVE-2024-3094: autoreconf-2.72 -fiBertrand Jacquin1-0/+1379
2024-02-23Tests: Add a few test files.Jia Tan6-0/+19
2024-02-23Tests: Add MicroLZMA test.Jia Tan2-1/+551
2024-02-19CMake: Add test_scripts.sh to the tests.Lasse Collin1-5/+8
In contrast to Automake, skipping of this test when decoders are disabled is handled at CMake side instead of test_scripts.sh because CMake-build doesn't create config.h.
2024-02-14Tests: tuktest.h: Treat Clang separately from GCC.Lasse Collin1-3/+3
Don't assume that Clang defines __GNUC__ as the extensions are available in clang-cl as well (and possibly in some other Clang variants?).
2024-02-14Tests: tuktest.h: Add a missing word to a comment.Lasse Collin1-2/+2
2024-02-14Tests: tuktest.h: Fix the comment about STest.Lasse Collin1-1/+2
2024-02-14Add SPDX license identifier into 0BSD source code files.Lasse Collin31-2/+51
2024-02-14Change most public domain parts to 0BSD.Lasse Collin27-79/+2
Translations and doc/xz-file-format.txt and doc/lzma-file-format.txt were not touched. COPYING.0BSD was added.
2024-02-13Tests: Add RISC-V filter support in a few places.Jia Tan2-0/+12
2024-01-23Tests: Use smaller dictionary size in RISC-V test files.Jia Tan2-0/+0
2024-01-23Tests: Skip RISC-V test files if decoder was not built.Jia Tan1-0/+5
2024-01-23Tests: Add two RISC-V Filter test files.Jia Tan3-0/+8
These test files achieve 100% code coverage in src/liblzma/simple/riscv.c. They contain all of the instructions that should be filtered and a few cases that should not.
2024-01-23Tests: Add RISC-V Filter test in test_compress.sh.Jia Tan1-0/+1
2023-12-07Tests: Silence -Wsign-conversion warning on GCC version < 10.Jia Tan1-1/+1
Since GCC version 10, GCC no longer complains about simple implicit integer conversions with Arithmetic operators. For instance: uint8_t a = 5; uint32_t b = a + 5; Give a warning on GCC 9 and earlier but this: uint8_t a = 5; uint32_t b = (a + 5) * 2; Gives a warning with GCC 10+.
2023-12-07Tests: Minor cleanups to OSS-Fuzz files.Jia Tan7-56/+66
Most of these fixes are small typos and tweaks. A few were caused by bad advice from me. Here is the summary of what is changed: - Author line edits - Small comment changes/additions - Using the return value in the error messages in the fuzz targets' coder initialization code - Removed fuzz_encode_stream.options. This set a max length, which may prevent some worthwhile code paths from being properly exercised. - Removed the max_len option from fuzz_decode_stream.options for the same reason as fuzz_encode_stream. The alone decoder fuzz target still has this restriction. - Altered the dictionary contents for fuzz_lzma.dict. Instead of keeping the properties static and varying the dictionary size, the properties are varied and the dictionary size is kept small. The dictionary size doesn't have much impact on the code paths but the properties do. Closes: https://github.com/tukaani-project/xz/pull/73
2023-12-07Tests: Add fuzz_encode_stream ossfuzz target.Maksym Vatsyk2-0/+81
This fuzz target handles .xz stream encoding. The first byte of input is used to dynamically set the preset level in order to increase the fuzz coverage of complex critical code paths.
2023-12-07Tests: Add fuzz_decode_alone OSS-Fuzz targetMaksym Vatsyk3-0/+66
This fuzz target that handles LZMA alone decoding. A new fuzz dictionary .dict was also created with common LZMA header values to help speed up the discovery of valid headers.
2023-12-07Tests: Update OSS-Fuzz Makefile.Maksym Vatsyk1-4/+9
All .c files can be built as separate fuzz targets. This simplifies the Makefile by allowing us to use wildcards instead of having a Makefile target for each fuzz target.
2023-12-07Tests: Move common OSS-Fuzz target code to .h file.Maksym Vatsyk2-44/+71
2023-12-07Tests: Rename OSS-Fuzz files.Maksym Vatsyk4-2/+3
2023-11-30Tests: Fix typosKian-Meng Ang2-3/+3
2023-11-18Tests: Create test_suffix.sh.Jia Tan2-0/+191
This tests some complicated interactions with the --suffix= option. The suffix option must be used with --format=raw, but can optionally be used to override the default .xz suffix. This test also verifies some recent bugs have been correctly solved and to hopefully avoid further regressions in the future.
2023-11-17Tests: Fix typo in a comment.Jia Tan1-1/+1
2023-09-26Build: Remove Gnulib dependency from tests.Jia Tan1-6/+1
The tests do not use any Gnulib replacements so they do not need to link libgnu.a or have /lib in the include path.
2023-08-28Tests: Improve invalid unpadded size check in test_lzma_index_append().Jia Tan1-3/+23
This check was extended to test the code added to fix a failing assert in ae5c07b22a6b3766b84f409f1b6b5c100469068a.
2023-08-28Tests: Improve comments in test_index.c.Jia Tan1-3/+3
2023-08-03Tests: Style fixes to test_lzip_decoder.c.Jia Tan1-12/+24
2023-07-31Docs: Fix typos found by codespellDimitri Papadopoulos Orfanos3-4/+4
2023-07-21Tests: Skip .lz files in test_files.sh if not configured.Jia Tan1-1/+1
Previously if the lzip decoder was not configured then test_files.sh would pass the lzip tests instead of skipping them.
2023-07-20Tests: Add ARM64 filter test to test_compress.sh.Jia Tan1-0/+1
2023-07-17Tests: Use new --filters option in test_compress.shJia Tan1-10/+10
2023-07-14Tests: Improve feature testing for skipping.Jia Tan2-3/+3
Fixed a bug where test_compress_* would all fail if arm64 or armthumb filters were enabled for compression but arm was disabled. Since the grep tests only checked for "define HAVE_ENCODER_ARM", this would match on HAVE_ENCODER_ARM64 or HAVE_ENCODER_ARMTHUMB. Now the config.h feature test requires " 1" at the end to prevent the prefix problem. have_feature() was also updated for this even though there were known current bugs affecting it. This is just in case future features have a similar prefix problem.
2023-06-29Tests: Fix memory leaks in test_index.Jia Tan1-0/+11
Several tests were missing calls to lzma_index_end() to clean up the lzma_index structs. The memory leaks were discovered by using -fsanitize=address with GCC.
2023-06-29Tests: Fix memory leaks in test_block_header.Jia Tan1-16/+22
test_block_header was not properly freeing the filter options between calls to lzma_block_header_decode(). The memory leaks were discovered by using -fsanitize=address with GCC.
2023-03-13Tests: Remove unused macros and functions.Jia Tan1-75/+0
2023-03-13liblzma: Defines masks for return values from lzma_index_checks().Jia Tan1-11/+11
2023-03-13Tests: Refactors existing lzma_index tests.Jia Tan1-544/+1492
Converts the existing lzma_index tests into tuktests and covers every API function from index.h except for lzma_file_info_decoder, which can be tested in the future.
2023-02-24Tests: Small tweak to test-vli.c.Jia Tan1-0/+2
The static global variables can be disabled if encoders and decoders are not built. If they are not disabled and -Werror is used, it will cause an usused warning as an error.
2023-02-03Tests: Create test_filter_str.c.Jia Tan2-0/+595
Tests lzma_str_to_filters(), lzma_str_from_filters(), and lzma_str_list_filters() API functions.
2023-01-12Tests: Fix warnings from clang --Wassign-enum.Lasse Collin4-8/+17
Explicitly casting the integer to lzma_check silences the warning. Since such an invalid value is needed in multiple tests, a constant INVALID_LZMA_CHECK_ID was added to tests.h. The use of 0x1000 for lzma_block.check wasn't optimal as if the underlying type is a char then 0x1000 will be truncated to 0. However, in these test cases the value is ignored, thus even with such truncation the test would have passed.
2023-01-12Tests: Silence warnings from -Wsign-conversion.Lasse Collin2-8/+8
Note that assigning an unsigned int to lzma_check doesn't warn on GNU/Linux x86-64 since the enum type is unsigned on that platform. The enum can be signed on some other platform though so it's best to use enumeration type lzma_check in these situations.
2023-01-12Tests: test_lzip_decoder: Remove trailing white-space.Lasse Collin1-2/+2
2023-01-12Tests: test_lzip_decoder: Silence warnings from -Wsign-conversion.Lasse Collin1-6/+7
2023-01-11Tests: Fix test_filter_flags copy/paste error.Jia Tan1-2/+2
2023-01-11Tests: Fix type-limits warning in test_filter_flags.Jia Tan1-3/+10
This only occurs in test_filter_flags when the BCJ filters are not configured and built. In this case, ARRAY_SIZE() returns 0 and causes a type-limits warning with the loop variable since an unsigned number will always be >= 0.
2023-01-11Tests: Fix unused function warning in test_block_header.Jia Tan1-0/+4
One of the global arrays of filters was only used in a test that required both encoders and decoders to be configured in the build.
2023-01-11Tests: Fix unused function warning in test_index_hash.Jia Tan1-3/+1
test_index_hash does not use fill_index_hash() unless both encoders and decoders are configured in the build.
2023-01-09Tests: test_filter_flags: Clean up minor issues.Lasse Collin1-75/+78
Here are the list of the most significant issues addressed: - Avoid using internal common.h header. It's not good to copy the constants like this but common.h cannot be included for use outside of liblzma. This is the quickest thing to do that could be fixed later. - Omit the INIT_FILTER macro. Initialization should be done with just regular designated initializers. - Use start_offset = 257 for BCJ tests. It demonstrates that Filter Flags encoder and decoder don't validate the options thoroughly. 257 is valid only for the x86 filter. This is a bit silly but not a significant problem in practice because the encoder and decoder initialization functions will catch bad alignment still. Perhaps this should be fixed but it's not urgent and doesn't need to be in 5.4.x. - Various tweaks to comments such as filter id -> Filter ID
2023-01-09Tests: Refactors existing filter flags tests.Jia Tan1-198/+457
Converts the existing filter flags tests into tuktests.
2023-01-08Tests: tuktest.h: Support tuktest_malloc(0).Lasse Collin1-2/+2
It's not needed in XZ Utils at least for now. It's good to support it still because if such use is needed later, it wouldn't be caught on GNU/Linux since malloc(0) from glibc returns non-NULL.
2023-01-07Merge pull request #7 from tukaani-project/tuktest_index_hashJia Tan2-0/+391
Tuktest index hash
2023-01-06Tests: test_index_hash: Add an assert_uint_eq().Lasse Collin1-0/+3
2023-01-06Tests: test_index_hash: Fix a memory leak.Lasse Collin1-0/+2
2023-01-06Tests: test_index_hash: Don't treat pointers as booleans.Lasse Collin1-3/+3
2023-01-06Tests: test_index_hash: Fix a typo in a comment.Lasse Collin1-1/+1
2023-01-06Tests: test_index_hash: Avoid the variable name "index".Lasse Collin1-8/+8
It can trigger warnings from -Wshadow on some systems.
2023-01-06Tests: test_index_hash: Use the word "Record" instead of "entry".Lasse Collin1-51/+51
2023-01-06Tests: test_index_hash: Tweak comments and style.Lasse Collin1-29/+33
The words defined in the .xz file format specification begin with capital letter to emphasize that they have a specific meaning.
2023-01-06Tests: test_index_hash: Use INDEX_INDICATOR constant instead of 0.Lasse Collin1-1/+1
2023-01-04Tests: Adjust style in test_compress.sh.Lasse Collin1-5/+7
2023-01-04Tests: Replace non portable shell parameter expansionJia Tan4-10/+16
The shell parameter expansion using # and ## is not supported in Solaris 10 Bourne shell (/bin/sh). Even though this is POSIX, it is not fully portable, so we should avoid it.
2023-01-02Tests: Creates test_index_hash.cJia Tan2-0/+382
Tests all API functions exported from index_hash.h. Does not have a dedicated test for lzma_index_hash_end.
2022-12-30Tests: test_check: Test corner cases of CLMUL CRC64.Lasse Collin1-0/+27
2022-12-30Tests: Clarify a comment in test_lzip_decoder.c.Lasse Collin1-2/+6
2022-12-30Tests: Adds lzip decoder testsJia Tan2-0/+473
2022-12-13Tests: Fix a typo in tests/files/README.Lasse Collin1-1/+1
2022-12-13Tests: Add two ARM64 test files.Lasse Collin4-0/+12
2022-11-09Tests: Test the .lz files in test_files.sh.Lasse Collin1-0/+25
2022-11-09Tests: Add .lz (lzip) test files.Lasse Collin19-11/+98
2022-10-27Tests: test_files.sh: Make it not fail if features were disabled at build.Lasse Collin1-4/+46
It now tries to test as many files as easily possible. The exit status indicates skipping if any of the files were skipped. This way it is easy to notice if something is being skipped when it isn't expected.
2022-10-27Tests: test_files.sh: Suppress an expected warning from the log.Lasse Collin1-2/+2
xz (but not xzdec) will normally warn about unsupported check but since we are testing specifically such a file, it's better to silence that warning so that it doesn't look suspicious in test_files.sh.log. The use of -q and -Q in xzdec is just for consistency and doesn't affect the result at least for now.
2022-10-27Tests: test_files.sh: Print the reason for skipping if xz & xzdec missing.Lasse Collin1-0/+1
2022-10-27Tests: Keep test_compress_* working when some filters are unavailable.Lasse Collin1-14/+20
2022-10-26Tests: test_bcj_exact_size skips properly now if PowerPC filter disabled.Jia Tan1-0/+3
2022-10-26Tests: Test also unsupported-*.xz.Lasse Collin1-0/+37
2022-10-19Tests: Skip tests in test_*.sh if encoders and/or decoders are disabled.Lasse Collin3-0/+34
This isn't perfect as the scripts can still fail if only certain filters are disabled. This is still an improvement as now "make check" has better behavior when all encoders or decoders are disabled. Grepping ../config.h is simple and fairly clean but it only works if config.h was created. CMake builds don't create config.h but they don't use these test scripts either. Thanks to Sebastian Andrzej Siewior for reporting the problem. Thanks to Jia Tan for the original patch which grepped xz error messages instead of config.h.
2022-10-19Test: Remove the (exit 1) lines.Lasse Collin3-25/+0
I suspect that I used these in the original version because Autoconf's manual describes that such a trick is needed in some specific situations for portability reasons. None of those situations listed on Autoconf 2.71 manual apply to these test scripts though so this cleans them up.
2022-10-19Tests: Fix a warning in test_memlimit.c when decoders are disabled.Lasse Collin1-0/+3
2022-10-06Tests: Refactor test_stream_flags.c.Jia Tan1-117/+416
Converts test_stream_flags to tuktest. Also the test will now compile and skip properly if encoders or decoders are disabled. Thanks to Sebastian Andrzej Siewior.
2022-10-06Tests: Refactor test_block_header.c.Jia Tan1-116/+370
test_block_header now achieves higher test coverage. Also the test will now compile and skip properly if encoders or decoders are disabled. Thanks to Sebastian Andrzej Siewior.
2022-10-06Tests: Fix compilation issues.Jia Tan6-9/+56
test_bcj_exact_size, test_check, test_hardware, and test_index will all now compile and skip properly if encoders or decoders are disabled. Also fixed a small typo (disabed -> disabled). Thanks to Sebastian Andrzej Siewior.
2022-10-05Tests: Include mythread.h in the tests that use MYTHREAD_ENABLED.Lasse Collin3-0/+3
2022-10-05Tests: Fix compilation error when threading support has been disabled.Jia Tan3-0/+12
Now tests that require threading are skipped when threading support has been disabled. Thanks to Sebastian Andrzej Siewior.
2022-09-28Tests: Create a test for the lzma_index_cat bug.Jia Tan1-1/+42
2022-09-28Tests: Add test_memlimit.c to test restarting after LZMA_MEMLIMIT_ERROR.Lasse Collin2-0/+153
2022-09-16Tests: Add a test file for lzma_index_append() integer overflow bug.Lasse Collin3-0/+18
This test fails before commit 18d7facd3802b55c287581405c4d49c98708c136. test_files.sh now runs xz -l for bad-3-index-uncomp-overflow.xz because only then the previously-buggy code path gets tested. Normal decompression doesn't use lzma_index_append() at all. Instead, lzma_index_hash functions are used and those already did the overflow check.
2022-09-09Tests: Silence warnings about unused functions from tuktest.h.Lasse Collin1-0/+10
Warnings about unused tuktest_run_test conveniently tell which test programs haven't been converted to tuktest.h yet but I silenced that warning too for now anyway. It is fine to use __attribute__((__unused__)) even when the function is actually used because the attribute only means that the function might be unused.
2022-07-14Tests: Add the .lzma files to test_files.sh.Lasse Collin1-0/+20
2022-07-14Tests: Add .lzma test files.Lasse Collin9-13/+50
2022-07-10Created script to generate code coverage reports.Jia Tan1-0/+79
The script uses lcov and genhtml after running the tests to show the code coverage statistics. The script will create a coverage directory where it is run. It can be run both in and out of the source directory.
2022-06-16Tests: Add more tests into test_check.Jia Tan2-7/+295
2022-06-16Tests: Use char[][24] array for enum_strings_lzma_ret.Lasse Collin1-1/+1
Array of pointers to short strings is a bit pointless here and now it's fully const.
2022-06-16Tests: tuktest.h: Add tuktest_error_impl to help with error conditions.Lasse Collin1-40/+32
2022-06-16Tests: tuktest.h: Rename file_from_* and use tuktest_malloc there.Lasse Collin2-31/+25
2022-06-16Tests: tuktest.h: Add malloc wrapper with automatic freeing.Lasse Collin1-0/+124
2022-06-16Tests: tuktest.h: Move a function.Lasse Collin1-22/+22
2022-06-14Tests: test_vli: Remove an invalid test-assertion.Lasse Collin1-2/+0
lzma_vli is unsigned so trying a signed value results in a compiler warning from -Wsign-conversion. (lzma_vli)-1 equals to LZMA_VLI_UNKNOWN anyway which is the next assertion.
2022-06-14Tests: test_vli: Add const where appropriate.Lasse Collin1-25/+28
2022-06-14Created tests for all functions exported in vli.hJia Tan2-1/+311
Achieved 100% code coverage vli_encoder.c, vli_decoder.c, and vli_size.c
2022-06-14Tests: Use good-1-empty-bcj-lzma2.xz in test_bcj_exact_size.Lasse Collin1-12/+7
It's much nicer this way so that the test data isn't a hardcoded table inside the C file.
2022-06-14Tests: Add file reading helpers to tuktest.h.Lasse Collin1-7/+176
2022-06-14Tests: tuktest.h: Move a printf from a macro to a helper function.Lasse Collin1-8/+18
2022-06-14Tests: Add test file good-1-empty-bcj-lzma2.xz.Lasse Collin2-0/+5
This is from test_bcj_exact_size.c. It's good to have it as a standalone file.
2022-06-10Tests: Created tests for hardware functions.Jia Tan2-0/+47
Created tests for all API functions exported in src/liblzma/api/lzma/hardware.h. The tests are fairly trivial but are helpful because they will inform users if their machines cannot support these functions. They also improve the code coverage metrics.
2022-06-02Tests: Convert test_check to tuktest.Lasse Collin1-34/+33
Thanks to Jia Tan for help with all the tests.
2022-06-02Tests: Convert test_block_header to tuktest.Lasse Collin1-37/+52
2022-06-02Tests: Convert test_bcj_exact_size to tuktest.Lasse Collin1-34/+41
The compress() and decompress() functions were merged because the later depends on the former so they need to be a single test case.
2022-06-02Tests: Include tuktest.h in tests.h.Lasse Collin1-24/+23
This breaks -Werror because none of the tests so far use tuktest.h and thus there are warnings about unused variables and functions.
2022-06-02Tests: Add tuktest.h mini-test-framework.Lasse Collin2-0/+753
2022-05-23Tests: Split test_compress.sh into separate test unit for each file.Lasse Collin7-40/+77
test_compress.sh now takes one command line argument: a filename to be tested. If it begins with "compress_generated_" the file will be created with create_compress_files. This will allow parallel execution of the slow tests.
2022-05-23Test: Make create_compress_files.c a little more flexible.Lasse Collin1-10/+15
If a command line argument is given, then only the test file of that type is created. It's quite dumb in sense that unknown names don't give an error but it's good enough here. Also use EXIT_FAILURE instead of 1 as exit status for errors.
2022-05-23Tests: Remove unneeded commented lines from test_compress.sh.Lasse Collin1-13/+0
2022-05-23Tests: Remove progress indicator from test_compress.sh.Lasse Collin1-9/+0
It will be useless with Automake's parallel tests.
2022-02-20Tests: Add bad-1-lzma2-11.xz.Lasse Collin2-0/+5
2021-01-24Tests: Add bad-1-lzma2-10.xz and also modify -9.xz.Lasse Collin3-2/+9
2021-01-24Tests: Add bad-1-lzma2-9.xz.Lasse Collin2-0/+4
2021-01-24Tests: Add bad-1-check-crc32-2.xz.Lasse Collin2-0/+7
2020-01-19Use $(LIB_FUZZING_ENGINE) in tests/ossfuzz/Makefile.Lasse Collin1-1/+1
https://github.com/google/oss-fuzz/pull/3219#issuecomment-573751048 Thanks to Bhargava Shastry for sending the patch.
2019-12-31Rename unaligned_read32ne to read32ne, and similarly for the others.Lasse Collin2-5/+5
2019-12-29Tests: Hopefully fix test_check.c to work on EBCDIC systems.Lasse Collin1-2/+7
Thanks to Daniel Richard G.
2019-06-25Tests: Silence warnings from clang -Wassign-enum.Lasse Collin2-2/+3
Also changed 999 to 99 so it fits even if lzma_check happened to be 8 bits wide.
2019-06-24Tests: Silence a warning from -Wsign-conversion.Lasse Collin1-4/+4
2019-06-24Tests: Remove a duplicate branch from tests/tests.h.Lasse Collin1-7/+2
The duplication was introduced about eleven years ago and should have been cleaned up back then already. This was caught by -Wduplicated-branches.
2018-11-02Tests: Add a fuzz test program and a config file for OSS-Fuzz.Lasse Collin5-0/+94
Thanks to Bhargava Shastry and Github user pdknsk.
2015-10-12Tests: Add tests for the two bugs fixed in index.c.Lasse Collin1-0/+30
2015-05-13Tests: Fix a memory leak in test_bcj_exact_size.Lasse Collin1-0/+1
Thanks to Cristian Rodríguez.
2015-01-06Tests: Don't hide unexpected error messages in test_files.sh.Lasse Collin1-2/+2
Hiding them makes no sense since normally there's no error when testing the "good" files. With "bad" files errors are expected and then it makes sense to keep the messages hidden.
2014-06-13xzgrep: List xzgrep_expected_output in tests/Makefile.am.Lasse Collin1-1/+2
2014-06-13xzgrep: Improve the test script.Lasse Collin3-11/+55
Now it should be close to the functionality of the original version by Pavel Raiskup.
2014-06-11xzgrep: Add a test for the previous fix.Lasse Collin1-4/+22
This is a simplified version of Pavel Raiskup's original patch.
2012-07-05Tests: Remove tests/test_block.c that had gotten committed accidentally.Lasse Collin1-52/+0
2012-05-28liblzma: Fix possibility of incorrect LZMA_BUF_ERROR.Lasse Collin2-1/+115
lzma_code() could incorrectly return LZMA_BUF_ERROR if all of the following was true: - The caller knows how many bytes of output to expect and only provides that much output space. - When the last output bytes are decoded, the caller-provided input buffer ends right before the LZMA2 end of payload marker. So LZMA2 won't provide more output anymore, but it won't know it yet and thus won't return LZMA_STREAM_END yet. - A BCJ filter is in use and it hasn't left any unfiltered bytes in the temp buffer. This can happen with any BCJ filter, but in practice it's more likely with filters other than the x86 BCJ. Another situation where the bug can be triggered happens if the uncompressed size is zero bytes and no output space is provided. In this case the decompression can fail even if the whole input file is given to lzma_code(). A similar bug was fixed in XZ Embedded on 2011-09-19.
2012-01-10Tests: Fix a compiler warning with _FORTIFY_SOURCE.Lasse Collin1-1/+2
Reported here: http://sourceforge.net/projects/lzmautils/forums/forum/708858/topic/4927385
2011-09-06Build: Fix "make check" on Windows.Lasse Collin1-2/+5
2011-08-06Run the scripts with the correct shell in test_scripts.sh.Lasse Collin1-4/+4
The scripts are now made executable in the build tree. This way the scripts can be run like programs in test_scripts.sh. Previously test_scripts.sh always used sh but it's not correct if @POSIX_SHELL@ is set to something else by configure. Thanks to Jonathan Nieder for the patch.
2011-07-31Fix exit status of "xzdiff foo.xz bar.xz".Lasse Collin2-1/+57
xzdiff was clobbering the exit status from diff in a case statement used to analyze the exit statuses from "xz" when its operands were two compressed files. Save and restore diff's exit status to fix this. The bug is inherited from zdiff in GNU gzip and was fixed there on 2009-10-09. Thanks to Jonathan Nieder for the patch and to Peter Pallinger for reporting the bug.
2011-05-28Tests: Add a test file for the bug in the previous commit.Lasse Collin2-0/+4
2011-03-31Tests: Add a new file to test empty LZMA2 streams.Lasse Collin2-0/+4
2010-10-10test_files.sh: Fix the first line.Lasse Collin1-1/+1
For some reason this prevented running the test only on OS/2 and even on that it broke only recently. Thanks to Elbert Pol.
2010-10-08Make tests accommodate missing xz or xzdec.Lasse Collin2-19/+56
2010-10-05Build: Remove the static/dynamic tricks.Lasse Collin1-4/+1
Most distros want xz linked against shared liblzma, so it doesn't help much to require --enable-dynamic for that. Those who want to avoid PIC on x86-32 to get better performance, can still do it e.g. by using --disable-shared to compile xz and then another pass to compile shared liblzma. Part of these static/dynamic tricks were needed for Windows in the past. Nowadays we rely on GCC and binutils to do the right thing with auto-import. If the Autotooled build system needs to support some other toolchain on Windows in the future, this may need some rethinking.
2010-09-04Adjust memory limits in test_compress.shJonathan Nieder1-1/+1
Testing compression at level -4 now requires 48 MiB of free store at compression time and 5 MiB at decompression time. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
2010-08-10Fix test_compress.sh.Lasse Collin1-3/+3
It broke when --memory option was removed from xzdec. Thanks to Jonathan Nieder.
2010-05-27Remove references to the Subblock filter in xz and tests.Lasse Collin1-23/+0
Thanks to Jonathan Nieder.
2010-02-12Collection of language fixes to comments and docs.Lasse Collin1-1/+1
Thanks to Jonathan Nieder.
2009-12-31Revised the Index handling code.Lasse Collin1-134/+237
This breaks API and ABI but most apps are not affected since most apps don't use this part of the API. You will get a compile error if you are using anything that got broken. Summary of changes: - Ability to store Stream Flags, which are needed for random-access reading in multi-Stream files. - Separate function to set size of Stream Padding. - Iterator structure makes it possible to read the same lzma_index from multiple threads at the same time. - A lot faster code to locate Blocks. - Removed lzma_index_equal() without adding anything to replace it. I don't know what it should do exactly with the new features and what actually needs this function in the first place other than test_index.c, which now has its own code to compare lzma_indexes.
2009-11-26Fix a memory leak in test_index.c.Lasse Collin1-0/+2
This was introduced in bd13b04e202b6f495a68eb0766f97085b7c50a06. Thanks to Jim Meyering for noticing it.
2009-11-25Fix bugs in lzma_index_read() and lzma_index_cat().Lasse Collin1-3/+25
lzma_index_read() didn't skip over Stream Padding if it was the first record in the Index. lzma_index_cat() didn't combine small Indexes correctly. The test suite was updated to check for these bugs. These bugs didn't affect the xz command line tool or most users of liblzma in any way.
2009-10-04Use a tuklib module for integer handling.Lasse Collin3-6/+6
This replaces bswap.h and integer.h. The tuklib module uses <byteswap.h> on GNU, <sys/endian.h> on *BSDs and <sys/byteorder.h> on Solaris, which may contain optimized code like inline assembly.
2009-09-11Fix a couple of warnings.Lasse Collin1-1/+1
2009-06-30Use static liblzma by default also for tests.Lasse Collin1-1/+4
2009-06-26Fix @variables@ to $(variables) in Makefile.am files.Lasse Collin1-5/+7
Fix the ordering of libgnu.a and LTLIBINTL on the linker command line and added missing LTLIBINTL to tests/Makefile.am.
2009-04-14Minor fixes to test files' README.Lasse Collin1-8/+9
2009-04-13Put the interesting parts of XZ Utils into the public domain.Lasse Collin12-114/+36
Some minor documentation cleanups were made at the same time.
2009-02-06Recreated the BCJ test files for x86 and SPARC. The old filesLasse Collin5-1/+1
were linked with crt*.o, which are copyrighted, and thus the old test files were not in the public domain as a whole. They are freely distributable though, but it is better to be careful and avoid including any copyrighted pieces in the test files. The new files are just compiled and assembled object files, and thus don't contain any copyrighted code.
2009-01-31Add LZMA_API to liblzma API headers. It's useful at leastLasse Collin1-0/+1
on Windows. sysdefs.h no longer #includes lzma.h, so lzma.h has to be #included separately where needed.
2009-01-26remove trailing blanks from all but .xz filesJim Meyering1-2/+2
2009-01-20Add some single-call buffer-to-buffer coding functions.Lasse Collin1-0/+24
2008-12-31Disable Subblock filter from test_compress.sh since it islarhzu/v4.999.7betaLasse Collin1-9/+13
disabled by default in configure.ac.
2008-12-31Renamed lzma_options_simple to lzma_options_bcj in the API.Lasse Collin1-4/+4
The internal implementation is still using the name "simple". It may need some cleanups, so I look at it later.
2008-12-31Remove lzma_init() and other init functions from liblzma API.Lasse Collin6-10/+1
Half of developers were already forgetting to use these functions, which could have caused total breakage in some future liblzma version or even now if --enable-small was used. Now liblzma uses pthread_once() to do the initializations unless it has been built with --disable-threads which make these initializations thread-unsafe. When --enable-small isn't used, liblzma currently gets needlessly linked against libpthread (on systems that have it). While it is stupid for now, liblzma will need threads in future anyway, so this stupidity will be temporary only. When --enable-small is used, different code CRC32 and CRC64 is now used than without --enable-small. This made the resulting binary slightly smaller, but the main reason was to clean it up and to handle the lack of lzma_init_check(). The pkg-config file lzma.pc was renamed to liblzma.pc. I'm not sure if it works correctly and portably for static linking (Libs.private includes -pthread or other operating system specific flags). Hopefully someone complains if it is bad. lzma_rc_prices[] is now included as a precomputed array even with --enable-small. It's just 128 bytes now that it uses uint8_t instead of uint32_t. Smaller array seemed to be at least as fast as the more bloated uint32_t array on x86; hopefully it's not bad on other architectures.
2008-12-27Use 28 MiB as memory usage limit for encoding in test_compress.sh.Lasse Collin1-1/+1
2008-12-15Bunch of liblzma API cleanups and fixes.Lasse Collin1-4/+6
2008-12-15Added two new test files.Lasse Collin3-0/+7
2008-11-25Remove the nowadays unneeded memory limitting malloc() wrapper.Lasse Collin2-116/+0
2008-11-19Renamed lzma to xz and lzmadec to xzdec. We create symlinksLasse Collin2-17/+16
lzma, unlzma, and lzcat in "make install" for backwards compatibility with LZMA Utils 4.32.x; I'm not sure if this should be the default though.
2008-11-19Oh well, big messy commit again. Some highlights:Lasse Collin49-33/+37
- Updated to the latest, probably final file format version. - Command line tool reworked to not use threads anymore. Threading will probably go into liblzma anyway. - Memory usage limit is now about 30 % for uncompression and about 90 % for compression. - Progress indicator with --verbose - Simplified --help and full --long-help - Upgraded to the last LGPLv2.1+ getopt_long from gnulib. - Some bug fixes
2008-10-09Fixed the test that should have been fixed as partLasse Collin1-1/+1
of 1e8e4fd1f3e50129b4541406ad765d2aa1233943.
2008-10-02Initial changes to change the suffix of the new format to .xz.Lasse Collin1-1/+2
This also fixes a bug related to --suffix option. Some issues with suffixes with --format=raw were not fixed.
2008-09-30Renamed the test files from .lzma suffix to .xz suffix.Lasse Collin59-68/+66
2008-09-30Added one more test file.Lasse Collin2-4/+11
2008-09-30Added two test files.Lasse Collin3-0/+6
2008-09-27Changed magic bytes to match the updated spec. FilenameLasse Collin54-0/+0
suffix wasn't changed yet.
2008-09-27Fix also test_compress.sh.Lasse Collin1-3/+3
2008-09-27Fixed compilation of test_filter_flags.c, which was broken byLasse Collin1-8/+8
1dcecfb09b55157b8653d747963069c8bed74f04.
2008-09-27Some API changes, bug fixes, cleanups etc.Lasse Collin3-6/+9
2008-09-13Renamed constants:Lasse Collin6-26/+26
- LZMA_VLI_VALUE_MAX -> LZMA_VLI_MAX - LZMA_VLI_VALUE_UNKNOWN -> LZMA_VLI_UNKNOWN - LZMA_HEADER_ERRRO -> LZMA_OPTIONS_ERROR
2008-09-12Improved the Stream Flags handling API.Lasse Collin1-2/+6
2008-09-06Some API cleanupsLasse Collin1-53/+19
2008-08-28Sort of garbage collection commit. :-| Many things are stillLasse Collin123-234/+165
broken. API has changed a lot and it will still change a little more here and there. The command line tool doesn't have all the required changes to reflect the API changes, so it's easy to get "internal error" or trigger assertions.
2008-06-20Fix test_filter_flags to match the new restriction of lc+lp.Lasse Collin1-0/+3
2008-06-18Delete old code that was supposed to be already deletedLasse Collin1-30/+0
from test_block_header.c.
2008-06-18Update the code to mostly match the new simpler file formatLasse Collin8-1190/+776
specification. Simplify things by removing most of the support for known uncompressed size in most places. There are some miscellaneous changes here and there too. The API of liblzma has got many changes and still some more will be done soon. While most of the code has been updated, some things are not fixed (the command line tool will choke with invalid filter chain, if nothing else). Subblock filter is somewhat broken for now. It will be updated once the encoded format of the Subblock filter has been decided.
2008-05-06Bunch of grammar fixes from meyering.Lasse Collin1-1/+1
2008-04-28Fixed wrong spelling "limitter" to "limiter". This affectsLasse Collin1-2/+2
liblzma's API.
2008-01-26Added more test files.Lasse Collin4-0/+11
2008-01-26Added more test files.Lasse Collin3-0/+6
2008-01-25Added more Multi-Block test files. Improved someLasse Collin4-6/+28
descriptions in the test files' README.
2008-01-25Added test_memlimit.c.Lasse Collin2-0/+116
2008-01-25Use more parenthesis in succeed() macro in tests/tests.h.Lasse Collin1-1/+1
2008-01-24Added more Multi-Block Stream test files.Lasse Collin7-0/+23
2008-01-24Added bunch of test files containing Multi-Block Streams.Lasse Collin19-0/+53
2008-01-23Added bad-single-none-footer_filter_flags.lzma andLasse Collin3-0/+5
bad-single-none-too_long_vli.lzma.
2008-01-23Fix Size of Header Metadata Block handling. NowLasse Collin1-2/+2
lzma_metadata.header_metadata_size == LZMA_VLI_VALUE_UNKNOWN is not allowed at all. To indicate missing Header Metadata Block, header_metadata_size must be set to zero. This is what Metadata decoder does after this patch too. Note that other missing fields in lzma_metadata are still indicated with LZMA_VLI_VALUE_UNKNOWN. This isn't as illogical as it sounds at first, because missing Size of Header Metadata Block means that Header Metadata Block is not present in the Stream. With other Metadata fields, a missing field means only that the value is unknown.
2008-01-18Added test files to test usage of flush marker in LZMA.Lasse Collin5-0/+12
2008-01-18Added test_compress.sh and bunch of files needed by it.Lasse Collin6-10/+433
This new set of tests compress and decompress several test files with many different compression options. This set of tests will be extended later.
2008-01-15Fix memory leaks from test_block_header.c.Lasse Collin1-2/+17
2008-01-15Fix CRC code in case --enable-small is used.Lasse Collin1-0/+2