My first sentence was hinting at the problem. INV* is expanded first, leading to something like
Code:
INV1 INV2 INVwhatever
If you inject that into your original statement, you get:
Code:
if test -r INV1 INV2 INVwhatever
When your shell parses that, it finds "test -r INV1" and then doesn't know what to do with INV2 and raises a syntax error. Thus, you have to accommodate for a variable number of files after expansion.