Opened 8 years ago

Closed 4 years ago

#630 closed defect (wontfix)

Test scripts that don't properly report exit status

Reported by: Mario Domenech Goulart Owned by:
Priority: major Milestone:
Component: extensions Version: 4.7.x
Keywords: test infrastructure Cc:
Estimated difficulty:

Description (last modified by sjamaan)

The eggs listed bellow don't properly report their exit code to the test infrastructure.

Please, make them exit 0 when all tests pass or a non-zero value when one or more tests fail, so salmonella can properly indicate the tests status. Hint: for those using the test egg, you just need (test-exit) at the end of the test script.

If you test script relies on errors (or assert) to test egg features, you can assume it is ok (I'm sorry for the false alert), since on error the test script will exit 70 (which is ok for the test infrastructure).

I took a look at the last 20 lines of the run.scm files (or at the files they include/load) in the trunk dir for each egg (yeah, it's not exactly a pleasant work). If you don't intend to make a new release of your egg(s) to fix bugs or to add new features soon, please consider making a new release just to fix the tests, so we can have a more accurate idea about the shape of the set of eggs. Also consider that egg tests help to test the compiler too.

  • discount (Stephen Eilert)
  • lookup-table (Kon Lovett)
  • mailbox (Felix Winkelmann, Kon Lovett)
  • mw (Tony Sidaway. Uses testeez, which has no way to exit on failure?)
  • mw-core (Tony Sidaway. Uses testeez, which has no way to exit on failure?)
  • numspell (Felix Winkelmann(?) uses testeez)
  • operations (Felix Winkelmann)
  • specialized-io (Jeronimo Pellegrini)
  • srfi-45 (Kon Lovett)
  • statistics (Peter Lane. Uses srfi-78, which has no test-exit equivalent)
  • synch (Kon Lovett)
  • system (Felix Winkelmann)
  • tinyclos (Felix Winkelmann. Uses testeez and is deprecated)
  • yelp (Derrell Piper)

The following eggs have tests that aren't really automated. If they can't be automated or you don't feel like doing that, please remove your eggs from the list:

  • kanren (Alex Shinn)
  • lazyffi (Felix Winkelmann)
  • openal (Felix Winkelmann)
  • progress-indicators (Felix Winkelmann)
  • remote-mailbox (Kon Lovett)
  • xosd (Felix Winkelmann)

Change History (34)

comment:1 Changed 8 years ago by felix winkelmann

I updated advice, ftl, udp, defstruct, simple-sha1 and coops.

The following eggs don't use test, use assert or perform just simple code execution examples:

big-chicken, bind, dollar, fast-generic, fps, heap-o-rama, htmlprag, inline, loop, protobj, s11n,
spock, sparse-vectors, stalin, z3.

comment:2 Changed 8 years ago by Ivan Raikov

Description: modified (diff)

comment:3 Changed 8 years ago by Ivan Raikov

Description: modified (diff)

comment:4 Changed 8 years ago by Ivan Raikov

Description: modified (diff)

comment:5 Changed 8 years ago by Matt Welland

logpro updated with (test-exit)

comment:6 Changed 8 years ago by sjamaan

Description: modified (diff)

Thank you for working through these things, Mario!

I've updated numbers (which is still not a great testsuite, but more-or-less works as expected now)

prometheus is also an egg that just uses assert and has a few examples.

I've removed these from the list as well as those Felix listed.

comment:7 Changed 8 years ago by Christian Kellermann

Description: modified (diff)

comment:8 Changed 8 years ago by Christian Kellermann

Description: modified (diff)

comment:9 Changed 8 years ago by Ivan Raikov

Description: modified (diff)

Added test-exit for csv and digraph, and assert for datatype

comment:10 Changed 8 years ago by Ivan Raikov

Description: modified (diff)

Removing mpi and memcached from the list, as their test scripts have been already fixed.

comment:11 Changed 8 years ago by Ivan Raikov

Description: modified (diff)

Added test-exit to the test scripts of getopt-long and format-textdiff

comment:12 Changed 8 years ago by Ivan Raikov

Description: modified (diff)

Added test-exit to the test scripts of filepath, graph-bfs, graph-dfs, graph-cycles

comment:13 Changed 8 years ago by Ivan Raikov

Description: modified (diff)

Added test-exit to the test scripts for internet-message, graph-scc, iexpr

comment:14 Changed 8 years ago by Ivan Raikov

Description: modified (diff)

Fixed test scripts of internet-message, lexgen, json-abnf, object-graph

comment:15 Changed 8 years ago by Ivan Raikov

Description: modified (diff)

Fixed test scripts of mime, rb-tree, sfht, smtp.

comment:16 Changed 8 years ago by felix winkelmann

Milestone: 4.8.0

comment:17 Changed 8 years ago by Ivan Raikov

Description: modified (diff)

Using assert in treap, typeclass, tiny-prolog

comment:18 Changed 7 years ago by sjamaan

Description: modified (diff)

comment:19 Changed 7 years ago by sjamaan

Description: modified (diff)

quaternoins has a hand-rolled test system which calls "error" when a test fails; this should cause exit status 1

comment:20 Changed 7 years ago by sjamaan

Description: modified (diff)

I've updated the master list with author annotations so we know who to contact.

I've removed a couple of eggs that had already been fixed:

  • logpro (Matthew Welland)
  • ripemd (Kon Lovett)
  • sha2 (Aaron D. Gifford and Daishi Kato)
  • string-utils (Kon Lovett)
  • tiger-hash (Kon Lovett)

Also some eggs that have custom hand-rolled scripts which correctly exit with a nonzero status on error:

  • bindings (Juergen Lorenz)
  • contracts (Juergen Lorenz)
  • expand-full (?, Kon Lovett)
  • packedobjects (John PT Moore)
  • sassy (Jonathan Kraut, this egg has a handful of tests that don't exit, but the majority do)
  • snowdigest (Felix Winkelmann)
  • srfi-25 (Jussi Piitulainen, Felix Winkelmann)
  • srfi-42 (Ivan Raikov)
  • tuples (Juergen Lorenz)

comment:21 Changed 7 years ago by Moritz Heidkamp

Description: modified (diff)

Fixed char-set-literals, couchdb and netstring.

comment:22 Changed 7 years ago by sjamaan

Description: modified (diff)

comment:23 Changed 7 years ago by Kon Lovett

Fixed

  • condition-utils (Kon Lovett)
  • dsssl-utils (Kon Lovett)
  • err5rs-arithmetic (Kon Lovett) UNRELEASED
  • format (Felix Winkelmann, Kon Lovett)
  • list-utils (Kon Lovett)

comment:24 Changed 7 years ago by sjamaan

Description: modified (diff)

Thanks Kon! I've removed these eggs from the master list so we can more clearly see which ones still need fixing

comment:25 Changed 7 years ago by Kon Lovett

Fixed (the rest of the low hanging fruit)

  • macosx (this cannot be completely automated. since auto testing w/ non-macosx box anyway ...)
  • mathh
  • procedure-decoration
  • srfi-19
  • srfi-27
  • srfi-101
  • stack
  • symbol-utils
  • uuid-ossp

comment:26 Changed 7 years ago by sjamaan

Description: modified (diff)

Updated description to reflect #25

comment:27 Changed 6 years ago by sjamaan

Description: modified (diff)

Fixed sexp-diff (I'm sure Felix won't mind)

comment:28 Changed 6 years ago by sjamaan

Description: modified (diff)

Fixed sxml-templates (and notified Klutometis)

comment:29 Changed 6 years ago by sjamaan

Description: modified (diff)

Noticed that yasos now uses simple-tests instead of testeez. Notified Juergen Lorenz about the fact that simple-tests has no way of indicating exit status.

comment:30 Changed 6 years ago by sjamaan

Description: modified (diff)

Removed yasos from the list. Juergen assured me that the new version of simple-test will call exit, as long as compound-test is used. Yasos does this.

comment:31 Changed 6 years ago by Mario Domenech Goulart

Description: modified (diff)

fmt has been fixed in version 0.802

comment:32 Changed 5 years ago by Thomas Chust

modular-arithmetic, elliptic-curves and pandora no longer have that bug since a while. pandora may have failed to install due to missing dependencies, but that should also be fixed now.

comment:33 Changed 5 years ago by sjamaan

Description: modified (diff)

Thanks for checking, Thomas. I've updated the description so your eggs are no longer listed.

comment:34 Changed 4 years ago by sjamaan

Resolution: wontfix
Status: newclosed

The remaining eggs are not likely to get fixed soon. We'll just ignore them and as soon as CHICKEN 5 eggs start appearing with missing exit statuses in tests, aggressively file new tickets for those eggs.

Note: See TracTickets for help on using tickets.