Skip to main content

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.sml name
  • A test file has use "impl.sml"; on top
    • Where impl.sml is implementation being tested
  • 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 pip documentation about user installs. You need the installation directory to be present in PATH to run sml-test from 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

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

sml_test-1.3.0.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sml_test-1.3.0-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

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

Hashes for sml_test-1.3.0.tar.gz
Algorithm Hash digest
SHA256 9e7844b0f02ab0f71c341dec399306a200e873490e41899dcd56b2b858b0873c
MD5 bdae5edfc0926b5f3829a11e1ed18d40
BLAKE2b-256 3b30335333fcb14a64563147e7d4e290473bf9e6d7dd5140c0216f4b3936946e

See more details on using hashes here.

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

Hashes for sml_test-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3038cbd082f17d0128901c91bf52ff64f00c51d5aaf2ff9b4e1b134c8039a4dc
MD5 b42811fde0015cfdfc087ce172ce720b
BLAKE2b-256 7066b1ca23581ea71e7abc182d0ba388e696715c52424bcae5d4ba42ec32d5f9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page