File size: 1,381 Bytes
c1b8df7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import subprocess
import sys

# 1. Let's create a sample code string with a DELIBERATE bug (2 + 2 = 5!)
buggy_code = """
def add_numbers(a, b):
    return a + b + 1  # BUG: Flipped logic / off-by-one error!
"""

# 2. Let's attach an objective unit test assertion
unit_test = """
assert add_numbers(2, 2) == 4, "Math failed: 2 + 2 should be 4!"
print("ALL TESTS PASSED!")
"""

# We combine them into a single executable payload
full_payload = buggy_code + "\n" + unit_test

print("Launching isolated child subprocess to verify code...")

try:
    # 3. We spawn a child python process to execute the payload with a 2-second timeout!
    result = subprocess.run(
        [sys.executable, "-c", full_payload],
        capture_output=True,  # Capture what prints to screen
        text=True,  # Decode output as strings, not raw bytes
        timeout=2.0,  # Kill process if it loops for more than 2 seconds
    )

    # 4. Evaluate the Exit Code (0 = Success, anything else = Crash/Test Failure)
    if result.returncode == 0:
        print("SANDBOX RESULT: CLEAN (All unit tests passed!)")
        print("Output:", result.stdout.strip())
    else:
        print("SANDBOX RESULT: BUG DETECTED (Unit test failed!)")
        print("Error Traceback:\n", result.stderr.strip())

except subprocess.TimeoutExpired:
    print("SANDBOX RESULT: INFINITE LOOP TERMINATED (Exceeded 2.0s limit!)")