|
||
---|---|---|
.. | ||
README.md | ||
test.sh |
README.md
Testing the Tarballer Utility
This directory contains test scripts for validating the functionality of the Tarballer utility.
Test Environment
All tests run in a Docker container with temporary files stored in the /test-tmp
directory. This directory is:
- Git-ignored to prevent cluttering the repository
- Automatically created by the Docker container
- Cleaned up after tests complete (unless you specify otherwise)
Running Tests
To run the tests, use Docker Compose from the project root:
# Build and run all tests
docker compose up --build
# Run only the basic test
docker compose run tarballer /bin/test.sh basic
# Run only the tar comparison test
docker compose run tarballer /bin/test.sh tar
# Keep temporary files after tests (for debugging)
docker compose run tarballer /bin/test.sh all 1
Test Types
The test script (test.sh
) supports several test types:
basic
- Tests basic tarball creation and extraction with various file types and symlinkstar
- Compares our utility against standard tar functionalityall
- Runs all tests (default)clean
- Just cleans up temporary files
Test Directory Structure
The tests create the following structure in the /test-tmp
directory:
/test-tmp/complex/
- Directory with complex nested structure for basic test/test-tmp/complex-extracted/
- Where the complex test tarball is extracted/test-tmp/standard-test/
- Directory with sample app structure for tar comparison/test-tmp/standard-extracted/
- Where our utility's tarball is extracted/test-tmp/reference-extracted/
- Where standard tar's tarball is extracted
Manual Testing
If you need to manually test the tarballer utility, you can:
- Build the binaries:
docker compose up --build
- Use the binaries in
./bin/
directory:# Create a tarball ./bin/tarballer-darwin -source /path/to/source -output output.tar.gz -prefix myapp # Extract and verify a tarball ./bin/tarballer-darwin -extract -output output.tar.gz -extractdir /path/to/extract
Modifying Tests
When modifying tests, ensure any temporary files are created within the /test-tmp
directory structure to keep the repository clean.