Bug fixes and unit tests to validate behavior of various command line flags and their combinations: --exec, --yaml-out, --yaml-stream, --multi, --output-file. I also propagated the std: Std argument all the way to sjsonnet.SjsonnetMain.main0, so it can easily be passed in by people who use the CLI-arg-based programmatic interface without having to drop down into sjsonnet.Interpreter, e.g. in Databricks' JsonnetWorker
The logic inside SjsonnetMain.scala is still pretty messy, but at least it has some rudimentary unit tests now.
Another thing to note is that trailing newline handling isn't great; depending on what code path you go through, you may get zero, one, or two trailing newlines. That should be benign, since trailing newlines are not semantically meaningful in either JSON or YAML, so for now I just left them in place. At least now we have tests to surface some of the weirdness
I had to move MainTests.scala from src-jvm-native/ to src-jvm/, due to weird crashes in the Scala Native test-running infrastructure. Given the experimental nature of Scala-Native, losing a bit of coverage is probably OK for now, and also it's unlikely that this will cause anything to break given the same code receives test coverage on the JVM.
Bug fixes and unit tests to validate behavior of various command line flags and their combinations:
--exec
,--yaml-out
,--yaml-stream
,--multi
,--output-file
. I also propagated thestd: Std
argument all the way tosjsonnet.SjsonnetMain.main0
, so it can easily be passed in by people who use the CLI-arg-based programmatic interface without having to drop down intosjsonnet.Interpreter
, e.g. in Databricks'JsonnetWorker
Fixes https://github.com/databricks/sjsonnet/issues/112, and fixes https://github.com/databricks/sjsonnet/issues/77, and adds tests for https://github.com/databricks/sjsonnet/issues/60 (which was already working before, but without test coverage)
The logic inside
SjsonnetMain.scala
is still pretty messy, but at least it has some rudimentary unit tests now.Another thing to note is that trailing newline handling isn't great; depending on what code path you go through, you may get zero, one, or two trailing newlines. That should be benign, since trailing newlines are not semantically meaningful in either JSON or YAML, so for now I just left them in place. At least now we have tests to surface some of the weirdness
I had to move
MainTests.scala
fromsrc-jvm-native/
tosrc-jvm/
, due to weird crashes in the Scala Native test-running infrastructure. Given the experimental nature of Scala-Native, losing a bit of coverage is probably OK for now, and also it's unlikely that this will cause anything to break given the same code receives test coverage on the JVM.