Urunner Stdlib
Run ets_func_tests using the Universal Runner (urunner) tool.
Tool Location
- •Runner directory:
../../../tests/tests-u-runner-2/ - •Runner script:
runner.shormain.py - •Configuration:
cfg/workflows/andcfg/test-suites/
Prerequisites
- •Panda build - Build must be completed (see build-stdlib skill)
- •Python 3.8+ - 3.10 recommended
- •Virtual environment - Created via
sudo static_core/scripts/install-deps-ubuntu -i=test - •Environment setup -
~/.urunner.envmust exist with required variables
Environment Variables
Create ~/.urunner.env:
bash
ARKCOMPILER_RUNTIME_CORE_PATH=<path to arkcompiler_runtime_core> ARKCOMPILER_ETS_FRONTEND_PATH=<path to arkcompiler_ets_frontend> PANDA_BUILD=<path to build folder> WORK_DIR=<path to temporary working folder>
Or run: ./runner.sh init for interactive setup.
Quick Start
From stdlib directory (stdlib/):
bash
# Run all stdlib tests cd ../../../tests/tests-u-runner-2/ ./runner.sh panda-int ets-func-tests ets-es-checked # Or with specific options ./runner.sh panda-int ets-func-tests --show-progress --force-generate
Basic Usage
Standard Test Run
bash
cd ../../../tests/tests-u-runner-2/ ./runner.sh <workflow> <test-suite> [options]
Common Workflows
From cfg/workflows/:
- •
panda-int- Panda interpreter (most common for stdlib) - •
panda-aot- Panda AOT compilation - •
ark- ARK runtime - •
checker- Type checker only
Test Suite for Stdlib
The stdlib tests are typically run with:
- •Test suite:
ets-func-tests(may vary, checkcfg/test-suites/)
Running Specific Tests
Filter Tests
bash
# Run specific test file ./runner.sh panda-int ets-func-tests --test-file StringCharAtTest.ets # Filter by pattern ./runner.sh panda-int ets-func-tests --filter "String*" # Multiple filters ./runner.sh panda-int ets-func-tests --filter "core/*" --filter "containers/*"
Test Directory
bash
# Run tests in specific subdirectory ./runner.sh panda-int ets-func-tests --test-dir core/
Common Options
bash
--show-progress # Show progress bar --processes <N> # Number of parallel processes (default: all) --force-generate # Force regeneration of test files --extension ets # File extension (default: ets) --load-runtimes ets # Runtimes to load --opt-level 2 # Optimization level (0-3) --timeout <N> # Test timeout in seconds
Examples
Run All Stdlib Tests
bash
cd ../../../tests/tests-u-runner-2/ ./runner.sh panda-int ets-func-tests --show-progress
Run Specific Test File
bash
./runner.sh panda-int ets-func-tests --test-file StringGetTest.ets
Run With Custom Options
bash
./runner.sh panda-int ets-func-tests \
--show-progress \
--processes 4 \
--force-generate
Run Tests Matching Pattern
bash
./runner.sh panda-int ets-func-tests --filter "String*"
Output and Results
- •Reports: Generated in
$WORK_DIR/reports/ - •Logs: Available in work directory
- •Exit codes: 0 = success, non-zero = failures
Troubleshooting
Environment Not Set Up
bash
# Create .urunner.env ./runner.sh init # Or manually create ~/.urunner.env with required variables
Virtual Environment Missing
bash
sudo static_core/scripts/install-deps-ubuntu -i=test
Build Not Found
bash
# Ensure panda is built cd ../../../ cmake --build build
Direct Python Usage
If preferred, run main.py directly:
bash
cd ../../../tests/tests-u-runner-2/ source ~/.venv-panda/bin/activate python3 main.py panda-int ets-func-tests --show-progress deactivate