diff --git a/loop/port_monitor_test.go b/loop/port_monitor_test.go
index 1339720..ec847bd 100644
--- a/loop/port_monitor_test.go
+++ b/loop/port_monitor_test.go
@@ -2,6 +2,8 @@
 
 import (
 	"context"
+	"os"
+	"os/exec"
 	"testing"
 	"time"
 
@@ -224,6 +226,42 @@
 	}
 }
 
+// TestPortMonitor_ShouldIgnoreProcess tests the shouldIgnoreProcess function.
+func TestPortMonitor_ShouldIgnoreProcess(t *testing.T) {
+	agent := createTestAgent(t)
+	pm := NewPortMonitor(agent, 100*time.Millisecond)
+
+	// Test with current process (should not be ignored)
+	currentPid := os.Getpid()
+	if pm.shouldIgnoreProcess(currentPid) {
+		t.Errorf("current process should not be ignored")
+	}
+
+	// Test with invalid PID
+	if pm.shouldIgnoreProcess(0) {
+		t.Errorf("invalid PID should not be ignored")
+	}
+	if pm.shouldIgnoreProcess(-1) {
+		t.Errorf("negative PID should not be ignored")
+	}
+
+	// Test with a process that has SKETCH_IGNORE_PORTS=1
+	cmd := exec.Command("sleep", "5")
+	cmd.Env = append(os.Environ(), "SKETCH_IGNORE_PORTS=1")
+	err := cmd.Start()
+	if err != nil {
+		t.Fatalf("failed to start test process: %v", err)
+	}
+	defer cmd.Process.Kill()
+
+	// Allow a moment for the process to start
+	time.Sleep(100 * time.Millisecond)
+
+	if !pm.shouldIgnoreProcess(cmd.Process.Pid) {
+		t.Errorf("process with SKETCH_IGNORE_PORTS=1 should be ignored")
+	}
+}
+
 // createTestAgent creates a minimal test agent for testing.
 func createTestAgent(t *testing.T) *Agent {
 	// Create a minimal agent for testing
