Add custom nodes, Civitai loras (LFS), and vast.ai setup script
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
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>
This commit is contained in:
225
custom_nodes/ComfyUI-Impact-Pack/tests/test_edge_cases.sh
Executable file
225
custom_nodes/ComfyUI-Impact-Pack/tests/test_edge_cases.sh
Executable file
@@ -0,0 +1,225 @@
|
||||
#!/bin/bash
|
||||
# Edge Cases Test Suite
|
||||
# Tests edge cases: empty lines, whitespace, long lines, special characters, etc.
|
||||
|
||||
set -e
|
||||
|
||||
PORT=8196
|
||||
COMFYUI_DIR="/mnt/teratera/git/ComfyUI"
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
IMPACT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
CONFIG_FILE="$IMPACT_DIR/impact-pack.ini"
|
||||
LOG_FILE="/tmp/edge_cases_test.log"
|
||||
|
||||
GREEN='\033[0;32m'
|
||||
RED='\033[0;31m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
echo "=========================================="
|
||||
echo "Edge Cases Test Suite"
|
||||
echo "=========================================="
|
||||
echo "Port: $PORT"
|
||||
echo "Testing: Edge cases and boundary conditions"
|
||||
echo ""
|
||||
|
||||
# Cleanup function
|
||||
cleanup() {
|
||||
echo ""
|
||||
echo "Cleaning up..."
|
||||
pkill -f "python.*main.py.*--port $PORT" 2>/dev/null || true
|
||||
rm -f "$CONFIG_FILE"
|
||||
echo "Cleanup complete"
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
# Kill any existing server on this port
|
||||
echo "Killing any existing server on port $PORT..."
|
||||
pkill -f "python.*main.py.*--port $PORT" 2>/dev/null || true
|
||||
sleep 2
|
||||
|
||||
# Setup configuration
|
||||
echo "Setting up configuration..."
|
||||
cat > "$CONFIG_FILE" << EOF
|
||||
[default]
|
||||
custom_wildcards = $IMPACT_DIR/tests/wildcards/samples
|
||||
wildcard_cache_limit_mb = 50
|
||||
dependency_version = 24
|
||||
mmdet_skip = True
|
||||
sam_editor_cpu = False
|
||||
sam_editor_model = sam_vit_h_4b8939.pth
|
||||
disable_gpu_opencv = True
|
||||
EOF
|
||||
|
||||
echo "Configuration created: custom_wildcards = $IMPACT_DIR/tests/wildcards/samples"
|
||||
echo ""
|
||||
|
||||
# Start server
|
||||
echo "Starting ComfyUI server on port $PORT..."
|
||||
cd "$COMFYUI_DIR"
|
||||
bash run.sh --listen 127.0.0.1 --port $PORT > "$LOG_FILE" 2>&1 &
|
||||
SERVER_PID=$!
|
||||
echo "Server PID: $SERVER_PID"
|
||||
|
||||
# Wait for server startup
|
||||
echo "Waiting for server startup..."
|
||||
for i in {1..60}; do
|
||||
sleep 1
|
||||
if curl -s http://127.0.0.1:$PORT/ > /dev/null 2>&1; then
|
||||
echo "✅ Server ready (${i}s)"
|
||||
break
|
||||
fi
|
||||
if [ $((i % 10)) -eq 0 ]; then
|
||||
echo " ... ${i}s elapsed"
|
||||
fi
|
||||
if [ $i -eq 60 ]; then
|
||||
echo ""
|
||||
echo "${RED}❌ Server failed to start within 60 seconds${NC}"
|
||||
echo "Log tail:"
|
||||
tail -20 "$LOG_FILE"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
|
||||
# Test function
|
||||
test_edge_case() {
|
||||
local TEST_NUM=$1
|
||||
local DESCRIPTION=$2
|
||||
local PROMPT=$3
|
||||
local SEED=$4
|
||||
|
||||
echo "${BLUE}=== Test $TEST_NUM: $DESCRIPTION ===${NC}"
|
||||
echo "Prompt: ${YELLOW}$PROMPT${NC}"
|
||||
echo "Seed: $SEED"
|
||||
|
||||
RESULT=$(curl -s -X POST http://127.0.0.1:$PORT/impact/wildcards \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"text\": \"$PROMPT\", \"seed\": $SEED}" | \
|
||||
python3 -c "import sys, json; print(json.load(sys.stdin).get('text','ERROR'))" 2>/dev/null || echo "ERROR")
|
||||
|
||||
echo "Result: ${GREEN}$RESULT${NC}"
|
||||
|
||||
if [ "$RESULT" != "ERROR" ] && [ -n "$RESULT" ]; then
|
||||
echo "Status: ${GREEN}✅ PASS${NC}"
|
||||
else
|
||||
echo "Status: ${RED}❌ FAIL${NC}"
|
||||
fi
|
||||
echo ""
|
||||
}
|
||||
|
||||
echo "=========================================="
|
||||
echo "Test Suite Execution"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# Empty Lines and Whitespace Tests
|
||||
test_edge_case "01" "Empty lines handling" \
|
||||
"__test_edge_empty_lines__" \
|
||||
100
|
||||
|
||||
test_edge_case "02" "Whitespace handling" \
|
||||
"__test_edge_whitespace__" \
|
||||
200
|
||||
|
||||
test_edge_case "03" "Long lines handling" \
|
||||
"__test_edge_long_lines__" \
|
||||
300
|
||||
|
||||
# Special Characters Tests
|
||||
test_edge_case "04" "Special characters in content" \
|
||||
"__test_edge_special_chars__" \
|
||||
400
|
||||
|
||||
test_edge_case "05" "Embedded wildcard syntax" \
|
||||
"__test_edge_special_chars__" \
|
||||
401
|
||||
|
||||
# Case Insensitivity Tests
|
||||
test_edge_case "06" "Lowercase wildcard" \
|
||||
"__test_edge_case_insensitive__" \
|
||||
500
|
||||
|
||||
test_edge_case "07" "UPPERCASE wildcard" \
|
||||
"__TEST_EDGE_CASE_INSENSITIVE__" \
|
||||
500
|
||||
|
||||
test_edge_case "08" "MixedCase wildcard" \
|
||||
"__TeSt_EdGe_CaSe_InSeNsItIvE__" \
|
||||
500
|
||||
|
||||
# Comment Handling Tests
|
||||
test_edge_case "09" "Comments in wildcard file" \
|
||||
"__test_comments__" \
|
||||
600
|
||||
|
||||
# Pattern Matching Tests
|
||||
test_edge_case "10" "Pattern matching __*/name__" \
|
||||
"__*/test_pattern_match__" \
|
||||
700
|
||||
|
||||
test_edge_case "11" "Direct pattern match" \
|
||||
"__test_pattern_match__" \
|
||||
700
|
||||
|
||||
# Quantifier Tests
|
||||
test_edge_case "12" "Quantifier 3#" \
|
||||
"3#__test_quantifier__" \
|
||||
800
|
||||
|
||||
test_edge_case "13" "Quantifier 5# with dynamic" \
|
||||
"{2\$\$, \$\$5#__test_quantifier__}" \
|
||||
801
|
||||
|
||||
# Complex Combinations
|
||||
test_edge_case "14" "Mixed special chars and wildcards" \
|
||||
"__test_edge_special_chars__ with {option1|option2}" \
|
||||
900
|
||||
|
||||
test_edge_case "15" "Long prompt with multiple wildcards" \
|
||||
"__test_edge_empty_lines__ and __test_edge_whitespace__ and __test_comments__" \
|
||||
1000
|
||||
|
||||
# Boundary Conditions
|
||||
test_edge_case "16" "Very long dynamic prompt" \
|
||||
"{__test_edge_long_lines__|__test_edge_whitespace__|__test_edge_empty_lines__|__test_comments__|__test_edge_special_chars__}" \
|
||||
1100
|
||||
|
||||
test_edge_case "17" "Nested wildcards in dynamic" \
|
||||
"{red __test_quantifier__|blue __test_pattern_match__|green __test_comments__}" \
|
||||
1200
|
||||
|
||||
test_edge_case "18" "Quantifier with case-insensitive" \
|
||||
"2#__TEST_QUANTIFIER__" \
|
||||
1300
|
||||
|
||||
# Stress Tests
|
||||
test_edge_case "19" "Multiple quantifiers" \
|
||||
"3#__test_quantifier__ and 2#__test_comments__" \
|
||||
1400
|
||||
|
||||
test_edge_case "20" "Case insensitive pattern match" \
|
||||
"__*/TEST_PATTERN_MATCH__" \
|
||||
1500
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "Summary"
|
||||
echo "=========================================="
|
||||
echo "${GREEN}✅ Edge case tests completed${NC}"
|
||||
echo ""
|
||||
echo "All tests verified edge case handling:"
|
||||
echo " 1. Empty lines and whitespace ✓"
|
||||
echo " 2. Very long lines ✓"
|
||||
echo " 3. Special characters ✓"
|
||||
echo " 4. Case-insensitive matching ✓"
|
||||
echo " 5. Comment line filtering ✓"
|
||||
echo " 6. Pattern matching (__*/name__) ✓"
|
||||
echo " 7. Quantifiers (N#__wildcard__) ✓"
|
||||
echo " 8. Complex combinations ✓"
|
||||
echo " 9. Boundary conditions ✓"
|
||||
echo ""
|
||||
echo "Log file: $LOG_FILE"
|
||||
Reference in New Issue
Block a user