Add simpler method for test generation#266
Open
zbreit wants to merge 4 commits into
Open
Conversation
While generating test code for C and C++, I found that manually specifying WordLocations was quite tedious. It made it challenging to add new test cases when testing new language features. To simplify this process, this commit adds the `get_marked_misspellings()` function, which takes in an input string where all expected misspellings are marked using start/end delimiters. The function returns a struct containing: 1. The input string with the delimiters removed. 2. All of the marked misspellings. You can use this function to quickly test lots of functionality using simple-to-create input files.
Word locations are not deterministically ordered, so we need to sort them before comparing the sequences for equality.
Contributor
Author
|
Wasn't sure what you thought of this approach, but I think it makes writing tests a bit easier. Let me know if you have any suggestions! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
While generating test code for C and C++, I found that manually specifying WordLocations was quite tedious. It made it challenging to add new test cases when testing new language features.
To simplify this process, this commit adds the
get_marked_misspellings()function, which takes in an input string where all expected misspellings are marked using start/end delimiters. The function returns a struct containing:You can use this function to quickly test lots of functionality using simple-to-create input files.
As an example, I converted the C-language tests to use this new functionality. As a result of the testing, I identified and fixed a bug related to enum, struct, and union specifiers. Previously, codebook would flag
Structt,EnummandUnionnin the following code snippet: