save-cli
save-cli copied to clipboard
Universal test framework for cli tools [mainly for code analyzers and compilers]
* [ ] Create directory structure from string (`tree`-like syntax) ``` . |-- foo |-- bar | |-- baz | `-- qux `-- stuff ``` * [x] ~For plugins: Should...
For these classes we can generate a 'raw' counterpart with nullable fields and merge(raw, raw) method to merge them with priority. We than can use usual classes throughout the code....
Now we have a `runBlocking` call inside `exec`, which is fine for SAVE, but makes it hard to use `ProcessBuilder` in save-agent inside coroutine-powered code. We should lift `runBlocking` higher...
In addition of nullable check it also should be provided more proper check, that `save.toml` file exists by `FileSystem.SYSTEM.exists` instead of `FileSystem.SYSTEM.metadata` in `try-catch` block More requirements could be created...
What if the developer will need to run SAVE on Windows locally and on Linux in CI/CD? In this case his execution command on different operating systems can differ. So:...
Now we use two different approaches in SaveProperties and in PluginConfigs for the same issues in process of fields merging. While in SaveProperties we do all work in one method...
For now we do extra executions as much as `save.tom`l we have in hierarchy , however we should execute save only once
Now it seems to be searching all the way up to FS root, or at least it discovers top level TOMLs if testRootPath is lower than uppermost one
It seems, that we remove tmp directories only before plugin execution by `clean()` method. It's a good point, because if SAVE crashed on something during the previous execution, we anyway...
On windows (on GH actions) the test `check stdout with redirection()[jvm]` fails: ``` org.opentest4j.AssertionFailedError: expected: but was: at org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:55) at org.junit.jupiter.api.AssertionUtils.failNotEqual(AssertionUtils.java:62) at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182) at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1135) at kotlin.test.junit5.JUnit5Asserter.assertEquals(JUnitSupport.kt:32) at kotlin.test.AssertionsKt__AssertionsKt.assertEquals(Assertions.kt:63) at...