Consider the following transcript:
$ make maintainer-clean
$ cabal test
[...]
^C to interrupt cabal test
$ cabal clean
cleaning...
$ ls -1d tests*/
tests/
tests-darcs-2.dir/
tests-hashed.dir/
The last two lines indicate intermediary directories created by "cabal
test" but not removed by "cabal clean".
PS: solutions to this may be affected by issue1283.