Scheme testing needs some work, so I introduce the Schemetest project
hga@xxxxxx
(20 Aug 2020 17:25 UTC)
|
Re: Scheme testing needs some work, so I introduce the Schemetest project
Arthur A. Gleckler
(20 Aug 2020 17:40 UTC)
|
Re: Scheme testing needs some work, so I introduce the Schemetest project
hga@xxxxxx
(20 Aug 2020 18:09 UTC)
|
Scheme portable testing prior art Lassi Kortela (20 Aug 2020 19:00 UTC)
|
Re: Scheme portable testing prior art
Marc Nieper-Wißkirchen
(20 Aug 2020 19:09 UTC)
|
Re: Scheme portable testing prior art
Lassi Kortela
(20 Aug 2020 19:17 UTC)
|
Re: Scheme portable testing prior art
Marc Nieper-Wißkirchen
(20 Aug 2020 19:31 UTC)
|
Re: Scheme portable testing prior art
Per Bothner
(20 Aug 2020 20:58 UTC)
|
Re: Scheme portable testing prior art
Per Bothner
(20 Aug 2020 21:13 UTC)
|
Re: Scheme portable testing prior art
Alex Shinn
(21 Aug 2020 01:54 UTC)
|
Re: Scheme portable testing prior art
Marc Nieper-Wißkirchen
(21 Aug 2020 07:52 UTC)
|
Re: Scheme portable testing prior art
Alex Shinn
(21 Aug 2020 09:16 UTC)
|
Re: Scheme portable testing prior art
Marc Nieper-Wißkirchen
(21 Aug 2020 11:11 UTC)
|
Re: Scheme portable testing prior art
Alex Shinn
(21 Aug 2020 13:41 UTC)
|
Re: Scheme portable testing prior art
John Cowan
(20 Aug 2020 19:25 UTC)
|
Re: Scheme portable testing prior art
Lassi Kortela
(20 Aug 2020 19:39 UTC)
|
Re: Scheme portable testing prior art
Marc Nieper-Wißkirchen
(20 Aug 2020 20:04 UTC)
|
test-error, portability
Lassi Kortela
(20 Aug 2020 20:41 UTC)
|
Re: test-error, portability
Marc Nieper-Wißkirchen
(21 Aug 2020 06:49 UTC)
|
Re: test-error, portability
Per Bothner
(21 Aug 2020 13:21 UTC)
|
Re: test-error, portability
Arthur A. Gleckler
(21 Aug 2020 18:24 UTC)
|
Re: test-error, portability
John Cowan
(21 Aug 2020 21:54 UTC)
|
Re: test-error, portability
Alex Shinn
(22 Aug 2020 15:13 UTC)
|
Re: test-error, portability
hga@xxxxxx
(23 Aug 2020 21:24 UTC)
|
Re: test-error, portability
John Cowan
(23 Aug 2020 21:44 UTC)
|
Re: test-error, portability
Marc Nieper-Wißkirchen
(26 Aug 2020 13:45 UTC)
|
Re: test-error, portability
Marc Nieper-Wißkirchen
(26 Aug 2020 13:43 UTC)
|
Re: Scheme portable testing prior art
John Cowan
(20 Aug 2020 22:05 UTC)
|
Re: Scheme portable testing prior art
Marc Nieper-Wißkirchen
(20 Aug 2020 19:56 UTC)
|
Re: Scheme portable testing prior art
Arthur A. Gleckler
(20 Aug 2020 22:27 UTC)
|
Comments on Arthur's test framework
Lassi Kortela
(22 Aug 2020 08:56 UTC)
|
Re: Comments on Arthur's test framework
Arthur A. Gleckler
(22 Aug 2020 21:28 UTC)
|
Re: Comments on Arthur's test framework
John Cowan
(22 Aug 2020 22:34 UTC)
|
Re: Comments on Arthur's test framework
Per Bothner
(22 Aug 2020 23:45 UTC)
|
Re: Comments on Arthur's test framework
Arthur A. Gleckler
(23 Aug 2020 00:21 UTC)
|
Re: Comments on Arthur's test framework
Per Bothner
(23 Aug 2020 00:40 UTC)
|
Re: Comments on Arthur's test framework
Arthur A. Gleckler
(23 Aug 2020 01:52 UTC)
|
Re: Scheme portable testing prior art
Alex Shinn
(27 Aug 2020 05:04 UTC)
|
Re: Scheme portable testing prior art
hga@xxxxxx
(21 Aug 2020 16:52 UTC)
|
Thanks for the initiative Harold! I'm pressed for time, but quick comments: > One thing that's become clear in the discussions of auxiliary SRFIs > embedded in other official SRFIs is that testing in Scheme needs a bit > of work. +1 > It's also a special case for SRFIs, ideally the sample > implementations will always have a test suite, and for many SRFIs this > could be the only non-standard, higher numbered SRFI they depend on. https://github.com/srfi-explorations/srfi-test is a repo I started a while back to collect tests for as many SRFIs as we can in one place. The tests in that repo use the SRFI 64 test definition primitives. Shiro and Alex graciously donates many of their excellent tests under the MIT License so the licensing situation for the repo can be as simple as the situation with the SRFI documents themselves. Marc Feeley also donated any tests in Gambit and is converting them piecemeal to SRFI 64. The ultimate idea would be that the repo can have the test suites in a format that Scheme implementations can simply copy those files verbatim into their source trees. Doing whatever it takes to get them into a form that implementors find agreeable. (include "...") in (define-library) does wonders to enable portable .scm files. I haven't yet had the energy to pursue this since there are so many things to do, but it'd be awesome if you do. Aggregating the tests already uncovered a bunch of bugs; I expect doing it more would uncover more and save everyone time in the long run. > So in the spirit of other Scheme topics, and to limit the demands on > Arthur, I've created a GitHub Schemetest organization, into which we can > put repositories with testing libraries, documentation, examples, etc. +1 > Ideally it will in due course have a working SRFI 64 library for every > Scheme implementation people care about, and whatever other testing > libraries people like to use. +1 > Don't know if this warrants a Schemetest mailing list, but I'll throw > that idea out. No opinion. > First question: how to subdivide the space of testing libraries and > Schemes they run on. A general repo, page, or file can be consulted to > tell you "if you want to use SRFI 64 in Chibi Scheme, then use /this/ > library", rather than having a repo or sub-directory per implementation > with messy duplication. So ... no great reason not to do it in grab bag > fashion, after people's names or user ids, or whatever??? The situation basically is that 3 test definition frameworks dominate: - SRFI 64 - Chicken's `test` egg <https://wiki.call-cc.org/eggref/5/test> - The (chibi test) library <http://snow-fort.org/s/gmail.com/alexshinn/chibi/test/0.9.0/index.html>, a port of Chicken `test`. All of these provide almost the same set of primitives for defining tests. All of the main stuff is identical or near-identical. Therefore the most viable strategy is to take this API as-is. SRFI 64 defines two parts in one SRFI: the part where you define tests, and the part where you run tests. Most of the reluctance to ship SRFI 64 with a Scheme implementation comes from the fact that you have to ship the whole bundle, and some people want a differetn test runner than the one in it. The problem could be solved by writing a new SRFI that: - copies (most of) the test definition parts from SRFI 64 - adds the new test definition stuff from the Chicken/Chibi test library, which is like 1 or 2 new primitives IIRC. - adds a couple more primitives that are none of those. Gambit needs one to test whether an exception is raised in tail position or not. Since the SRFI process is clogged, I suggest first writing a library that does the above. Once the library has been used for a while, immortalize its interface in a SRFI. Here's a very recent GitHub issue on this topic: <https://github.com/srfi-explorations/srfi-test/issues/3>, with many of the usual suspects chiming in at length :) > Anyone out there interested in this who's already running a bunch of > different Scheme implementations so we can do some testing? If not, > I've got a bit of spare time to devote to that. We have Docker containers for 45 Scheme implementations at <https://hub.docker.com/u/schemers>, including a container build from git master for many of the actively developed Schemes. I can give ssh access to people I know from the lists to a Linux server with Docker pre-configured.