Skip to content

Unit tests failing on GOOGLE_APPLICATION_CREDENTIALS not set #1173

@dfajmon

Description

@dfajmon

Running test/run_unit.sh now fails on sigs.k8s.io/gcp-filestore-csi-driver/pkg/cloud_provider
Error prints include additional

... google: could not find default credentials. See https://cloud.google.com/docs/authentication/external/set-up-adc for more information ...
Output of unit tests run localy
+ readonly PKGDIR=sigs.k8s.io/gcp-filestore-csi-driver
+ PKGDIR=sigs.k8s.io/gcp-filestore-csi-driver
+ go version
go version go1.23.6 linux/amd64
+ go test -mod=vendor -timeout 30s sigs.k8s.io/gcp-filestore-csi-driver/cmd/...
?       sigs.k8s.io/gcp-filestore-csi-driver/cmd        [no test files]
?       sigs.k8s.io/gcp-filestore-csi-driver/cmd/lockrelease    [no test files]
?       sigs.k8s.io/gcp-filestore-csi-driver/cmd/webhook        [no test files]
+ go test -mod=vendor -timeout 30s sigs.k8s.io/gcp-filestore-csi-driver/pkg/...
?       sigs.k8s.io/gcp-filestore-csi-driver/pkg/apis/multishare        [no test files]
?       sigs.k8s.io/gcp-filestore-csi-driver/pkg/apis/multishare/v1     [no test files]
?       sigs.k8s.io/gcp-filestore-csi-driver/pkg/client/clientset/versioned     [no test files]
?       sigs.k8s.io/gcp-filestore-csi-driver/pkg/client/clientset/versioned/fake        [no test files]
?       sigs.k8s.io/gcp-filestore-csi-driver/pkg/client/clientset/versioned/typed/multishare/v1 [no test files]
?       sigs.k8s.io/gcp-filestore-csi-driver/pkg/client/clientset/versioned/scheme      [no test files]
?       sigs.k8s.io/gcp-filestore-csi-driver/pkg/client/clientset/versioned/typed/multishare/v1/fake    [no test files]
?       sigs.k8s.io/gcp-filestore-csi-driver/pkg/client/informers/externalversions      [no test files]
?       sigs.k8s.io/gcp-filestore-csi-driver/pkg/client/informers/externalversions/internalinterfaces   [no test files]
?       sigs.k8s.io/gcp-filestore-csi-driver/pkg/client/informers/externalversions/multishare   [no test files]
?       sigs.k8s.io/gcp-filestore-csi-driver/pkg/client/informers/externalversions/multishare/v1        [no test files]
?       sigs.k8s.io/gcp-filestore-csi-driver/pkg/client/listers/multishare/v1   [no test files]
?       sigs.k8s.io/gcp-filestore-csi-driver/pkg/cloud_provider/metadata        [no test files]
?       sigs.k8s.io/gcp-filestore-csi-driver/pkg/common [no test files]
W0930 14:19:18.822433  107035 cloud.go:123] GOOGLE_APPLICATION_CREDENTIALS env var not set
I0930 14:19:18.822500  107035 cloud.go:125] Using DefaultTokenSource <nil>
W0930 14:19:18.822568  107035 cloud.go:123] GOOGLE_APPLICATION_CREDENTIALS env var not set
I0930 14:19:18.822571  107035 cloud.go:125] Using DefaultTokenSource <nil>
W0930 14:19:18.822602  107035 cloud.go:123] GOOGLE_APPLICATION_CREDENTIALS env var not set
I0930 14:19:18.822605  107035 cloud.go:125] Using DefaultTokenSource <nil>
W0930 14:19:18.822654  107035 cloud.go:123] GOOGLE_APPLICATION_CREDENTIALS env var not set
I0930 14:19:18.822657  107035 cloud.go:125] Using DefaultTokenSource <nil>
--- FAIL: TestValidateResourceTags (0.00s)
    --- FAIL: TestValidateResourceTags/valid_tags_string (0.00s)
        user_tags_test.go:337: ValidateResourceTags(): got: google: could not find default credentials. See https://cloud.google.com/docs/authentication/external/set-up-adc for more information, wantErr: 
    --- FAIL: TestValidateResourceTags/non_existent_tag (0.00s)
        user_tags_test.go:337: ValidateResourceTags(): got: google: could not find default credentials. See https://cloud.google.com/docs/authentication/external/set-up-adc for more information, wantErr: failed to fetch openshift/test3/test3 tag: googleapi: Error 404: openshift/test3/test3 tag does not exist.
    --- FAIL: TestValidateResourceTags/gapi_tag_not_exist_error (0.00s)
        user_tags_test.go:337: ValidateResourceTags(): got: google: could not find default credentials. See https://cloud.google.com/docs/authentication/external/set-up-adc for more information, wantErr: [openshift/test4/test4] tag(s) provided in unit test does not exist
    --- FAIL: TestValidateResourceTags/invalid_tag_configured(without_parent_ID) (0.00s)
        user_tags_test.go:337: ValidateResourceTags(): got: google: could not find default credentials. See https://cloud.google.com/docs/authentication/external/set-up-adc for more information, wantErr: test4/test4 tag provided in unit test not in expected format(<parentID/tagKey_name/tagValue_name>)
W0930 14:19:18.822738  107035 cloud.go:123] GOOGLE_APPLICATION_CREDENTIALS env var not set
I0930 14:19:18.822741  107035 cloud.go:125] Using DefaultTokenSource <nil>
--- FAIL: TestNewTagValuesClient (0.00s)
    user_tags_test.go:355: newTagValuesClient(): failed to create tag values client: google: could not find default credentials. See https://cloud.google.com/docs/authentication/external/set-up-adc for more information
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
        panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xd88732]

goroutine 55 [running]:
testing.tRunner.func1.2({0xe870e0, 0x18c83e0})
        /home/dfajmon/.gimme/versions/go1.23.6.linux.amd64/src/testing/testing.go:1632 +0x230
testing.tRunner.func1()
        /home/dfajmon/.gimme/versions/go1.23.6.linux.amd64/src/testing/testing.go:1635 +0x35e
panic({0xe870e0?, 0x18c83e0?})
        /home/dfajmon/.gimme/versions/go1.23.6.linux.amd64/src/runtime/panic.go:785 +0x132
sigs.k8s.io/gcp-filestore-csi-driver/pkg/cloud_provider.(*tagValuesClient).close(0xc000402900?)
        /home/dfajmon/openshift/gcp-filestore-csi-driver/pkg/cloud_provider/user_tags.go:392 +0x12
sigs.k8s.io/gcp-filestore-csi-driver/pkg/cloud_provider.TestNewTagValuesClient(0xc000472680)
        /home/dfajmon/openshift/gcp-filestore-csi-driver/pkg/cloud_provider/user_tags_test.go:358 +0x15a
testing.tRunner(0xc000472680, 0x105c228)
        /home/dfajmon/.gimme/versions/go1.23.6.linux.amd64/src/testing/testing.go:1690 +0xf4
created by testing.(*T).Run in goroutine 1
        /home/dfajmon/.gimme/versions/go1.23.6.linux.amd64/src/testing/testing.go:1743 +0x390
FAIL    sigs.k8s.io/gcp-filestore-csi-driver/pkg/cloud_provider 0.010s
ok      sigs.k8s.io/gcp-filestore-csi-driver/pkg/cloud_provider/file    (cached)
ok      sigs.k8s.io/gcp-filestore-csi-driver/pkg/csi_driver     (cached)
ok      sigs.k8s.io/gcp-filestore-csi-driver/pkg/metrics        (cached)
ok      sigs.k8s.io/gcp-filestore-csi-driver/pkg/releaselock    (cached)
ok      sigs.k8s.io/gcp-filestore-csi-driver/pkg/util   (cached)
ok      sigs.k8s.io/gcp-filestore-csi-driver/pkg/webhook        (cached)
FAIL

The ValidateResourceTags is eventually trying to generate token here https://github.com/kubernetes-sigs/gcp-filestore-csi-driver/blob/master/pkg/cloud_provider/cloud.go#L106 and adds error of the not set env.

That is later compared with the expected error and fails.

Are unit tests expected to have this env set?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions