Commit Graph

9 Commits

Author SHA1 Message Date
Jakob Stoklund Olesen
b2f0dd7da3 Run tests concurrently.
Spin up one worker thread per cpu, and run filetests on all of them. Use
a reorder buffer in Runner to make sure results are still reported in
order.

Individual test files given as command line arguments are still run
synchronously for easier debugging. Only directories are run on worker
threads. The recursive directory traversal is still happening on the
main thread.

Use a heartbeat thread to send ticks on the reply channel every second,
and use the ticks to detect tests that are stuck. When
Receiver::recv_timeout() is stabilized, we can probably get rid of the
heartbeat thread.

Catch panics on the worker threads and report them as test failures.
2016-09-17 10:58:53 -07:00
Jakob Stoklund Olesen
b26f7be6c9 cargo update. 2016-09-16 16:41:04 -07:00
Jakob Stoklund Olesen
dd9696e294 Remove unnecessary external dependencies.
The main libcretonne crate should not have any external dependencies if
at all possible. Use simple substring matching instead of regular
expressions in the verifier tests to achieve this.

The tools crate no longer depends directly on glob and regex. It still
has an indirect dependency on regex through libfilecheck.
2016-09-16 16:34:50 -07:00
Jakob Stoklund Olesen
42cdebd508 Add a cton-util filecheck sub-command. 2016-09-09 10:54:57 -07:00
Morgan Phillips
d8712b2ce6 Add a verifier
The current implementation only performs a few basic checks.
2016-09-06 14:09:09 -07:00
Morgan Phillips
c0a9a4fe46 Move dominator tree test cases to their own folder. 2016-08-23 15:42:31 -07:00
Jakob Stoklund Olesen
61094f6909 Begin a basic command line interface.
Add an external dependency to the docopt package and use it for a scaffold
command line interface for the cton-util command.

I am not too happy about taking external dependencies, and docopt pulls in 13
other packages. However, I really don't want to be writing command line parsers,
and as long as the external dependencies are confined to the tools crate, we
should be fine.

The core cretonne crate should stay free of external dependencies to avoid
trouble with embedding it.

Implement a basic 'cat' subcommand which currently behaves like unix 'cat'. It
will gain parser powers soon.
2016-07-01 13:47:17 -07:00
Jakob Stoklund Olesen
01ed9fc6c8 Rename libraries
libctonfile -> libreader.

This library will only provide .cton file reading/parsing services which are
not needed after deployment.

Code for writing .cton files lives in the main cretonne library because it is
fairly small, and because it is useful for extracting test cases from a
deployed library.
2016-04-29 15:00:16 -07:00
Jakob Stoklund Olesen
9a6f79a9ba Add some scaffolding for building more crates.
The src/tools directory contains the cretonne-tools crate which will build
binaries for testing cretonne.

The src/libctonfile directory contains the ctonfile library crate which
provides reading and writing of .cton files.
2016-04-08 12:55:29 -07:00