This repository contains automated test suite compilation infrastructure for DragonOS, designed to build and package test programs for operating system validation and verification.
The DragonOS Test Suites repository serves as a centralized build system for various test frameworks and suites that validate DragonOS functionality. Currently, it focuses on building syscall tests derived from the gVisor project, providing comprehensive system call compatibility testing.
test-suites/ ├── gvisor/ # gVisor syscall tests build environment │ ├── Dockerfile # Build environment container │ ├── compile-syscall-test.sh # Build script for syscall tests │ └── run-in-docker.sh # Docker execution helper ├── .cnb.yml # CNB CI/CD configuration ├── .github/ # GitHub Actions workflows └── README.md # This file
dragonos/release-20250616.0 branchThe primary test suite currently supported builds comprehensive system call tests from gVisor's test framework. These tests validate:
The tests are sourced from: gVisor Linux syscalls tests
The easiest way to get the test suites is to download pre-built binaries from our releases:
gvisor-syscalls-tests.tar.xz packageIf you want to build the tests yourself:
# Clone this repository
git clone https://github.com/DragonOS-Community/test-suites.git
cd test-suites
# Build using Docker
cd gvisor
docker build -t gvisor-build-env .
bash run-in-docker.sh
After downloading the test package, you need to deploy it to your DragonOS repository:
# Navigate to your DragonOS repository
cd /path/to/your/DragonOS
# Create the tests directory if it doesn't exist
# Note: If this directory doesn't exist, you need to compile DragonOS first
mkdir -p bin/sysroot/tests
# Extract the test package to the correct location
tar -xJf gvisor-syscalls-tests.tar.xz -C bin/sysroot/tests
# The tests are now available in bin/sysroot/tests/syscalls/
ls bin/sysroot/tests/syscalls/
Important Note: If the bin/sysroot/tests directory doesn't exist in your DragonOS repository, you need to compile DragonOS at least once to generate the necessary directory structure.
After deployment, you can run individual tests:
# Navigate to the tests directory
cd bin/sysroot/tests/syscalls
# Run individual tests
./read_test
# ... and many more
This repository uses CNB (cnb.cool) for continuous integration and delivery. The pipeline:
The build configuration is defined in .cnb.yml and supports parallel compilation for faster build times.
We welcome contributions to expand the test suite coverage:
Special thanks to CNB (cnb.cool) for providing high-speed, reliable build infrastructure that makes this automated testing pipeline possible.
The CNB platform provides:
This project is licensed under the MIT License - see the LICENSE file for details.
For questions, issues, or contributions, please visit our GitHub repository or open an issue.