The CLI tool to recursively run all SML tests in a directory
Project description
sml-test
Bare-bones Standard ML test runner written in Python
Assumptions
Test layout from "Programming Languages, Part A" Coursera course is used
- A test file has
*test.smlname - A test file has
use "impl.sml";on top- Where
impl.smlis implementation being tested
- Where
- A test case is a boolean variable with
test*name in the test file
Example Test
Example test file hw1test.sml
use "hw1.sml";
val test1_1 = is_older ((1,2,3),(2,3,4)) = true
... where is_older is a function from hw1.sml.
Installation
pip install -U --user sml-test
The package will be installed in your user home directory. See
pipdocumentation about user installs. You need the installation directory to be present inPATHto runsml-testfrom the terminal.
Usage
$ sml-test --help
Usage: sml-test [OPTIONS]
Recursively execute all SML tests
Options:
--version Show the version and exit.
-v, --verbose Print raw SML output
--help Show this message and exit.
Example Test Run
$ sml-test
Running in /Users/user/git/prog_lang_a
OK=81, FAIL=1, ERR=5
week1/hw/hw1test.sml
val test1_3 = false : bool
week0/hw/hw0test.sml
hw0test.sml:9.14-9.20 Error: unbound variable or constructor: double
hw0test.sml:11.14-11.20 Error: unbound variable or constructor: double
hw0test.sml:13.14-13.20 Error: unbound variable or constructor: triple
hw0test.sml:15.14-15.20 Error: unbound variable or constructor: triple
hw0test.sml:17.14 Error: unbound variable or constructor: f
Requirements
- Python 3.8+
- You need
smlexecutable to be present inPATH- Feel free to grab one from New Jersey University
Contributions & Suggestions
Please feel free to contribute a missing functionality or suggest changes, e.g.
- Support for different tests layouts
- Support for older Python versions
- Support for different OS
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sml_test-1.3.0.tar.gz.
File metadata
- Download URL: sml_test-1.3.0.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e7844b0f02ab0f71c341dec399306a200e873490e41899dcd56b2b858b0873c
|
|
| MD5 |
bdae5edfc0926b5f3829a11e1ed18d40
|
|
| BLAKE2b-256 |
3b30335333fcb14a64563147e7d4e290473bf9e6d7dd5140c0216f4b3936946e
|
File details
Details for the file sml_test-1.3.0-py3-none-any.whl.
File metadata
- Download URL: sml_test-1.3.0-py3-none-any.whl
- Upload date:
- Size: 4.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3038cbd082f17d0128901c91bf52ff64f00c51d5aaf2ff9b4e1b134c8039a4dc
|
|
| MD5 |
b42811fde0015cfdfc087ce172ce720b
|
|
| BLAKE2b-256 |
7066b1ca23581ea71e7abc182d0ba388e696715c52424bcae5d4ba42ec32d5f9
|