A disk tester for the Mac that is careful with disks
DiskSpeedTest benchmarks, stress-tests, scans and burns in disks on macOS. Measuring speed honestly took a few rules; the harder part was making a tool that can erase a whole disk refuse to erase the wrong one.
In late October 2026 a disk started failing on me, and the tools I had on the Mac could either tell me how fast it was or that something was wrong, but not much about where or how badly. So I had Claude build DiskSpeedTest, a native Mac app and command-line tool for the questions a doubtful disk raises: how fast it really is, whether it stays healthy under hours of load, whether every part of it can still be read, and whether it is as big as the label says.
Honest numbers
Most of what makes a benchmark trustworthy is avoiding the ways a disk can flatter itself. Every read and write bypasses macOS’s cache, so the result describes the disk rather than memory. The test file is written in full before it is read, because a disk asked to read space that was never written can answer with zeros without touching the media, and the speeds that come back are fantasy. Data written during a long soak test is read back and compared in full, so a disk that is fast but quietly wrong does not pass.
Four tests, one of them dangerous
A benchmark and a soak test work on a file inside a volume. A surface scan reads the whole disk sector by sector, without writing anything, and produces a map of what could not be read, which can be paused and resumed. The burn-in writes a unique pattern to every sector and reads it all back, which finds sectors that have gone bad, and also the cheap drives that pretend to a capacity they do not have, since writes past their real size land on top of earlier ones.
The burn-in erases the disk, so most of the care in the project went into making sure it only ever erases the one you meant. It refuses the boot disk, refuses a disk with anything mounted, and refuses a disk it cannot identify with certainty. It then shows which disk it is about to destroy, asks you to type its name, and counts down ten seconds before writing anything, checking again before each phase. Scans open the disk read-only, benchmarks only ever write their own test file, and the app never runs a burn-in itself — it shows the command to run in Terminal and leaves the decision there.
The command-line alternatives
Each of these jobs already has a good command-line tool. fio is the reference for benchmarks, as long as you know which of its many options make a result mean something. badblocks scans for unreadable sectors and can run a destructive write test, but it comes from the Linux world and trusts you to name the right device. f3 is the usual answer to fake-capacity drives, though on the Mac only through the filesystem, since its fastest probe is Linux-only. smartctl reports what the drive says about itself, which is not always the whole story.
DiskSpeedTest does all four in one place, with the options that matter already chosen. The scan keeps a map of the disk and resumes after an interruption, which matters on a damaged drive that takes hours to read. The burn-in catches bad sectors and fake capacity in the same pass and reads SMART before and after, so the drive’s own counters can be compared with what the test found. And it refuses far more readily than it agrees, which is what I want from anything that can erase a disk.
Was it worth it?
Yes. It showed me enough about the failing disk to stop guessing, and the disk was replaced. I then ran it over the disks that had been sitting on my shelves for years to find out which of them could still be trusted, and every new disk goes through it before it gets any data.
dmorel69/diskSpeedTest— Swift, SwiftUI, macOS