Regres: Check out the change before attempting to read files from it.

Fixes the loading of the dEQP config file from the CI change.

Bug: b/140172528
Change-Id: Iabe0b66fd305cdd9c8bb0869c1ea8082cf7d236c
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/38029
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
diff --git a/tests/regres/main.go b/tests/regres/main.go
index e8fc57a..b5ac659 100644
--- a/tests/regres/main.go
+++ b/tests/regres/main.go
@@ -298,15 +298,15 @@
 	latest := r.newTest(change.latest)
 	defer latest.cleanup()
 
+	if err := latest.checkout(); err != nil {
+		return "", cause.Wrap(err, "Failed to checkout '%s'", change.latest)
+	}
+
 	deqp, err := r.getOrBuildDEQP(latest)
 	if err != nil {
 		return "", cause.Wrap(err, "Failed to build dEQP '%v' for change", change.id)
 	}
 
-	if err := latest.checkout(); err != nil {
-		return "", cause.Wrap(err, "Failed to checkout '%s'", change.latest)
-	}
-
 	log.Printf("Testing latest patchset for change '%s'\n", change.id)
 	latestResults, testlists, err := r.testLatest(change, latest, deqp)
 	if err != nil {
@@ -332,9 +332,11 @@
 
 func (r *regres) getOrBuildDEQP(test *test) (deqp, error) {
 	srcDir := test.srcDir
-	if !isFile(path.Join(srcDir, deqpConfigRelPath)) {
+	if p := path.Join(srcDir, deqpConfigRelPath); !isFile(p) {
 		srcDir, _ = os.Getwd()
-		log.Println("Couldn't open dEQP config file from change, falling back to internal version")
+		log.Printf("Couldn't open dEQP config file from change (%v), falling back to internal version\n", p)
+	} else {
+		log.Println("Using dEQP config file from change")
 	}
 	file, err := os.Open(path.Join(srcDir, deqpConfigRelPath))
 	if err != nil {