You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Complex execution of binaries like in SYE: sh.elf with a non supported build command like cmake cmake . -Bbuild && cmake --build build/ can benefit from this.
Checking output of an external command like tree to validate a structure of folder is another benefit that could help train little tools like Yazi, Gitui and others.
TODOs
Create branch feat-external-commands
Create basic exos for testing with multiplateform commands like ls, echo, including shells specific like $() and | to make sure it is ran in the shell.
Define data structures for this new test type command
Support cmd (command ran in a shell), expected (expected output): ex. test = { type = 'command', cmd = 'fd -e png | wc -l', expected = "1" }
Support wd (working directory), swd (solution working directory): test = { type = 'command', cmd = 'tree d e f', wd = 'train', swd = 'sol' }. The output must match between execution of cmd inside wd and the execution inside swd.
Tests failing checks and working checks
Fail parsing if swd and expected are provided.
Mandatory fields cmd, all other optional.
cc: @AndreCostaaa what do you think about these data structures and how this is going to be parsed by serde ?
Parsing should be ok
We can easily convert test = { type = 'command', cmd = 'tree d e f', wd = 'train', swd = 'sol' }
to test = { type = 'command', cmd = 'fd -e png | wc -l', expected = "1" }
By actually running the command and collecting the output on startup for instance
This could be a good way to simplify and avoid running multiple times the same command if there are multiple iterations of the exercise
Complex execution of binaries like in SYE:
sh.elf
with a non supported build command like cmakecmake . -Bbuild && cmake --build build/
can benefit from this.Checking output of an external command like
tree
to validate a structure of folder is another benefit that could help train little tools like Yazi, Gitui and others.TODOs
feat-external-commands
ls
,echo
, including shells specific like$()
and|
to make sure it is ran in the shell.command
cmd
(command ran in a shell),expected
(expected output): ex.test = { type = 'command', cmd = 'fd -e png | wc -l', expected = "1" }
wd
(working directory),swd
(solution working directory):test = { type = 'command', cmd = 'tree d e f', wd = 'train', swd = 'sol' }
. The output must match between execution ofcmd
insidewd
and the execution insideswd
.swd
andexpected
are provided.cmd
, all other optional.cc: @AndreCostaaa what do you think about these data structures and how this is going to be parsed by serde ?
Help
The text was updated successfully, but these errors were encountered: