Files
zosbuilder/components/rfs/tests
Jan De Landtsheer bf62e887e8 feat: Create minimal Zero-OS initramfs with console support
- Fixed build system to clone source repositories instead of downloading binaries
- Enhanced scripts/fetch-github.sh with proper git repo cloning and branch handling
- Updated scripts/compile-components.sh for RFS compilation with build-binary feature
- Added minimal firmware installation for essential network drivers (73 modules)
- Created comprehensive zinit configuration set (15 config files including getty)
- Added util-linux package for getty/agetty console support
- Optimized package selection for minimal 27MB initramfs footprint
- Successfully builds bootable vmlinuz.efi with embedded initramfs
- Confirmed working: VM boot, console login, network drivers, zinit init system

Components:
- initramfs.cpio.xz: 27MB compressed minimal Zero-OS image
- vmlinuz.efi: 35MB bootable kernel with embedded initramfs
- Complete Zero-OS toolchain: zinit, rfs, mycelium compiled from source
2025-08-16 23:25:59 +02:00
..

RFS Tests

This directory contains various tests for the RFS tool.

Test Types

  1. Unit Tests: Standard Rust unit tests within the codebase
  2. Integration Tests: Rust tests that verify specific functionality
  3. End-to-End Tests: Shell scripts that test the full RFS command-line interface
  4. Performance Tests: Shell scripts that measure and compare performance

Running Tests

You can use the provided Makefile to run the tests:

# Run all tests
make all

# Run specific test types
make unit
make integration
make e2e
make performance

# Clean test artifacts
make clean

Test Files

  • e2e_tests.sh and e2e_tests_updated.sh: End-to-end tests for all RFS commands
  • performance_tests.sh: Performance tests focusing on parallel upload/download
  • docker_test.rs: Integration test for the Docker functionality
  • parallel_download_test.rs: Integration test for parallel download feature
  • Makefile: Simplifies running the tests

Requirements

  • Rust and Cargo for unit and integration tests
  • Bash for shell-based tests
  • Docker for Docker-related tests
  • Root/sudo access for mount tests

Notes

  • The end-to-end tests create temporary directories in /tmp/rfs-e2e-tests, also automatically start local servers on port 8080 and 8081 for testing and shut them down after tests complete
  • The performance tests create temporary directories in /tmp/rfs-performance-tests
  • The upload/download tests create temporary directories in /tmp/rfs-upload-download-tests
  • Some tests require sudo access (mount tests)
  • Docker tests will be skipped if Docker is not available