Skip to content

Commit d47e136

Browse files
authored
Merge pull request kubernetes#85540 from pohly/testsuites-api
e2e storage: public API for testsuites, support CSIInlineVolume type for generic resource
2 parents 0ea756f + 8227b61 commit d47e136

17 files changed

+393
-300
lines changed

test/e2e/storage/testpatterns/testpattern.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,11 @@ var (
7676
Name: "Inline-volume (default fs)",
7777
VolType: InlineVolume,
7878
}
79+
// DefaultFsEphemeralVolume is TestPattern for "Ephemeral-volume (default fs)"
80+
DefaultFsEphemeralVolume = TestPattern{
81+
Name: "Ephemeral-volume (default fs)",
82+
VolType: CSIInlineVolume,
83+
}
7984
// DefaultFsPreprovisionedPV is TestPattern for "Pre-provisioned PV (default fs)"
8085
DefaultFsPreprovisionedPV = TestPattern{
8186
Name: "Pre-provisioned PV (default fs)",
@@ -95,6 +100,12 @@ var (
95100
VolType: InlineVolume,
96101
FsType: "ext3",
97102
}
103+
// Ext3EphemeralVolume is TestPattern for "Ephemeral-volume (ext3)"
104+
Ext3EphemeralVolume = TestPattern{
105+
Name: "Ephemeral-volume (ext3)",
106+
VolType: InlineVolume,
107+
FsType: "ext3",
108+
}
98109
// Ext3PreprovisionedPV is TestPattern for "Pre-provisioned PV (ext3)"
99110
Ext3PreprovisionedPV = TestPattern{
100111
Name: "Pre-provisioned PV (ext3)",
@@ -116,6 +127,12 @@ var (
116127
VolType: InlineVolume,
117128
FsType: "ext4",
118129
}
130+
// Ext4EphemeralVolume is TestPattern for "Ephemeral-volume (ext4)"
131+
Ext4EphemeralVolume = TestPattern{
132+
Name: "Ephemeral-volume (ext4)",
133+
VolType: CSIInlineVolume,
134+
FsType: "ext4",
135+
}
119136
// Ext4PreprovisionedPV is TestPattern for "Pre-provisioned PV (ext4)"
120137
Ext4PreprovisionedPV = TestPattern{
121138
Name: "Pre-provisioned PV (ext4)",
@@ -138,6 +155,13 @@ var (
138155
FsType: "xfs",
139156
FeatureTag: "[Slow]",
140157
}
158+
// XfsEphemeralVolume is TestPattern for "Ephemeral-volume (xfs)"
159+
XfsEphemeralVolume = TestPattern{
160+
Name: "Ephemeral-volume (xfs)",
161+
VolType: CSIInlineVolume,
162+
FsType: "xfs",
163+
FeatureTag: "[Slow]",
164+
}
141165
// XfsPreprovisionedPV is TestPattern for "Pre-provisioned PV (xfs)"
142166
XfsPreprovisionedPV = TestPattern{
143167
Name: "Pre-provisioned PV (xfs)",
@@ -162,6 +186,13 @@ var (
162186
FsType: "ntfs",
163187
FeatureTag: "[sig-windows]",
164188
}
189+
// NtfsEphemeralVolume is TestPattern for "Ephemeral-volume (ntfs)"
190+
NtfsEphemeralVolume = TestPattern{
191+
Name: "Ephemeral-volume (ntfs)",
192+
VolType: CSIInlineVolume,
193+
FsType: "ntfs",
194+
FeatureTag: "[sig-windows]",
195+
}
165196
// NtfsPreprovisionedPV is TestPattern for "Pre-provisioned PV (ntfs)"
166197
NtfsPreprovisionedPV = TestPattern{
167198
Name: "Pre-provisioned PV (ntfs)",

test/e2e/storage/testsuites/BUILD

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,13 @@ filegroup(
7676

7777
go_test(
7878
name = "go_default_test",
79-
srcs = ["base_test.go"],
79+
srcs = [
80+
"api_test.go",
81+
"base_test.go",
82+
],
8083
embed = [":go_default_library"],
81-
deps = ["//test/e2e/framework/volume:go_default_library"],
84+
deps = [
85+
"//test/e2e/framework/volume:go_default_library",
86+
"//test/e2e/storage/testpatterns:go_default_library",
87+
],
8288
)
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*
2+
Copyright 2019 The Kubernetes Authors.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
// Package testsuites_test is used intentionally to ensure that the
18+
// code below only has access to exported names. It doesn't have any
19+
// actual test. That the custom volume test suite defined below
20+
// compile is the test.
21+
//
22+
// It's needed because we don't have any in-tree volume test
23+
// suite implementations that aren't in the "testuites" package itself.
24+
// We don't need this for the "TestDriver" interface because there
25+
// we have implementations in a separate package.
26+
package testsuites_test
27+
28+
import (
29+
"k8s.io/kubernetes/test/e2e/framework/volume"
30+
"k8s.io/kubernetes/test/e2e/storage/testpatterns"
31+
"k8s.io/kubernetes/test/e2e/storage/testsuites"
32+
)
33+
34+
type fakeSuite struct {
35+
}
36+
37+
func (f *fakeSuite) GetTestSuiteInfo() testsuites.TestSuiteInfo {
38+
return testsuites.TestSuiteInfo{
39+
Name: "fake",
40+
FeatureTag: "",
41+
TestPatterns: []testpatterns.TestPattern{testpatterns.DefaultFsDynamicPV},
42+
SupportedSizeRange: volume.SizeRange{Min: "1Mi", Max: "1Gi"},
43+
}
44+
}
45+
46+
func (f *fakeSuite) DefineTests(testsuites.TestDriver, testpatterns.TestPattern) {
47+
}
48+
49+
func (f *fakeSuite) SkipRedundantSuite(testsuites.TestDriver, testpatterns.TestPattern) {
50+
}
51+
52+
var _ testsuites.TestSuite = &fakeSuite{}

0 commit comments

Comments
 (0)