Update the conformance list and doc generation logic
The existing walk.go and conformance.txt have a few shortcomings which we'd like to resolve: - difficult to get the full test name due to test context nesting - complicated AST logic and understanding necessary due to the different ways a test can be invoked and written This changes the AST parsing logic to be much more simple and simply looks for the comments at/around a specific line. This file/line information (and the full test name) is gathered by a custom ginkgo reporter which dumps the SpecSummary data to a file. Also, the SpecSummary dump can, itself, be potentially useful for other post-processing and debugging tasks. Signed-off-by: John Schnake <jschnake@vmware.com>
This commit is contained in:
30
test/conformance/doc.go
Normal file
30
test/conformance/doc.go
Normal file
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
Copyright 2019 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
This stand-alone package is utilized for dynamically generating/maintaining a list of
|
||||
conformance tests. It utilizes a two step approach:
|
||||
- The test binary is built
|
||||
- The test binary is run in dry mode with a custom ginkgo reporter dumping out
|
||||
types.SpecSummary objects which contain full test names and file/code information.
|
||||
- The SpecSummary information is parsed to get file/line info on Conformance tests and
|
||||
then we use a simplified AST parser to grab the comments above the test.
|
||||
|
||||
Due to the complicated nature of how tests can be declared/wrapped in various contexts,
|
||||
this approach is much simpler to maintain than a pure-AST parser and allows us to easily
|
||||
capture the full test names/locations of the tests using the pre-existing ginkgo logic.
|
||||
*/
|
||||
package main
|
Reference in New Issue
Block a user