Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simplify testworks specs #112

Merged
merged 21 commits into from
Dec 9, 2019
Merged

Simplify testworks specs #112

merged 21 commits into from
Dec 9, 2019

Conversation

cgay
Copy link
Member

@cgay cgay commented Nov 25, 2019

Second try. I think this is ready now, but it's big so it's possible I've missed something that needed polishing.

Rendered doc is here: http://50.116.53.62:8000/index.html

waywardmonkeys and others added 21 commits December 9, 2019 01:35
Previously, the function-test, class-test, macro-test, variable-test
and constant-test macros generated functions that were accumulated
and then executed with with-test-unit.

This turns them into normal tests that are executed via the generated
test suite.
This removes the tracking of definitions and bindings in favor of
just immediately generating the appropriate tests to check the
specifications.

This removes the remaining usages of with-test-unit.
This is no longer used.
These are often not implemented, so this makes reports more useful.
This wasn't necessary and was just extra boilerplate. It also lets
me give the tests better names more readily.
This re-organizes some of the macros to try to make the intent
more clear and to separate module-spec and protocol-spec definers
to call into the same underlying macros.

This also brings back support for a module-spec referencing a
protocol-spec and having that work. (This is used in the DUIM tests
and probably others.)
No reason for these to be separate libraries. Also combined all of specs
into one file, because it's easier to navigate the code that way.
* Removed the `define {variable,function,macro,constant,etc}-test` macros since
  they are just a more verbose and more difficult to remember way to write
  `define test`.

* Removed `define library-spec` and `define module-spec`, both of which are
  trivially replaced with `define suite`.  `define protocol-spec` is replaced
  by `define interface-specification-suite` which should be given a normal test
  suite name. The latter does one thing: performs automatic checks for an
  API. It does not generate suites that expect one test per definition to be
  written by the user. It's up to the user how they organize their test suite.

* Removed the `generic-function` spec, which was apparently redundant with the
  `generic function` (with a space) spec. Maybe this was necessary due to an
  old fixed bug?

* Removed class-test-function interface (just write normal tests)
@cgay cgay merged commit e3ae285 into dylan-lang:master Dec 9, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
specs Relates to testworks specs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants