mirror of
https://github.com/apple/pkl.git
synced 2026-03-21 00:29:07 +01:00
Add flag to turn power assertions on/off (#1419)
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -74,10 +74,23 @@ class EvalCommand : ModulesCommand(name = "eval", helpLink = helpLink) {
|
||||
private val testMode: Boolean by
|
||||
option(names = arrayOf("--test-mode"), help = "Internal test mode", hidden = true).flag()
|
||||
|
||||
private val powerAssertionsEnabled: Boolean by
|
||||
option(
|
||||
names = arrayOf("--power-assertions"),
|
||||
help = "Enable power assertions for detailed assertion failure messages.",
|
||||
)
|
||||
.flag("--no-power-assertions", default = true, defaultForHelp = "enabled")
|
||||
|
||||
override fun run() {
|
||||
val options =
|
||||
CliEvaluatorOptions(
|
||||
base = baseOptions.baseOptions(modules, projectOptions, testMode = testMode),
|
||||
base =
|
||||
baseOptions.baseOptions(
|
||||
modules,
|
||||
projectOptions,
|
||||
testMode = testMode,
|
||||
powerAssertionsEnabled = powerAssertionsEnabled,
|
||||
),
|
||||
outputPath = outputPath,
|
||||
outputFormat = baseOptions.format,
|
||||
moduleOutputSeparator = moduleOutputSeparator,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -20,6 +20,8 @@ import com.github.ajalt.clikt.parameters.arguments.argument
|
||||
import com.github.ajalt.clikt.parameters.arguments.convert
|
||||
import com.github.ajalt.clikt.parameters.arguments.multiple
|
||||
import com.github.ajalt.clikt.parameters.groups.provideDelegate
|
||||
import com.github.ajalt.clikt.parameters.options.flag
|
||||
import com.github.ajalt.clikt.parameters.options.option
|
||||
import java.net.URI
|
||||
import org.pkl.cli.CliTestRunner
|
||||
import org.pkl.commons.cli.commands.BaseCommand
|
||||
@@ -43,9 +45,21 @@ class TestCommand : BaseCommand(name = "test", helpLink = helpLink) {
|
||||
|
||||
private val testOptions by TestOptions()
|
||||
|
||||
private val powerAssertionsEnabled: Boolean by
|
||||
option(
|
||||
names = arrayOf("--power-assertions"),
|
||||
help = "Enable power assertions for detailed assertion failure messages.",
|
||||
)
|
||||
.flag("--no-power-assertions", default = true, defaultForHelp = "enabled")
|
||||
|
||||
override fun run() {
|
||||
CliTestRunner(
|
||||
options = baseOptions.baseOptions(modules, projectOptions),
|
||||
options =
|
||||
baseOptions.baseOptions(
|
||||
modules,
|
||||
projectOptions,
|
||||
powerAssertionsEnabled = powerAssertionsEnabled,
|
||||
),
|
||||
testOptions = testOptions.cliTestOptions,
|
||||
)
|
||||
.run()
|
||||
|
||||
@@ -52,7 +52,12 @@ class CliTestRunnerTest {
|
||||
val input = tempDir.resolve("test.pkl").writeString(code).toString()
|
||||
val out = StringWriter()
|
||||
val err = StringWriter()
|
||||
val opts = CliBaseOptions(sourceModules = listOf(input.toUri()), settings = URI("pkl:settings"))
|
||||
val opts =
|
||||
CliBaseOptions(
|
||||
sourceModules = listOf(input.toUri()),
|
||||
settings = URI("pkl:settings"),
|
||||
powerAssertionsEnabled = true,
|
||||
)
|
||||
val testOpts = CliTestOptions()
|
||||
val runner = CliTestRunner(opts, testOpts, consoleWriter = out, errWriter = err)
|
||||
runner.run()
|
||||
@@ -89,7 +94,12 @@ class CliTestRunnerTest {
|
||||
val input = tempDir.resolve("test.pkl").writeString(code).toString()
|
||||
val out = StringWriter()
|
||||
val err = StringWriter()
|
||||
val opts = CliBaseOptions(sourceModules = listOf(input.toUri()), settings = URI("pkl:settings"))
|
||||
val opts =
|
||||
CliBaseOptions(
|
||||
sourceModules = listOf(input.toUri()),
|
||||
settings = URI("pkl:settings"),
|
||||
powerAssertionsEnabled = true,
|
||||
)
|
||||
val testOpts = CliTestOptions()
|
||||
val runner = CliTestRunner(opts, testOpts, consoleWriter = out, errWriter = err)
|
||||
assertThatCode { runner.run() }.hasMessage("Tests failed.")
|
||||
@@ -131,7 +141,12 @@ class CliTestRunnerTest {
|
||||
val input = tempDir.resolve("test.pkl").writeString(code).toString()
|
||||
val out = StringWriter()
|
||||
val err = StringWriter()
|
||||
val opts = CliBaseOptions(sourceModules = listOf(input.toUri()), settings = URI("pkl:settings"))
|
||||
val opts =
|
||||
CliBaseOptions(
|
||||
sourceModules = listOf(input.toUri()),
|
||||
settings = URI("pkl:settings"),
|
||||
powerAssertionsEnabled = true,
|
||||
)
|
||||
val testOpts = CliTestOptions()
|
||||
val runner = CliTestRunner(opts, testOpts, consoleWriter = out, errWriter = err)
|
||||
assertThatCode { runner.run() }.hasMessage("Tests failed.")
|
||||
@@ -173,7 +188,12 @@ class CliTestRunnerTest {
|
||||
val input = tempDir.resolve("test.pkl").writeString(code).toString()
|
||||
val out = StringWriter()
|
||||
val err = StringWriter()
|
||||
val opts = CliBaseOptions(sourceModules = listOf(input.toUri()), settings = URI("pkl:settings"))
|
||||
val opts =
|
||||
CliBaseOptions(
|
||||
sourceModules = listOf(input.toUri()),
|
||||
settings = URI("pkl:settings"),
|
||||
powerAssertionsEnabled = true,
|
||||
)
|
||||
val testOpts = CliTestOptions()
|
||||
val runner = CliTestRunner(opts, testOpts, consoleWriter = out, errWriter = err)
|
||||
assertThatCode { runner.run() }.hasMessage("Tests failed.")
|
||||
@@ -229,7 +249,12 @@ class CliTestRunnerTest {
|
||||
)
|
||||
val out = StringWriter()
|
||||
val err = StringWriter()
|
||||
val opts = CliBaseOptions(sourceModules = listOf(input.toUri()), settings = URI("pkl:settings"))
|
||||
val opts =
|
||||
CliBaseOptions(
|
||||
sourceModules = listOf(input.toUri()),
|
||||
settings = URI("pkl:settings"),
|
||||
powerAssertionsEnabled = true,
|
||||
)
|
||||
val testOpts = CliTestOptions()
|
||||
val runner = CliTestRunner(opts, testOpts, consoleWriter = out, errWriter = err)
|
||||
assertThatCode { runner.run() }.hasMessage("Tests failed.")
|
||||
@@ -275,7 +300,12 @@ class CliTestRunnerTest {
|
||||
.trimIndent()
|
||||
val input = tempDir.resolve("test.pkl").writeString(code).toString()
|
||||
val noopWriter = noopWriter()
|
||||
val opts = CliBaseOptions(sourceModules = listOf(input.toUri()), settings = URI("pkl:settings"))
|
||||
val opts =
|
||||
CliBaseOptions(
|
||||
sourceModules = listOf(input.toUri()),
|
||||
settings = URI("pkl:settings"),
|
||||
powerAssertionsEnabled = true,
|
||||
)
|
||||
val testOpts = CliTestOptions(junitDir = tempDir)
|
||||
val runner = CliTestRunner(opts, testOpts, noopWriter, noopWriter)
|
||||
assertThatCode { runner.run() }.hasMessageContaining("failed")
|
||||
@@ -320,7 +350,12 @@ class CliTestRunnerTest {
|
||||
.trimIndent()
|
||||
val input = tempDir.resolve("test.pkl").writeString(code).toString()
|
||||
val noopWriter = noopWriter()
|
||||
val opts = CliBaseOptions(sourceModules = listOf(input.toUri()), settings = URI("pkl:settings"))
|
||||
val opts =
|
||||
CliBaseOptions(
|
||||
sourceModules = listOf(input.toUri()),
|
||||
settings = URI("pkl:settings"),
|
||||
powerAssertionsEnabled = true,
|
||||
)
|
||||
val testOpts = CliTestOptions(junitDir = tempDir)
|
||||
val runner = CliTestRunner(opts, testOpts, noopWriter, noopWriter)
|
||||
assertThatCode { runner.run() }.hasMessageContaining("failed")
|
||||
@@ -474,6 +509,7 @@ class CliTestRunnerTest {
|
||||
CliBaseOptions(
|
||||
sourceModules = listOf(input1.toUri(), input2.toUri()),
|
||||
settings = URI("pkl:settings"),
|
||||
powerAssertionsEnabled = true,
|
||||
)
|
||||
val testOpts = CliTestOptions(junitDir = tempDir, junitAggregateReports = true)
|
||||
val runner = CliTestRunner(opts, testOpts, noopWriter, noopWriter)
|
||||
@@ -601,7 +637,12 @@ class CliTestRunnerTest {
|
||||
)
|
||||
val out = StringWriter()
|
||||
val err = StringWriter()
|
||||
val opts = CliBaseOptions(sourceModules = listOf(input.toUri()), settings = URI("pkl:settings"))
|
||||
val opts =
|
||||
CliBaseOptions(
|
||||
sourceModules = listOf(input.toUri()),
|
||||
settings = URI("pkl:settings"),
|
||||
powerAssertionsEnabled = true,
|
||||
)
|
||||
val testOpts = CliTestOptions()
|
||||
val runner = CliTestRunner(opts, testOpts, consoleWriter = out, errWriter = err)
|
||||
assertThatCode { runner.run() }.hasMessage("Tests failed.")
|
||||
@@ -640,7 +681,12 @@ class CliTestRunnerTest {
|
||||
val input = tempDir.resolve("test.pkl").writeString(code).toString()
|
||||
val out = StringWriter()
|
||||
val err = StringWriter()
|
||||
val opts = CliBaseOptions(sourceModules = listOf(input.toUri()), settings = URI("pkl:settings"))
|
||||
val opts =
|
||||
CliBaseOptions(
|
||||
sourceModules = listOf(input.toUri()),
|
||||
settings = URI("pkl:settings"),
|
||||
powerAssertionsEnabled = true,
|
||||
)
|
||||
val testOpts = CliTestOptions()
|
||||
val runner = CliTestRunner(opts, testOpts, consoleWriter = out, errWriter = err)
|
||||
val exception = assertThrows<CliException> { runner.run() }
|
||||
@@ -680,7 +726,11 @@ class CliTestRunnerTest {
|
||||
val out = StringWriter()
|
||||
val err = StringWriter()
|
||||
val opts =
|
||||
CliBaseOptions(sourceModules = listOf(input.toUri()), settings = URI("pkl:settings"))
|
||||
CliBaseOptions(
|
||||
sourceModules = listOf(input.toUri()),
|
||||
settings = URI("pkl:settings"),
|
||||
powerAssertionsEnabled = true,
|
||||
)
|
||||
val testOpts = CliTestOptions()
|
||||
val runner = CliTestRunner(opts, testOpts, consoleWriter = out, errWriter = err)
|
||||
runner.run()
|
||||
|
||||
Reference in New Issue
Block a user