summaryrefslogtreecommitdiff
path: root/support/arara/source/src/test/kotlin/org/islandoftex/arara/utils/ExecutionTest.kt
diff options
context:
space:
mode:
Diffstat (limited to 'support/arara/source/src/test/kotlin/org/islandoftex/arara/utils/ExecutionTest.kt')
-rw-r--r--support/arara/source/src/test/kotlin/org/islandoftex/arara/utils/ExecutionTest.kt139
1 files changed, 0 insertions, 139 deletions
diff --git a/support/arara/source/src/test/kotlin/org/islandoftex/arara/utils/ExecutionTest.kt b/support/arara/source/src/test/kotlin/org/islandoftex/arara/utils/ExecutionTest.kt
deleted file mode 100644
index a0cc52145a..0000000000
--- a/support/arara/source/src/test/kotlin/org/islandoftex/arara/utils/ExecutionTest.kt
+++ /dev/null
@@ -1,139 +0,0 @@
-// SPDX-License-Identifier: BSD-3-Clause
-package org.islandoftex.arara.utils
-
-import io.kotlintest.DoNotParallelize
-import io.kotlintest.matchers.string.shouldContain
-import io.kotlintest.matchers.string.shouldNotContain
-import io.kotlintest.shouldBe
-import io.kotlintest.shouldNotBe
-import io.kotlintest.shouldThrow
-import io.kotlintest.specs.ShouldSpec
-import java.io.ByteArrayOutputStream
-import java.io.File
-import java.io.PrintStream
-import java.nio.file.Paths
-import kotlin.time.ExperimentalTime
-import org.islandoftex.arara.Arara
-import org.islandoftex.arara.configuration.AraraSpec
-import org.islandoftex.arara.configuration.Configuration
-import org.islandoftex.arara.filehandling.FileSearchingUtils
-import org.islandoftex.arara.model.AraraException
-import org.islandoftex.arara.model.Extractor
-import org.islandoftex.arara.model.Interpreter
-import org.islandoftex.arara.ruleset.DirectiveUtils
-
-@ExperimentalTime
-@DoNotParallelize
-class ExecutionTest : ShouldSpec({
- fun getPathForTest(name: String): String = "src/test/resources/executiontests/$name"
- fun outputForTest(testName: String, fileName: String = "$testName.tex"):
- String {
- val sysout = System.out
- val output = ByteArrayOutputStream()
- try {
- System.setOut(PrintStream(output))
- Arara.config[AraraSpec.Execution.workingDirectory] =
- Paths.get(getPathForTest(testName))
- Configuration.load()
- Arara.config[AraraSpec.Execution.verbose] = true
- FileSearchingUtils.discoverFile(fileName)
- val directives = DirectiveUtils.process(Extractor.extract(
- File("${getPathForTest(testName)}/$fileName")))
- Interpreter(directives).execute()
- return output.toByteArray().toString(Charsets.UTF_8)
- } catch (ex: Exception) {
- throw ex
- } finally {
- System.setOut(sysout)
- output.close()
- }
- }
-
- should("be able to store variables sessions") {
- outputForTest("sessions") shouldContain "MeowQuack"
- }
-
- should("honor falsy existence test") {
- val file = File(getPathForTest("conditionals") + "/conditionals.quack")
- if (file.exists()) file.delete()
- val output = outputForTest("conditionals")
- output shouldContain "QuackOne"
- output shouldContain "QuackFour"
- output shouldNotContain "QuackTwo"
- output shouldNotContain "QuackThree"
- }
- should("honor truthy existence (falsy contains) test") {
- val file = File(getPathForTest("conditionals") + "/conditionals.quack")
- file.writeText("Meow")
- val output = outputForTest("conditionals")
- file.delete()
- output shouldContain "QuackOne"
- output shouldContain "QuackFour"
- output shouldContain "QuackTwo"
- output shouldNotContain "QuackThree"
- }
- should("honor truthy contains test") {
- val file = File(getPathForTest("conditionals") + "/conditionals.quack")
- file.writeText("Duck")
- val output = outputForTest("conditionals")
- file.delete()
- output shouldContain "QuackOne"
- output shouldContain "QuackFour"
- output shouldContain "QuackTwo"
- output shouldContain "QuackThree"
- }
-
- should("track changes") {
- val file = File(getPathForTest("changes") + "/arara.yaml")
- if (file.exists()) file.delete()
- outputForTest("changes") shouldContain "QuackOne"
- outputForTest("changes") shouldNotContain "QuackOne"
- }
-
- should("gracefully halt on halt rule") {
- val output = outputForTest("halt")
- output shouldContain "QuackOne"
- output shouldNotContain "QuackTwo"
- CommonUtils.exitStatus shouldBe 0
- }
- should("forcefully halt on halt error rule") {
- val output = outputForTest("halt-error")
- output shouldContain "QuackOne"
- output shouldNotContain "QuackTwo"
- CommonUtils.exitStatus shouldNotBe 0
- }
-
- should("fail on invalid config") {
- val exception = shouldThrow<AraraException> {
- outputForTest("invalid-config")
- }
- exception.message shouldContain "could not parse the configuration"
- }
-
- should("read foreign extension") {
- val output = outputForTest("foreign-extension", "foreign-extension.my")
- output shouldContain "QuackOne"
- }
- should("fail on unknown extension") {
- shouldThrow<AraraException> {
- outputForTest("foreign-extension", "foreign-extension.xy")
- }
- }
- should("accept empty pattern on known extension") {
- val output = outputForTest("known-extension")
- output shouldContain "QuackOne"
- }
-
- should("execute option-less directives") {
- val output = outputForTest("simple-directive")
- output shouldContain "The echoer"
- output shouldContain "SUCCESS"
- }
- should("execute directive with options") {
- val output = outputForTest("directive-with-options")
- output shouldContain "The echoer"
- output shouldContain "batchmode"
- output shouldContain "SUCCESS"
- output shouldNotContain "FAILURE"
- }
-})