casey / casey/just

Remove integration test dependencies on system binaries

Open
#425 4 comments 0 reactions 0 assignees View on GitHub
reform
Dominant language
Rust
Stars
35.8k
Forks
846
Avg merge
27m
Merged PRs (30d)
3

Description

Various tests call external binaries including `echo`, `cat`, and `sh`. I'd like to extend Just to work on windows without requiring an installation of cygwin or git-bash, so these dependencies should be removed. Also, the Just package for Nix requires an awkward workaround to patch the correct location of these binaries: https://github.com/NixOS/nixpkgs/pull/59306/files

Fortunately, the functionality that Just requires from external commands is minimal:

- `echo` to print the arguments to a command
- `cat` to print out the effective contents of a shebang recipe
- `sh` to call `sleep` to introduce a delay
- `sh` to return a specific error code from a child process

In order to remove dependencies on these commands, I propose we add `just-test` binary, and make it available to integration tests by inserting its location into the `PATH` environment variable. `just-test` could be extended with subcommands as needed to support the functionality that tests require:

- `just-test cat FILE` copies the contents of FILE to stdout
- `just-test sleep N` sleeps for N seconds
- `just-test code I` terminates with error code I
- `just-test echo A...` echos arguments to standard output

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.