# This file reports differences detected by import.go since the last import.
# This is only for human review and not machine consumption.
# Please see go/thirdpartygo for more information.
# DO NOT EDIT. This must only be generated by //third_party/golang/import.go.

@@ import (
 	"encoding/json"
 	"errors"
 	"math/big"
-	"os"
 	"path/filepath"
 	"strings"
 	"testing"
 
+	"google3/base/go/runfiles"
+	_ "google3/go/tools/nogo/allowlist/crypto/elliptic"
+
 	"google3/third_party/golang/github_com/fxamacker/cbor/v/v2/cbor"
 	"google3/third_party/golang/github_com/veraison/go_cose/v/v0/cose"
 )
@@ func TestConformance(t *testing.T) {
 			if tt.skip {
 				t.SkipNow()
 			}
-			data, err := os.ReadFile(filepath.Join("testdata", tt.name+".json"))
+			data, err := runfiles.ReadFile(filepath.Join("google3/third_party/golang/github_com/veraison/go_cose/v/v0/testdata", tt.name+".json"))
 			if err != nil {
 				t.Fatal(err)
 			}
