1
// Copyright Istio Authors
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
7
// http://www.apache.org/licenses/LICENSE-2.0
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
20
"istio.io/istio/pilot/pkg/model"
21
"istio.io/istio/pilot/pkg/security/trustdomain"
22
"istio.io/istio/pkg/fuzz"
25
func FuzzBuildHTTP(f *testing.F) {
26
fuzz.Fuzz(f, func(fg fuzz.Helper) {
27
bundle := fuzz.Struct[trustdomain.Bundle](fg)
28
push := fuzz.Struct[*model.PushContext](fg, validatePush)
29
node := fuzz.Struct[*model.Proxy](fg)
30
selectionOpts := model.WorkloadSelectionOpts{
31
Namespace: node.ConfigNamespace,
32
WorkloadLabels: node.Labels,
34
policies := push.AuthzPolicies.ListAuthorizationPolicies(selectionOpts)
35
option := fuzz.Struct[Option](fg)
36
b := New(bundle, push, policies, option)
39
return // To help linter
45
func FuzzBuildTCP(f *testing.F) {
46
fuzz.Fuzz(f, func(fg fuzz.Helper) {
47
bundle := fuzz.Struct[trustdomain.Bundle](fg)
48
push := fuzz.Struct[*model.PushContext](fg, validatePush)
49
node := fuzz.Struct[*model.Proxy](fg)
50
selectionOpts := model.WorkloadSelectionOpts{
51
Namespace: node.ConfigNamespace,
52
WorkloadLabels: node.Labels,
54
policies := push.AuthzPolicies.ListAuthorizationPolicies(selectionOpts)
55
option := fuzz.Struct[Option](fg)
56
b := New(bundle, push, policies, option)
59
return // To help linter
65
func validatePush(in *model.PushContext) bool {
69
if in.AuthzPolicies == nil {