Initial commit: forge-tools-ssh — MCP-сервер для администрирования по SSH

This commit is contained in:
Maksim Totmin
2026-10-01 10:13:48 +07:00
commit 1821fe7968
30 changed files with 5342 additions and 0 deletions
+56
View File
@@ -0,0 +1,56 @@
package tools
import (
"strings"
"testing"
)
// TestDiskUsageCmd — команда точного disk_usage обязана квотировать путь и
// не путать "место на /opt" с корнем (df по конкретному пути, не "df -h /").
func TestDiskUsageCmd(t *testing.T) {
cmd := diskUsageCmd("/opt")
for _, want := range []string{"df -hP", "'/opt'"} {
if !strings.Contains(cmd, want) {
t.Errorf("diskUsageCmd(/opt) = %q: missing %q", cmd, want)
}
}
if strings.Contains(cmd, "df -h /") {
t.Errorf("diskUsageCmd(/opt) = %q: must not fall back to root-only 'df -h /'", cmd)
}
// Апостроф/спецсимвол в пути не должен ломать квотирование (инъекция).
cmd2 := diskUsageCmd("/opt/x' ;rm -rf /")
if !strings.Contains(cmd2, shellQuote("/opt/x' ;rm -rf /")) {
t.Errorf("diskUsageCmd does not shellQuote path: %q", cmd2)
}
}
// TestHighlightHighUsage — регрессия на "почти полный" раздел: >=80% должен
// получить маркер, а <80% и заголовок — нет (раньше фильтр >90% скрывал 84%).
func TestHighlightHighUsage(t *testing.T) {
in := "Filesystem 1024-blocks Used Available Capacity Mounted-on\n" +
"/dev/mapper/opt-opt 128G 102G 20G 84% /opt\n" +
"/dev/sda1 30G 25G 3.6G 84% /\n"
out := highlightHighUsage(in)
if !strings.Contains(out, "/opt") {
t.Fatalf("highlightHighUsage dropped /opt: %q", out)
}
if !strings.Contains(out, "<< USE>=80%") {
t.Errorf("highlightHighUsage should mark >=80%% partition: %q", out)
}
// Колонка 5 у /opt — "84%"; маркер должен стоять на этой строке.
var marked bool
for _, line := range strings.Split(out, "\n") {
if strings.Contains(line, "/opt") && strings.Contains(line, "84%") {
if !strings.Contains(line, "<< USE>=80%") {
t.Errorf("84%% partition not marked on its own line: %q", line)
}
marked = true
}
if strings.Contains(line, "Filesystem") && strings.Contains(line, "<< USE>=80%") {
t.Errorf("header must not be marked: %q", line)
}
}
if !marked {
t.Errorf("the /opt line was not marked: %q", out)
}
}