Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
Python Linting / Run Pylint (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.10, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.11, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.12, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-unix-nightly (12.1, , linux, 3.11, [self-hosted Linux], nightly) (push) Has been cancelled
Execution Tests / test (macos-latest) (push) Has been cancelled
Execution Tests / test (ubuntu-latest) (push) Has been cancelled
Execution Tests / test (windows-latest) (push) Has been cancelled
Test server launches without errors / test (push) Has been cancelled
Unit Tests / test (macos-latest) (push) Has been cancelled
Unit Tests / test (ubuntu-latest) (push) Has been cancelled
Unit Tests / test (windows-2022) (push) Has been cancelled
Includes 30 custom nodes committed directly, 7 Civitai-exclusive loras stored via Git LFS, and a setup script that installs all dependencies and downloads HuggingFace-hosted models on vast.ai. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
137 lines
4.2 KiB
Markdown
137 lines
4.2 KiB
Markdown
# Wildcard System Test Suite
|
|
|
|
Comprehensive test suite for ComfyUI Impact Pack wildcard system.
|
|
|
|
## Test Suites
|
|
|
|
### test_encoding.sh (15 tests)
|
|
**Purpose**: UTF-8 multi-language encoding validation
|
|
**Port**: 8198
|
|
**Coverage**:
|
|
- Korean Hangul characters
|
|
- Emoji support
|
|
- Chinese characters
|
|
- Arabic RTL text
|
|
- Mathematical and currency symbols
|
|
- Mixed multi-language content
|
|
- UTF-8 in dynamic prompts, quantifiers, multi-select
|
|
|
|
### test_error_handling.sh (10 tests)
|
|
**Purpose**: Graceful error handling verification
|
|
**Port**: 8197
|
|
**Coverage**:
|
|
- Non-existent wildcards
|
|
- Circular reference detection (max 100 iterations)
|
|
- Malformed syntax
|
|
- Deep nesting without crashes
|
|
- Multiple circular references
|
|
|
|
### test_edge_cases.sh (20 tests)
|
|
**Purpose**: Edge case and boundary condition validation
|
|
**Port**: 8196
|
|
**Coverage**:
|
|
- Empty lines and whitespace filtering
|
|
- Very long lines (>1000 characters)
|
|
- Special characters preservation
|
|
- Case-insensitive matching
|
|
- Comment line filtering
|
|
- Pattern matching (__*/name__)
|
|
- Quantifiers (N#__wildcard__)
|
|
- Complex syntax combinations
|
|
|
|
### test_deep_nesting.sh (17 tests)
|
|
**Purpose**: Transitive wildcard expansion and depth-agnostic pattern matching
|
|
**Port**: 8194
|
|
**Coverage**:
|
|
- 7-level transitive expansion (directory depth + file references)
|
|
- All depth levels (1-7) individually
|
|
- Mixed depth combinations
|
|
- Nesting with quantifiers and multi-select
|
|
- Nesting with weighted selection
|
|
- Depth-agnostic pattern matching (`__*/name__`)
|
|
- Complex multi-wildcard prompts
|
|
|
|
### test_ondemand_loading.sh (8 tests)
|
|
**Purpose**: Progressive on-demand wildcard loading
|
|
**Port**: 8193
|
|
**Coverage**:
|
|
- Small cache (1MB) - on-demand enabled
|
|
- Moderate cache (10MB) - progressive loading
|
|
- Large cache (100MB) - eager loading
|
|
- Aggressive lazy loading (0.5MB)
|
|
- Balanced mode (50MB default)
|
|
- On-demand with deep nesting
|
|
- On-demand with multiple wildcards
|
|
- Cache boundary testing
|
|
|
|
### test_config_quotes.sh (5 tests)
|
|
**Purpose**: Configuration path handling validation
|
|
**Port**: 8192
|
|
**Coverage**:
|
|
- Unquoted paths
|
|
- Double-quoted paths
|
|
- Single-quoted paths
|
|
- Paths with spaces
|
|
- Mixed quote scenarios
|
|
|
|
### test_dynamic_prompts_full.sh (11 tests)
|
|
**Purpose**: Comprehensive dynamic prompt feature validation with statistical analysis
|
|
**Port**: 8188
|
|
**Coverage**:
|
|
- **Multiselect** (4 tests): 2-item, 3-item, single-item, max-item with separator validation
|
|
- **Weighted Selection** (5 tests): 10:1 ratio, equal weights, extreme bias, multi-level weights, default mixing
|
|
- **Basic Selection** (2 tests): Simple random, nested selection
|
|
- Statistical distribution verification (100+ iterations per test)
|
|
- Duplicate detection and item count validation
|
|
- Separator correctness validation
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Run individual test
|
|
bash test_encoding.sh
|
|
|
|
# Run all tests
|
|
bash test_encoding.sh
|
|
bash test_error_handling.sh
|
|
bash test_edge_cases.sh
|
|
bash test_deep_nesting.sh
|
|
bash test_ondemand_loading.sh
|
|
bash test_config_quotes.sh
|
|
bash test_dynamic_prompts_full.sh
|
|
```
|
|
|
|
## Test Infrastructure
|
|
|
|
- **Configuration**: Each test creates `impact-pack.ini` with test wildcard path
|
|
- **Server Lifecycle**: Automatic server start/stop with dedicated ports
|
|
- **Cleanup**: Automatic cleanup on test completion
|
|
- **Logging**: Detailed logs in `/tmp/*_test.log`
|
|
|
|
## Test Samples
|
|
|
|
Located in `wildcards/samples/`:
|
|
- `아름다운색.txt` - Korean UTF-8 test with 12 symbolic colors
|
|
- `test_encoding_*.txt` - UTF-8 encoding test files
|
|
- `test_edge_*.txt` - Edge case test files
|
|
- `test_error_*.txt` - Error handling test files
|
|
- `test_nesting_*.txt` - Nesting test files (7 levels)
|
|
- `patterns/` - Subdirectory for pattern matching tests
|
|
|
|
## Status
|
|
|
|
✅ **86 tests, 100% pass rate** (15+10+20+17+8+5+11)
|
|
✅ **Production ready**
|
|
✅ **Complete PRD coverage**
|
|
✅ **On-demand loading validated**
|
|
✅ **Config quotes handling validated**
|
|
✅ **Dynamic prompts statistically validated**
|
|
✅ **Weighted selection verified (correct {weight::option} syntax)**
|
|
✅ **Pattern matching validated (depth-agnostic __*/name__)**
|
|
|
|
## Documentation
|
|
|
|
- [Wildcard System PRD](../docs/wildcards/WILDCARD_SYSTEM_PRD.md)
|
|
- [System Design](../docs/wildcards/WILDCARD_SYSTEM_DESIGN.md)
|
|
- [Testing Guide](../docs/wildcards/WILDCARD_TESTING_GUIDE.md)
|