1 /* 2 Copyright 2023 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 v1alpha1 18 19 // ProfileReport is the generated report for the test results of a specific 20 // named conformance profile. 21 type ProfileReport struct { 22 // Name indicates the name of the conformance profile (e.g. "HTTP", 23 // "TLS", "Mesh", e.t.c.). 24 Name string `json:"name"` 25 26 // Core indicates the core support level which includes the set of tests 27 // which are the minimum the implementation must pass to be considered at 28 // all conformant. 29 Core Status `json:"core"` 30 31 // Extended indicates the extended support level which includes additional 32 // optional features which the implementation may choose to implement 33 // support for, but are not required. 34 Extended *ExtendedStatus `json:"extended,omitempty"` 35 } 36 37 // ExtendedStatus shows the testing results for the extended support level. 38 type ExtendedStatus struct { 39 Status `json:",inline"` 40 41 // SupportedFeatures indicates which extended features were flagged as 42 // supported by the implementation and tests will be attempted for. 43 SupportedFeatures []string `json:"supportedFeatures,omitempty"` 44 45 // UnsupportedFeatures indicates which extended features the implementation 46 // does not have support for and therefore will not attempt to test. 47 UnsupportedFeatures []string `json:"unsupportedFeatures,omitempty"` 48 } 49 50 // Status includes details on the results of a test. 51 type Status struct { 52 Result `json:"result"` 53 54 // Summary is a human-readable message intended for end-users to understand 55 // the overall status at a glance. 56 Summary string `json:"summary"` 57 58 // Statistics includes numerical statistics on the result of the test run. 59 Statistics `json:"statistics"` 60 61 // SkippedTests indicates which tests were explicitly disabled in the test 62 // suite. Skipping tests for Core level support implicitly identifies the 63 // results as being partial and the implementation will not be considered 64 // conformant at any level. 65 SkippedTests []string `json:"skippedTests,omitempty"` 66 67 // FailedTests indicates which tests were failing during the execution of 68 // test suite. 69 FailedTests []string `json:"failedTests,omitempty"` 70 } 71