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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

Supported by

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