mirror of
https://github.com/MobAI-App/simslim.git
synced 2026-09-27 17:02:00 +02:00
The repo root becomes `package simslim`, an importable library holding every piece of slimming logic; the CLI moves to `cmd/simslim`. Previously everything was `package main`, so nothing here could be imported at all. The library carries no external dependencies — urfave/cli stays on the CLI side, along with all terminal-facing code: the interactive profile wizard, writeJSON, truncate/humanBytes, fatal and usage. The library never writes to stdout; it returns values and reports progress through the Reporter callback. Renames forced by collisions with existing types: status() -> ReadStatus, statusForDevice() -> ReadStatusForDevice, diskCleanupPlan() -> PlanDiskCleanup. The shutdown/boot timeouts move to simctl.go as ShutdownTimeout/BootTimeout. `go install` gains a path element: github.com/mobai-app/simslim/cmd/simslim. The installed binary is still named simslim, and -X main.version still applies. packaging/homebrew/simslim.rb.in is updated to match, since std_go_args passes no package path. Verified live against a real simulator: list, profiles, status, doctor, size, disk-plan, measure, boot, shutdown, on, off, on --except, on --profile, clone, rename, delete and the interactive wizard all behave identically to the previous build. JSON output, human output, help text and exit codes are unchanged.
20 lines
531 B
Go
20 lines
531 B
Go
package simslim
|
|
|
|
import "testing"
|
|
|
|
func TestParseDUDiskUsage(t *testing.T) {
|
|
got, err := parseDUDiskUsage([]byte("4747728\t/simulator/path\n"))
|
|
if err != nil {
|
|
t.Fatalf("parseDUDiskUsage() error = %v", err)
|
|
}
|
|
if got != 4_861_673_472 {
|
|
t.Errorf("parseDUDiskUsage() = %d, want 4861673472", got)
|
|
}
|
|
|
|
for _, invalid := range []string{"", "nope /simulator/path", "-1 /simulator/path"} {
|
|
if _, err := parseDUDiskUsage([]byte(invalid)); err == nil {
|
|
t.Errorf("parseDUDiskUsage(%q) unexpectedly succeeded", invalid)
|
|
}
|
|
}
|
|
}
|