SingleStepTests / ProcessorTests

A language-agnostic JSON-encoded instruction-by-instruction test suite for the 8088, 68000, 65816, 65[c]02 and SPC700 that includes bus activity.
188 stars 13 forks source link

Contribute python test tools #58

Closed dbalsom closed 1 year ago

dbalsom commented 1 year ago

Here are some simple python utilities I have found useful for working with JSON tests, they should be usable with any test in the repository, they will operate on test collections that are bare JSON as well as gzipped JSON.

'addhash.py' will add a sha256 hash of each test under the 'test_hash' key to a test collection, as well as a 'test_num' key which will store the test index. This provides unique identifiers for each test.

The rationale for this is that the 'name' field of a test is often not unique, which makes it difficult for a test user to identify a failed test by name alone.

'extract.py' will export the specified test from a test file, either by decimal index or by value of 'test_hash', if created. This can be useful to examine a particular test, without having to open the entire test file in a text editor, which may be quite sluggish due to the large size of test collections.

TomHarte commented 1 year ago

Cool, thanks! I guess it would be better if I'd ensured names were guaranteed unique, but here we are. It's definitely very useful to be able to extract a test without manually wading through — especially if the source is compressed.