Comments (5)
I discussed this with @chakri-nelluri and here is my proposal.
I have a PoC of a framework just to do a "sanity" test of a driver. This can be expanded as it matures in the future
Usage
- Use as a standard Unit Test where the driver does the following:
func TestDriver(t *testing.T) {
// Setup the driver. Driver in this example needs to be adjusted for tesing
d := NewDriver()
err := d.Start()
assert.NotNil(err)
defer d.Stop()
// Start Sanity test
tester := driver.NewDriverSanityTester(t, d.Address())
tester.Run()
}
- As a program for non-Golang drivers
$ sanity --endpoint <...>
Implementation
Here is the pseudo-code of the implementation:
type DriverSanityTester struct {
conn *grpc.ClientConn
t *testing.T
}
func NewDriverSanityTester(t *testing.T, address string) *DriverSanityTester {
conn, err := grpc.Dial(address, grpc.WithInsecure())
assert.Nil(t, err)
return &DriverSanityTester{
t: t,
conn: conn,
}
}
func (d *DriverSanityTester) Run() {
RegisterFailHandler(Fail)
var _ = Describe("Identity Server", func() {
var c csi.IdentityClient
BeforeEach(func() {
c = csi.NewIdentityClient(d.conn)
})
It("should fail when no version is provided", func() {
_, err := c.GetPluginInfo(context.Background(), &csi.GetPluginInfoRequest{})
Expect(err).NotTo(HaveOccurred())
})
})
RunSpecs(d.t, "CSI Driver Sanity Suite")
}
from drivers.
Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale
.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close
.
Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale
from drivers.
Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten
.
Rotten issues close after an additional 30d of inactivity.
If this issue is safe to close now please do so with /close
.
Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle rotten
from drivers.
Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen
.
Mark the issue as fresh with /remove-lifecycle rotten
.
Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close
from drivers.
@fejta-bot: Closing this issue.
In response to this:
Rotten issues close after 30d of inactivity.
Reopen the issue with/reopen
.
Mark the issue as fresh with/remove-lifecycle rotten
.Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.
from drivers.
Related Issues (20)
- Sample iSCSI yaml files? HOT 6
- Image Pull errror for nfsplugin HOT 6
- Back-off pulling image "quay.io/k8scsi/cinderplugin" HOT 4
- Add UT for hostpath driver HOT 4
- Hostpath driver doesn't support to specify uid/gid HOT 4
- nodeServer does not implement csi.NodeServer.NodeGetVolumeStats method HOT 4
- nfsplugin:v0.3.0 image is missing HOT 5
- Add synology-csi to sample driver list HOT 1
- Indicate repo is deprecated in README HOT 7
- Update CSI sepc to support expand volume HOT 6
- Block Volume not supported by hostpath driver HOT 4
- NFS Driver : What is in local-up-cluster.sh HOT 4
- "Drivers" link in README HOT 4
- Remove the csi-common package HOT 5
- Not Able to pull image quay.io/k8scsi/nfsplugin: v0.3.0 and CSI Will be work on architecture ppc64le ? HOT 4
- comments spelling mistake in flexvolumedriver.go HOT 4
- Panic with nil pointer when get FsType value HOT 4
- lustre has mounted in csi container,but the pod start failed HOT 1
- ReadyToUse state remains to false state during volumesnapshot creation on AWS HOT 1
- Hostpath driver: csi-pod cannot be created HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from drivers.