We need a comprehensive test suite for the Vesta evaluator.

Currently we rely on evaluating existing builds to test new versions of the evaluator. As a result, certain parts of the language don't get as much testing as others. (For example, bindings and text strings are used much more than lists and integers.)

Having such a test suite will help keep the evaluator working correctly in the future, and might even discover bugs in the current evaluator implementation. This page is for people who would like to help develop one.

Pick What you Want to Test

Start by picking what you would like to write a test for:

Refer to the language reference and/or the language spec for comprehensive information on what there is to be tested.

To avoid duplication of effort, edit this page and add your name to the following table along with the feature you intend to write tests for:

To edit this page, you'll need an account. If you don't have one, just go to UserPreferences and create one.

Please only claim one at a time. After you've finished writing tests for one feature, feel free to claim another.

How to Write Tests

You should try to test the range of possible inputs, both correct and incorrect. If an operation only accepts certain data types, test both the valid data types and in invalid data types. Be creative and try to find as many ways as possible to use the feature you're testing. Make a list of the possibilities and try to test them all.

Use _assert to make sure that operations which should succed produce the correct result. Place all tests which don't result in an error in a single SDL model (.ves file). Evaluating that model should perform all of those tests.

Most errors stop evaluation, and we want to actually make the evaluator execute all the different tests. Place each test which results in an error in a separate SDL model. This will make it possible to actually test all the failure cases.

Give your successful test model a name like "foo_test.ves" and your failing test models names like "fail_foo_test##.ves".

See the already completed tests below for examples.

Completed Tests

When you've written your tests, attach them as files to this page and list them in the table below: