
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>
31 lines
1.3 KiB
Go
31 lines
1.3 KiB
Go
/*
|
|
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
|