ExpectError calls t.Fatalf if the error does not contain a substr match. If substr is empty, a nil error is expected. It is useful to call ExpectError from subtests.
SkipRest returns true if there was a non-nil error or if we expected an error that didn't happen, and logs the appropriate error on the test object. The return value indicates whether we should skip the rest of the test case due to the error result.