for coverage testing you typically provide not just the input that tests the limits, but you exceed the limits also. you may possibly be assuming that a successful chmod gives you what you want...what if someone deletes the file just after you chmod it? what happens if the module is supplied with garbage as input?..or supplied with null device as a filename instead?
from what i've seen so far in test scripts, perl merely provides the conditional and loop constructs for test cases (the harness), but most of the tests and heavy lifting is with suitable system commands.