diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2022-01-01 18:09:35 +0000 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2022-01-01 18:09:35 +0000 |
commit | b9de4d5e810d07b679ad9ab9e46d58e4c76213cc (patch) | |
tree | b69c6b84b9ce025d6f7afd92d734452757f4f365 /tests | |
parent | 95b3d27d27a8dab7cb8a5136000a2331ab9b4a4a (diff) | |
download | subplot-b9de4d5e810d07b679ad9ab9e46d58e4c76213cc.tar.gz |
tests: Make runcmd.md a common test set now
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/subplots/common/runcmd.md (renamed from tests/subplots/python/runcmd.md) | 6 | ||||
-rw-r--r-- | tests/subplots/common/runcmd_test.py (renamed from tests/subplots/python/runcmd_test.py) | 0 | ||||
-rw-r--r-- | tests/subplots/common/runcmd_test.rs | 25 | ||||
-rw-r--r-- | tests/subplots/common/runcmd_test.yaml (renamed from tests/subplots/python/runcmd_test.yaml) | 6 |
4 files changed, 34 insertions, 3 deletions
diff --git a/tests/subplots/python/runcmd.md b/tests/subplots/common/runcmd.md index 01e6904..4f66685 100644 --- a/tests/subplots/python/runcmd.md +++ b/tests/subplots/common/runcmd.md @@ -3,8 +3,8 @@ The [Subplot][] library `runcmd` for Python provides scenario steps and their implementations for running Unix commands and examining the results. The library consists of a bindings file `lib/runcmd.yaml` and -implementations in Python in `lib/runcmd.py`. There is no Bash -version. +implementations in Python in `lib/runcmd.py` or in the Rust subplotlib +step library. There is no Bash version. [Subplot]: https://subplot.liw.fi/ @@ -211,4 +211,6 @@ impls: - lib/runcmd.py - runcmd_test.py - lib/files.py + rust: + - runcmd_test.rs ... diff --git a/tests/subplots/python/runcmd_test.py b/tests/subplots/common/runcmd_test.py index 4aa5f49..4aa5f49 100644 --- a/tests/subplots/python/runcmd_test.py +++ b/tests/subplots/common/runcmd_test.py diff --git a/tests/subplots/common/runcmd_test.rs b/tests/subplots/common/runcmd_test.rs new file mode 100644 index 0000000..7759e5f --- /dev/null +++ b/tests/subplots/common/runcmd_test.rs @@ -0,0 +1,25 @@ +use subplotlib::steplibrary::files::{self, Datadir}; +use subplotlib::steplibrary::runcmd::Runcmd; + +#[cfg(unix)] +use std::os::unix::fs::PermissionsExt; + +#[step] +#[context(Datadir)] +fn create_script_from_embedded( + context: &ScenarioContext, + filename: &str, + embedded: SubplotDataFile, +) { + files::create_from_embedded_with_other_name::call(context, filename, embedded)?; + let filename = context.with(|dd: &Datadir| dd.canonicalise_filename(filename), false)?; + let mut perms = std::fs::symlink_metadata(&filename)?.permissions(); + #[cfg(unix)] + perms.set_mode(perms.mode() | 0o111); + std::fs::set_permissions(&filename, perms)?; +} + +#[step] +fn prepend_to_path(context: &mut Runcmd, dirname: &str) { + context.prepend_to_path(dirname); +} diff --git a/tests/subplots/python/runcmd_test.yaml b/tests/subplots/common/runcmd_test.yaml index 2ad981e..daab202 100644 --- a/tests/subplots/python/runcmd_test.yaml +++ b/tests/subplots/common/runcmd_test.yaml @@ -1,9 +1,13 @@ -- given: "executable script {filename} from {embedded}" +- given: "executable script {filename} from {embedded:file}" impl: python: function: create_script_from_embedded + rust: + function: create_script_from_embedded - when: "I prepend {dirname} to PATH" impl: python: function: runcmd_prepend_to_path + rust: + function: prepend_to_path |