@@ -20,6 +20,7 @@ import (
20
20
"github.com/google/cel-go/cel"
21
21
"github.com/google/cel-go/common/decls"
22
22
"github.com/google/cel-go/common/types"
23
+ "strings"
23
24
"testing"
24
25
25
26
"k8s.io/apimachinery/pkg/util/sets"
@@ -28,6 +29,9 @@ import (
28
29
func TestLibraryCompatibility (t * testing.T ) {
29
30
functionNames := sets .New [string ]()
30
31
for _ , lib := range KnownLibraries () {
32
+ if ! strings .HasPrefix (lib .LibraryName (), "kubernetes." ) {
33
+ t .Errorf ("Expected all kubernetes CEL libraries to have a name package with a 'kubernetes.' prefix but got %v" , lib .LibraryName ())
34
+ }
31
35
for name := range lib .declarations () {
32
36
functionNames [name ] = struct {}{}
33
37
}
@@ -93,12 +97,18 @@ func TestTypeRegistration(t *testing.T) {
93
97
}
94
98
}
95
99
}
96
- for _ , t := range lib .Types () {
97
- registeredTypes .Insert (t )
100
+ for _ , lb := range lib .Types () {
101
+ registeredTypes .Insert (lb )
102
+ if ! strings .HasPrefix (lb .TypeName (), "kubernetes." ) && ! legacyTypeNames .Has (lb .TypeName ()) {
103
+ t .Errorf ("Expected all types in kubernetes CEL libraries to have a type name packaged with a 'kubernetes.' prefix but got %v" , lb .TypeName ())
104
+ }
98
105
}
99
106
unregistered := usedTypes .Difference (registeredTypes )
100
107
if len (unregistered ) != 0 {
101
108
t .Errorf ("Expected types to be registered with the %s library Type() functions, but they were not: %v" , lib .LibraryName (), unregistered )
102
109
}
103
110
}
104
111
}
112
+
113
+ // TODO: Consider renaming these to "kubernetes.net.IP" and "kubernetes.net.CIDR" if we decide not to promote them to cel-go
114
+ var legacyTypeNames = sets .New [string ]("net.IP" , "net.CIDR" )
0 commit comments