40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
#!/usr/bin/env python3
|
|
"""Verification test for wordcount.py - must match wc output exactly."""
|
|
import subprocess
|
|
import sys
|
|
import tempfile
|
|
import os
|
|
|
|
# Create test file with known content
|
|
test_content = "Hello world\nThis is a test file\nWith three lines\n"
|
|
test_file = "/root/troupe-standup/test_verification.txt"
|
|
with open(test_file, 'w') as f:
|
|
f.write(test_content)
|
|
|
|
# Get wc output
|
|
wc_result = subprocess.run(['wc', test_file], capture_output=True, text=True)
|
|
wc_lines, wc_words, wc_chars = map(int, wc_result.stdout.strip().split()[:3])
|
|
|
|
# Get wordcount.py output
|
|
pyc_result = subprocess.run(
|
|
['python3', '/root/.hermes/wizard-outputs/spark/wordcount.py', test_file],
|
|
capture_output=True, text=True
|
|
)
|
|
|
|
if pyc_result.returncode != 0:
|
|
print(f"FAIL: wordcount.py returned {pyc_result.returncode}")
|
|
print(pyc_result.stderr)
|
|
sys.exit(1)
|
|
|
|
parts = pyc_result.stdout.strip().split()
|
|
py_lines, py_words, py_chars = int(parts[0]), int(parts[1]), int(parts[2])
|
|
|
|
print(f"wc: {wc_lines} lines, {wc_words} words, {wc_chars} chars")
|
|
print(f"wordcount.py: {py_lines} lines, {py_words} words, {py_chars} chars")
|
|
|
|
if (wc_lines == py_lines and wc_words == py_words and wc_chars == py_chars):
|
|
print("PASS: outputs match")
|
|
sys.exit(0)
|
|
else:
|
|
print("FAIL: outputs do not match")
|
|
sys.exit(1) |