{
"acceptanceRunner" : {
"command" : "bin/test-fitnesse",
"ciCommandSequence" : [
"bin/test-dev",
"bin/test-fitnesse"
],
"baselineConformantPages" : 45,
"pages" : 50,
"latestRun" : {
"existingDeveloperServices" : {
"status" : "PASS",
"pagesExecuted" : 50,
"externalPerlConfirmed" : 50,
"conformant" : 45,
"rawCounts" : {
"right" : 373,
"wrong" : 7,
"ignored" : 2,
"exceptions" : 0
},
"regressions" : 0,
"serverCrashes" : 0
},
"freshServicesAndWiki" : {
"status" : "PASS",
"fitNessePort" : 18080,
"perlSlimPort" : 18099,
"pagesExecuted" : 50,
"externalPerlConfirmed" : 50,
"conformant" : 45,
"regressions" : 0,
"serverCrashes" : 0,
"ownedProcessesStopped" : true
}
},
"regressionTests" : {
"file" : "t/fitnesse-acceptance-runner.t",
"assertions" : 29,
"status" : "PASS"
},
"perlTests" : {
"command" : "bin/test-dev",
"files" : 42,
"tests" : 455,
"knownTodoFailures" : 4,
"status" : "PASS"
},
"reportFilePattern" : ".runtime/fitnesse-acceptance-results-{pipe,tcp}.json",
"requiresExternalPerlEvidence" : true,
"generatedMySuiteCleanupBeforeEveryPage" : true
},
"acceptancePhaseCommits" : [
{
"hash" : "98cbce6c366b3ba400e93bcffdb92f25f4c753f4",
"subject" : "Add upstream AddUpChange fixture"
},
{
"hash" : "d1860842dc9e9236a4292474ead8dc717a26fb14",
"subject" : "Add library setup tracking fixture"
},
{
"hash" : "049c2897e599c32236252979f765224efd5e134d",
"subject" : "Preserve repeated SLiM library instances"
},
{
"hash" : "d81d6164e390c9fbf63b227522809e5aa543ecf9",
"subject" : "Complete Echo and hash fixture behavior"
},
{
"hash" : "0b0e0eeda2f9ae78e211b1a868abbf00d35d98dd",
"subject" : "Implement upstream Sleep fixture"
},
{
"hash" : "c8da91540fa2fa0c2a687f90f2dbe86ad29c6735",
"subject" : "Add EchoScript output methods"
},
{
"hash" : "def3cb8451be3c854e3c7b1f4543b7c7b83abc4f",
"subject" : "Implement TestSlim argument concatenation"
},
{
"hash" : "fa34a0997466f1f36311a6c21e071f6c439532bf",
"subject" : "Implement LoginDialogDriver fixture"
},
{
"hash" : "9407afc64c81ee870857c059a2d3342ff5c5c318",
"subject" : "Implement upstream DetailedDiff fixture"
},
{
"hash" : "4d2bb540fb56d8489244b1d1686a1426ec8869fe",
"subject" : "Support fixture-managed SLiM symbols"
},
{
"hash" : "0af7bac90ec09d2c1194d811f2356cc85f0101c9",
"subject" : "Implement fixture-managed TableTable behavior"
}
],
"addUpChangeIncrement" : {
"affectedPageResults" : [
{
"after" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 22,
"wrong" : 0
},
"before" : {
"exceptions" : 67,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"page" : "DefineAliasTest",
"status" : "conformant"
},
{
"after" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"before" : {
"exceptions" : 25,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"page" : "HybridDecisionTable.ImplementDynamicDecisionTableWithHybridTable",
"status" : "conformant"
}
],
"behavior" : "Accumulates six coin denominations in cents, resets state, returns either cents or two-decimal dollar text, and raises IllegalArgumentException for an unknown coin.",
"family" : "FitNesse AddUpChange fixture",
"fullInventory" : {
"knownServerExits" : 0,
"notYetRerun" : true,
"pages" : 50
},
"newlyConformantPages" : [
"DefineAliasTest",
"HybridDecisionTable.ImplementDynamicDecisionTableWithHybridTable"
],
"perlTests" : {
"command" : "bin/test-dev",
"files" : 29,
"knownTodoFailures" : 4,
"status" : "PASS",
"tests" : 346
},
"regression" : {
"assertions" : 8,
"file" : "t/add-up-change.t",
"preFix" : "Fixture load failed because Fitnesse::Slim::Test::AddUpChange was absent."
},
"upstreamReference" : "/tmp/fitnesse-src/src/fitnesse/slim/test/AddUpChange.java"
},
"additionalConfirmedDefect" : "The HashFixture map-return serialization gap has been fixed by a map-specific FitNesse-compatible result converter; HashTableTests.ShouldReturnHashTable now passes.",
"branch" : "codex/complete-slim",
"classificationMethod" : "Each Test=true page is requested individually through FitNesse and classified from the primary result/counts XML node. The harness deletes the generated MySuite subtree before each request to isolate PageDriver-created pages. Conformance is based on the outer assertions and upstream expected behavior; intentional inner failures and ignored rows are classified separately.",
"concurrencyVerification" : {
"acceptanceRun" : {
"completed" : 50,
"counts" : {
"exceptions" : 19,
"ignored" : 0,
"right" : 17,
"wrong" : 14
},
"countsMeaning" : "Historical per-page outcome markers, not raw page assertion totals; superseded by postFixVerification raw XML counts.",
"externalPerlConfirmed" : 50,
"failingPages" : 33,
"newlyPassingPages" : [],
"pageResultChanges" : 0,
"pages" : 50,
"passingPages" : 17,
"serverExits" : 0
},
"isolation" : "Each process() call replaces EXEC with a fresh ListExecutor, isolating imports, actor objects, library registrations and instances, symbols, and fixture-owned state.",
"model" : "fork one worker per accepted SLiM connection; listener parent accepts and reaps children",
"preFixFailure" : "The test timed out waiting for connection B greeting while connection A remained open.",
"regressionAssertions" : 13,
"regressionTest" : "t/server-concurrency.t",
"socketCleanup" : "Parent closes its accepted-socket copy; process() closes the worker socket on BYE, EOF, or exception; malformed input is contained in the worker; SIGCHLD handler reaps exited workers."
},
"conformanceSummary" : {
"classificationCounts" : {
"conformant" : 45,
"engine_gap" : 0,
"environment_limited" : 1,
"fixture_gap" : 0,
"harness_limited" : 4
},
"confirmedConformantPages" : 45,
"confirmedEngineGapPages" : 0,
"environmentBlockedPages" : 1,
"fixtureBlockedPages" : 0,
"interpretation" : "Raw counts use each page response primary result/counts node after isolating generated MySuite pages before every request. StopTest and StopSuite are conformant; their prior wrong counts came from stale PageDriver-created suite setup state.",
"pages" : 50,
"testHarnessBlockedPages" : 4
},
"customTypeConversion" : {
"acceptanceResult" : {
"exceptions" : 0,
"externalPerlConfirmed" : true,
"ignored" : 0,
"right" : 13,
"wrong" : 0
},
"architecture" : "Per-StatementExecutor converter registry with explicit slim_method_signature metadata; unannotated fixtures retain existing dispatch. No Java-style reflection is used.",
"behavior" : [
"Declared parameter type selects from_string conversion.",
"Declared return type selects to_string conversion.",
"Unregistered declared result types fall back to runtime-class lookup.",
"Exact java.util.List array results remain nested SLiM lists; ArrayList results use the List converter.",
"Nested collection elements use runtime converters; nulls and already-converted references retain upstream behavior.",
"Converter state is isolated per executor/connection; reset restores standard String, Boolean, and List converters.",
"Converter failures include invocation context; opaque references are not stringified into memory addresses."
],
"page" : "TestCustomConverter",
"regressionTests" : "t/custom-converters.t: 19 tests covering registration, argument and result conversion, runtime lookup, exact List bypass, nested lists, nulls, errors, fallback, symbol references, booleans, and isolation.",
"status" : "implemented",
"upstreamReferences" : [
"/tmp/fitnesse-src/src/fitnesse/slim/test/TestSlimWithConverter.java",
"/tmp/fitnesse-src/src/fitnesse/slim/converters/ConverterRegistry.java",
"/tmp/fitnesse-src/src/fitnesse/slim/MethodExecutionResult.java",
"/tmp/fitnesse-src/src/fitnesse/slim/ConverterSupport.java"
]
},
"date" : "2026-10-16",
"detailedDiffFixtureIncrement" : {
"affectedPageResults" : [
{
"after" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 22,
"wrong" : 0
},
"before" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 21
},
"nestedExpected" : {
"exceptions" : 0,
"ignored" : 1,
"right" : 25,
"wrong" : 50
},
"page" : "TestDetailedDiff",
"status" : "conformant"
}
],
"behavior" : "Stores strings, integers, doubles, and symbol text; returns each via the matching expected getter; echoes strings. FitNesse itself renders detailed differences.",
"family" : "FitNesse DetailedDiff fixture",
"fullInventory" : {
"knownServerExits" : 0,
"notYetRerun" : true,
"pages" : 50
},
"newlyConformantPages" : [
"TestDetailedDiff"
],
"perlTests" : {
"command" : "bin/test-dev",
"files" : 37,
"knownTodoFailures" : 4,
"status" : "PASS",
"tests" : 398
},
"regression" : {
"assertions" : 6,
"file" : "t/detailed-diff-fixture.t",
"preFix" : "The DetailedDiff fixture class was missing."
},
"upstreamReference" : "/tmp/fitnesse-src/src/fitnesse/slim/test/DetailedDiff.java"
},
"echoHashFixtureIncrement" : {
"affectedPageResults" : [
{
"after" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"before" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"page" : "HashTableTests.HashTableWithHtmlContent",
"status" : "conformant"
},
{
"after" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"before" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"page" : "TestPageWithInclude",
"status" : "conformant"
}
],
"behavior" : "EchoFixture stores and returns names, performs string/integer echo, and logs echoAndLog values. HashFixture.sendAsHash is void and hashIs logs and returns the stored map value.",
"family" : "EchoFixture and HashFixture acceptance helpers",
"fullInventory" : {
"knownServerExits" : 0,
"notYetRerun" : true,
"pages" : 50
},
"newlyConformantPages" : [
"HashTableTests.HashTableWithHtmlContent",
"TestPageWithInclude"
],
"perlTests" : {
"command" : "bin/test-dev",
"files" : 32,
"knownTodoFailures" : 4,
"status" : "PASS",
"tests" : 367
},
"regression" : {
"assertions" : 7,
"file" : "t/echo-hash-fixtures.t",
"preFix" : "The focused test reported missing set_name, name, echo_and_log, and hash_is; send_as_hash also leaked its assignment result."
},
"upstreamReferences" : [
"/tmp/fitnesse-src/src/fitnesse/fixtures/EchoFixture.java",
"/tmp/fitnesse-src/src/fitnesse/fixtures/HashFixture.java"
]
},
"echoScriptFixtureIncrement" : {
"affectedPageResults" : [
{
"after" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"before" : {
"exceptions" : 1,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"page" : "TestChineseWords",
"status" : "conformant"
}
],
"behavior" : "echo returns its string; echoToStdout and echoToStderr write the value and newline to the corresponding stream and return the original value.",
"family" : "FitNesse EchoScript Unicode output fixture",
"fullInventory" : {
"knownServerExits" : 0,
"notYetRerun" : true,
"pages" : 50
},
"newlyConformantPages" : [
"TestChineseWords"
],
"perlTests" : {
"command" : "bin/test-dev",
"files" : 34,
"knownTodoFailures" : 4,
"status" : "PASS",
"tests" : 381
},
"regression" : {
"assertions" : 8,
"file" : "t/echo-script.t",
"preFix" : "EchoScript lacked echo_to_stdout and echo_to_stderr."
},
"upstreamReference" : "/tmp/fitnesse-src/src/fitnesse/slim/test/EchoScript.java"
},
"finalAcceptanceInventory" : {
"baselineDiscrepanciesReproducedOnPreviousCommit" : [
"StopSuite",
"StopTest"
],
"baselineDiscrepancyExplanation" : "Both raw failures reproduce on source snapshot dc7561e only when the generated MySuite.SuiteSetUp is present. The prior full inventory happened to run the stop pages before StopTestInSuiteSetUp; isolated reruns inherited its stale page. They are harness-order artifacts, not engine gaps.",
"classificationChanges" : 1,
"cleanStatePageStatusChanges" : [
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 1
},
"beforeStatus" : "engine_gap",
"page" : "StopSuite"
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 2
},
"beforeStatus" : "engine_gap",
"page" : "StopTest"
}
],
"comparisonFile" : "statusComparison is recorded inline in this JSON inventory.",
"completedResponses" : 50,
"conformanceCounts" : {
"conformant" : 45,
"engine_gap" : 0,
"environment_limited" : 1,
"fixture_gap" : 0,
"harness_limited" : 4
},
"externalPerlConfirmed" : 50,
"newlyConformantSincePhaseStart" : [
"DefineAliasTest",
"HybridDecisionTable.ImplementDynamicDecisionTableWithHybridTable",
"LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpTest",
"LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpAndPageTest",
"HashTableTests.HashTableWithHtmlContent",
"TestPageWithInclude",
"TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.NotWorking_SettingSlimTimeout",
"TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.PartiallyWorking_SettingSlimFlags",
"TestChineseWords",
"TestSequentialArgumentProcessing",
"TestTryingParameterizationIsntTooGreedy",
"TestDetailedDiff",
"TableTableSuite.SymbolsInTableTableManagedByTheFixture",
"TestCustomConverter"
],
"pageStatusMatchesPriorInventory" : 49,
"pages" : 50,
"preservedInitialConformantPages" : 31,
"rawAssertionCounts" : {
"exceptions" : 0,
"ignored" : 2,
"right" : 373,
"wrong" : 7
},
"regressions" : 0,
"serverExits" : 0,
"statusComparison" : [
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 10,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 10,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "BaseLineDecisionTable.ComparatorsAreSupported",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "BaseLineDecisionTable.MakingTheBaselineTableTheDefaultDecisionTable",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 10,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 10,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "BaseLineDecisionTable.ScenariosAreSupported",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "BaseLineDecisionTable.TestFailuresAreMarked",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 17,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 17,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "BaseLineDecisionTable",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "ChainWithInstanceTest",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 1
},
"afterStatus" : "harness_limited",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 1
},
"beforeStatus" : "harness_limited",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "CustomTableRenderingAddedByPluginTest",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "DefineAliasInPluginTest",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 22,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 22,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "DefineAliasTest",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "HashTableTests.HashTableWithHtmlContent",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "HashTableTests.ShouldReturnHashTable",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "HybridDecisionTable.ImplementDynamicDecisionTableWithHybridTable",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 2
},
"afterStatus" : "harness_limited",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 2
},
"beforeStatus" : "harness_limited",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "IgnoredTestsShouldColorGray",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "LibrarySuite.HowToAddFixturesWithParametersToTheLibrary",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "LibrarySuite.LastLibraryPreceedsEarlierLibraryTest",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpAndPageTest",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpTest",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "LibrarySuite.OneLibraryTest",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 2,
"right" : 4,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 2,
"right" : 4,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "QueryTableSuite.SetContextValue",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 27,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 27,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "QueryTableSuite.TestMatching",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "ScenarioTestSuite.ScenarioWithOutputParametersInDecisionTables",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "ScenarioTestSuite.ScenarioWithOutputParametersInScripts",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "ScenarioTestSuite.ScriptSubclassUsedForDecisionTable",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "ScenarioTestSuite.UsingConstructorArgumentsFromDecisionTablesInScenarios",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 12,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 12,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "SegregationOfRequirementsAndImplementation",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "SlimSymbols.NamingConvention",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 18,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 18,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "SlimSymbols.SlimSymbolManipulation",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "StopSuite",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "StopTest",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "StopTestInSuiteSetUp",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 15,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 15,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "TableTableSuite.SymbolsInTableTableManagedByTheFixture",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "TestChineseWords",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 26,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 26,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "TestComparators",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 2
},
"afterStatus" : "harness_limited",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 2
},
"beforeStatus" : "harness_limited",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "TestCustomComparators",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 13,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 17,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "engine_gap",
"classificationChanged" : true,
"newlyConformant" : true,
"page" : "TestCustomConverter",
"rawCountsUnchanged" : false,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 22,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 22,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "TestDetailedDiff",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 19,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 19,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "TestExceptionIsDisplayed",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 14,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 14,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "TestOrderedQueryWithDuplicateRows",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "TestPageWithInclude",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "TestScriptTable",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "TestScriptTableDisplayParameterValue",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "TestSequentialArgumentProcessing",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 11,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 11,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "TestSubsetQuery",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 1
},
"afterStatus" : "harness_limited",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 1
},
"beforeStatus" : "harness_limited",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "TestSystemSlimSuite.ErrorSituationsDuringSlimServerStartup.B_TimeoutAsSlimServerDiesBeforeConnecting",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 1
},
"afterStatus" : "environment_limited",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 1
},
"beforeStatus" : "environment_limited",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "TestSystemSlimSuite.ErrorSituationsDuringSlimServerStartup.C_TimeoutAsNoServerAtGivenSocket",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.NotWorking_SettingSlimTimeout",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 9,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 9,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.PartiallyWorking_SettingSlimFlags",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "TestSystemSlimSuite.TimeoutInSlimTestSystem",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "TestTryingParameterizationIsntTooGreedy",
"rawCountsUnchanged" : true,
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"beforeStatus" : "conformant",
"classificationChanged" : false,
"newlyConformant" : false,
"page" : "TestTwoIdenticalTablesOnPageDontConflict",
"rawCountsUnchanged" : true,
"regression" : false
}
]
},
"fitNesse" : "http://127.0.0.1:8080; execution logs identified the SlimService test system and Connection to running SlimService: 127.0.0.1:8099 (FitNesse varies the testSystem capitalization on four timeout pages).",
"fitNesseVersion" : "20251025",
"fixtureFamilyImpactAnalysis" : {
"basis" : "Twenty-six non-conformant pages in the previous baseline, before SlimHelperLibrary implementation. Counts are affected pages, not additive because dependencies overlap.",
"ranking" : [
{
"affectedPages" : 5,
"family" : "Stop and exception fixtures",
"pages" : [
"StopSuite",
"StopTest",
"StopTestInSuiteSetUp",
"IgnoredTestsShouldColorGray",
"TestExceptionIsDisplayed"
],
"rank" : 1,
"scopeNote" : "Highest raw page reach, but the pages also need several generated/page-specific fixtures and exception methods.",
"sharedDependencies" : [
"ConstructorThrows"
]
},
{
"affectedPages" : 3,
"family" : "Automatic SlimHelperLibrary actor stack",
"pages" : [
"ChainWithInstanceTest",
"DefineAliasTest",
"LibrarySuite.HowToAddFixturesWithParametersToTheLibrary"
],
"rank" : 2,
"scopeNote" : "A single coherent engine-provided helper family. Implemented in this increment; two pages became conformant and DefineAliasTest sheds six exceptions after correcting missing-actor behavior.",
"sharedDependencies" : [
"getFixture",
"pushFixture",
"popFixture"
]
},
{
"affectedPages" : 2,
"family" : "AddUpChange fixtures",
"pages" : [
"DefineAliasTest",
"HybridDecisionTable.ImplementDynamicDecisionTableWithHybridTable"
],
"rank" : 3,
"scopeNote" : "One fixture family with broad alias and hybrid-table use; both pages remain blocked.",
"sharedDependencies" : [
"AddUpChange"
]
},
{
"affectedPages" : 2,
"family" : "LibraryInSetUp fixtures",
"pages" : [
"LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpAndPageTest",
"LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpTest"
],
"rank" : 4,
"sharedDependencies" : [
"LibraryInSetUp",
"setup-library call tracking"
]
},
{
"affectedPages" : 2,
"family" : "Hash return and hash query behavior",
"pages" : [
"HashTableTests.HashTableWithHtmlContent",
"HashTableTests.ShouldReturnHashTable"
],
"rank" : 5,
"scopeNote" : "Split between missing fixture methods and one confirmed object-return serialization defect.",
"sharedDependencies" : [
"hash_is",
"echo_and_log",
"hash return serialization"
]
}
]
},
"fixtureIncrement" : {
"behavior" : "SplitFixture parses semicolon-separated rows and comma-separated cells into query rows of column/value pairs, retaining order and Java split empty/null behavior. DuplicateRows returns the upstream one-column x rows for phases A and B, including repeated setup and teardown rows and each phase order. The query fixtures remain in t/lib/Fitnesse/Fixtures, outside core protocol execution.",
"family" : "SplitFixture and DuplicateRows query fixtures",
"fullInventory" : {
"externalPerlConfirmed" : 50,
"failingPages" : 26,
"pages" : 50,
"passingPages" : 24,
"rawAssertionCounts" : {
"exceptions" : 192,
"ignored" : 2,
"right" : 239,
"wrong" : 60
},
"serverExits" : 0
},
"newlyConformantPages" : [
"QueryTableSuite.SetContextValue",
"QueryTableSuite.TestMatching",
"TestOrderedQueryWithDuplicateRows",
"TestSubsetQuery"
],
"perlTests" : {
"command" : "bin/test-dev",
"files" : 25,
"focusedTests" : [
"t/query-fixtures.t",
"t/assign-instruction.t"
],
"knownTodoFailures" : 4,
"result" : "PASS",
"tests" : 288
},
"protocolCompatibility" : "SetContextValue uses the SLiM assign instruction to transfer query cells into symbols. The pinned v20251025 session uses V0.5; assign stores its value, returns OK, and preserves null.",
"upstreamReference" : "Installed FitNesse v20251025 classes fitnesse.fixtures.SplitFixture and fitnesse.fixtures.DuplicateRows; both expose a single-String constructor and query(). Their bytecode metadata and unchanged acceptance tables establish the constructors and query signatures."
},
"fixtureIncrementHistory" : [
{
"affectedPages" : [
"BaseLineDecisionTable.ComparatorsAreSupported",
"BaseLineDecisionTable",
"ScenarioTestSuite.ScenarioWithOutputParametersInDecisionTables",
"ScenarioTestSuite.ScenarioWithOutputParametersInScripts",
"ScenarioTestSuite.ScriptSubclassUsedForDecisionTable",
"ScenarioTestSuite.UsingConstructorArgumentsFromDecisionTablesInScenarios",
"SegregationOfRequirementsAndImplementation"
],
"behavior" : "Preserves zero-initialized state, void setters, quotient results formatted as Java double strings, and NaN/Infinity for zero denominators.",
"family" : "Eg.Division",
"fullInventory" : {
"counts" : {
"exceptions" : 22,
"ignored" : 0,
"right" : 12,
"wrong" : 16
},
"externalPerlConfirmed" : 50,
"failingPages" : 38,
"pages" : 50,
"passingPages" : 12,
"serverExits" : 0
},
"newlyPassingPages" : [
"BaseLineDecisionTable.ComparatorsAreSupported",
"ScenarioTestSuite.ScenarioWithOutputParametersInScripts",
"ScenarioTestSuite.ScriptSubclassUsedForDecisionTable",
"ScenarioTestSuite.UsingConstructorArgumentsFromDecisionTablesInScenarios"
],
"perlTests" : {
"command" : "bin/test-dev",
"files" : 18,
"result" : "PASS",
"tests" : 188
},
"remainingAffectedFailures" : [
"BaseLineDecisionTable: missing ShouldIBuyMilk fixture",
"ScenarioTestSuite.ScenarioWithOutputParametersInDecisionTables: scenario output-parameter actor resolution reports The instance null does not exist",
"SegregationOfRequirementsAndImplementation: scenario implementation reports The instance null does not exist and has one wrong assertion"
],
"upstreamClass" : "eg.Division from installed FitNesse v20251025: public no-argument constructor, public numerator and denominator double fields, setNumerator(double), setDenominator(double), and quotient() returning double."
},
{
"family" : "Scenario actor dispatch, cloneSymbol, and ShouldIBuyMilk",
"focusedTests" : [
"t/library-resolution.t",
"t/should-i-buy-milk.t"
],
"fullInventory" : {
"counts" : {
"exceptions" : 19,
"ignored" : 0,
"right" : 17,
"wrong" : 14
},
"externalPerlConfirmed" : 50,
"failingPages" : 33,
"pages" : 50,
"passingPages" : 17,
"serverExits" : 0
},
"newlyPassingPages" : [
"BaseLineDecisionTable.MakingTheBaselineTableTheDefaultDecisionTable",
"BaseLineDecisionTable.ScenariosAreSupported",
"BaseLineDecisionTable",
"ScenarioTestSuite.ScenarioWithOutputParametersInDecisionTables",
"SegregationOfRequirementsAndImplementation"
],
"perlTests" : {
"command" : "bin/test-dev",
"files" : 19,
"result" : "PASS",
"tests" : 203
},
"remainingAffectedFailures" : [
"BaseLineDecisionTable.TestFailuresAreMarked: nested test still lacks ResponseExaminer/page-driver fixture behavior"
],
"upstreamBehavior" : "FitNesse library resolution searches registered libraries newest-first when the actor and SUT do not provide a method; its SlimHelperLibrary cloneSymbol returns the supplied symbol object unchanged. ShouldIBuyMilk mirrors the upstream decision rule and no-op table hooks."
},
{
"behavior" : "SplitFixture parses semicolon-separated rows and comma-separated cells into query rows of column/value pairs, retaining order and Java split empty/null behavior. DuplicateRows returns the upstream one-column x rows for phases A and B, including repeated setup and teardown rows and each phase order. The query fixtures remain in t/lib/Fitnesse/Fixtures, outside core protocol execution.",
"family" : "SplitFixture and DuplicateRows query fixtures",
"fullInventory" : {
"externalPerlConfirmed" : 50,
"failingPages" : 26,
"pages" : 50,
"passingPages" : 24,
"rawAssertionCounts" : {
"exceptions" : 192,
"ignored" : 2,
"right" : 239,
"wrong" : 60
},
"serverExits" : 0
},
"newlyConformantPages" : [
"QueryTableSuite.SetContextValue",
"QueryTableSuite.TestMatching",
"TestOrderedQueryWithDuplicateRows",
"TestSubsetQuery"
],
"perlTests" : {
"command" : "bin/test-dev",
"files" : 25,
"focusedTests" : [
"t/query-fixtures.t",
"t/assign-instruction.t"
],
"knownTodoFailures" : 4,
"result" : "PASS",
"tests" : 288
},
"protocolCompatibility" : "SetContextValue uses the SLiM assign instruction to transfer query cells into symbols. The pinned v20251025 session uses V0.5; assign stores its value, returns OK, and preserves null.",
"upstreamReference" : "Installed FitNesse v20251025 classes fitnesse.fixtures.SplitFixture and fitnesse.fixtures.DuplicateRows; both expose a single-String constructor and query(). Their bytecode metadata and unchanged acceptance tables establish the constructors and query signatures."
}
],
"fixtureResolutionPhase" : {
"allInitiallyConformantPagesPreserved" : true,
"finalClassification" : {
"conformant" : 44,
"engine_gap" : 1,
"environment_limited" : 1,
"fixture_gap" : 0,
"harness_limited" : 4
},
"finalConformantPages" : 44,
"initialConformantPages" : 31,
"initialFamilyRanking" : [
{
"affectedPages" : 2,
"family" : "AddUpChange",
"pages" : [
"DefineAliasTest",
"HybridDecisionTable.ImplementDynamicDecisionTableWithHybridTable"
],
"rank" : 1,
"rationale" : "A single fixture served two pages and removed the large cascading constructor-failure sequence."
},
{
"affectedPages" : 2,
"family" : "LibraryInSetUp and library registration",
"pages" : [
"LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpTest",
"LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpAndPageTest"
],
"rank" : 2,
"rationale" : "Shared setup library with a directly exposed duplicate-ID engine defect."
},
{
"affectedPages" : 2,
"family" : "EchoFixture and HashFixture",
"pages" : [
"HashTableTests.HashTableWithHtmlContent",
"TestPageWithInclude"
],
"rank" : 3,
"rationale" : "Echo methods and hash lookup methods jointly satisfied the hash HTML and include examples."
},
{
"affectedPages" : 2,
"family" : "Sleep",
"pages" : [
"TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.NotWorking_SettingSlimTimeout",
"TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.PartiallyWorking_SettingSlimFlags"
],
"rank" : 4,
"rationale" : "One timing fixture covered both documented timeout scenarios; runner flags remain outside direct persistent-session verification."
},
{
"affectedPages" : 5,
"family" : "Standalone fixtures",
"pages" : [
"TestChineseWords",
"TestSequentialArgumentProcessing",
"TestTryingParameterizationIsntTooGreedy",
"TestDetailedDiff",
"TableTableSuite.SymbolsInTableTableManagedByTheFixture"
],
"rank" : 5,
"rationale" : "Each bounded upstream fixture covered one page; TableTable additionally required the separately tested StatementExecutorConsumer engine support."
},
{
"affectedPages" : 1,
"family" : "Custom converters",
"pages" : [
"TestCustomConverter"
],
"rank" : 6,
"rationale" : "The fixture contract exposes missing cross-cutting converter engine behavior; stopped pending broader design."
}
],
"initialFixtureGapPages" : 14,
"newlyConformantPages" : [
"DefineAliasTest",
"HybridDecisionTable.ImplementDynamicDecisionTableWithHybridTable",
"LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpTest",
"LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpAndPageTest",
"HashTableTests.HashTableWithHtmlContent",
"TestPageWithInclude",
"TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.NotWorking_SettingSlimTimeout",
"TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.PartiallyWorking_SettingSlimFlags",
"TestChineseWords",
"TestSequentialArgumentProcessing",
"TestTryingParameterizationIsntTooGreedy",
"TestDetailedDiff",
"TableTableSuite.SymbolsInTableTableManagedByTheFixture"
],
"serverCrashes" : 0
},
"fixtureSymbolConsumerEngineIncrement" : {
"acceptanceEffect" : "No page status changes yet; the TableTable fixture remains to be implemented.",
"behavior" : "Injects the active executor into consumers after construction. The reserved SLIM_AGENT_FIXTURE_HANDLES_SYMBOLS value controls whether matching instance.method calls bypass ordinary symbol substitution; null restores substitution.",
"currentInventory" : {
"conformant" : 43,
"fixtureGapPages" : 2,
"pages" : 50,
"serverExits" : 0
},
"family" : "Upstream StatementExecutorConsumer lifecycle",
"perlTests" : {
"command" : "bin/test-dev",
"files" : 38,
"knownTodoFailures" : 4,
"status" : "PASS",
"tests" : 402
},
"regression" : {
"assertions" : 4,
"file" : "t/fixture-symbol-consumer.t",
"preFix" : "The consumer had no executor context, so it could neither inspect nor manage symbols in a table."
},
"upstreamReference" : "/tmp/fitnesse-src/src/fitnesse/slim/StatementExecutor.java and StatementExecutorConsumer.java"
},
"harnessInvestigation" : {
"affectedBaselinePages" : [
"BaseLineDecisionTable.TestFailuresAreMarked",
"CustomTableRenderingAddedByPluginTest",
"IgnoredTestsShouldColorGray",
"TestCustomComparators",
"TestDetailedDiff",
"TestExceptionIsDisplayed",
"TestSystemSlimSuite.ErrorSituationsDuringSlimServerStartup.B_TimeoutAsSlimServerDiesBeforeConnecting"
],
"blockingDependency" : {
"classification" : "test harness setup limitation; no protocol defect observed",
"evidence" : "Response inspection now works. Three pages remain limited by nested suite plugin/comparator setup or a startup-dead-runner response dependency.",
"type" : "nested_page_setup_configuration"
},
"fitNesseVersion" : "20251025",
"installedClasses" : [
"fitnesse.fixtures.PageDriver",
"fitnesse.fixtures.ResponseExaminer"
],
"observedFlow" : [
"PageDriver creates pages and marks them as tests through FitNesse responders.",
"request_page calls ?test, ?suite, or ?executionLog and retains status and response content.",
"ResponseExaminer reads the retained status/body, exposes rendered HTML, and applies multiline/dotall matching and capture extraction.",
"Outer pages inspect nested pass/fail/ignore/exception markup and aggregate counts."
],
"recommendation" : [
"Resolve the plugin and custom comparator setup required by their nested test pages without changing upstream expectations.",
"Investigate the startup test-runner configuration that should produce the expected dead-runner message.",
"Implement the separately classified target fixtures for ignored-test flow, DetailedDiff, and exception rendering."
],
"status" : "response_examiner_implemented; three nested setup limitations remain",
"upstreamArchitecture" : "The Java fixtures use FitNesse in-process fixture context and helpers. The Perl equivalent must use HTTP and retain response body/source HTML in test-harness fixture state outside lib/Test/FitNesse/Slim.",
"verification" : {
"acceptanceRerun" : "Historical result at the ResponseExaminer increment: 50/50 pages completed through external Perl SLiM; 183 right, 62 wrong, 0 ignored, 218 exceptions; 20 conformant pages. The current post-query-fixture inventory is in pageTotals.",
"concurrencyRegression" : "t/server-concurrency.t PASS, 13 tests; pre-fix run failed when connection B did not receive a greeting while A remained open.",
"responseExaminerTests" : "t/response-examiner.t PASS, 29 assertions; nested PageDriver integration PASS, 3 assertions.",
"serverStability" : "0 unexpected Perl server exits during all 50 pages; FitNesse and Perl SLiM remained running.",
"unitTests" : "Historical result at the ResponseExaminer increment: bin/test-dev PASS, 23 files, 270 tests; four existing TODO failures remained. Current test results are in unitBaseline."
}
},
"hashResultIncrement" : {
"affectedPages" : [
"HashTableTests.ShouldReturnHashTable"
],
"behavior" : "Test::FitNesse::Slim::MapResult converts only plain hash-reference method results before SLiM list serialization. It emits stable sorted rows, escapes ordinary text, preserves valid HTML, maps undefined cells to null, recursively converts nested maps/lists, and requires explicit string conversion for object values so opaque references cannot leak as Perl addresses. It does not alter array/list results or symbol/object identity.",
"family" : "FitNesse-compatible hash/map result conversion",
"fullInventory" : {
"completedResponses" : 50,
"externalPerlConfirmed" : 50,
"failingPages" : 19,
"newlyConformantPages" : [
"HashTableTests.ShouldReturnHashTable"
],
"pages" : 50,
"passingPages" : 31,
"previouslyConformantPreserved" : 30,
"rawAssertionCounts" : {
"exceptions" : 177,
"ignored" : 2,
"right" : 281,
"wrong" : 29
},
"serverExits" : 0,
"statusComparison" : [
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 10,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 10,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "BaseLineDecisionTable.ComparatorsAreSupported",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "BaseLineDecisionTable.MakingTheBaselineTableTheDefaultDecisionTable",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 10,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 10,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "BaseLineDecisionTable.ScenariosAreSupported",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "BaseLineDecisionTable.TestFailuresAreMarked",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 17,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 17,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "BaseLineDecisionTable",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "ChainWithInstanceTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 1
},
"afterStatus" : "harness_limited",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 1
},
"beforeStatus" : "harness_limited",
"newlyConformant" : false,
"page" : "CustomTableRenderingAddedByPluginTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "DefineAliasInPluginTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 67,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 67,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "DefineAliasTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "HashTableTests.HashTableWithHtmlContent",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 0,
"wrong" : 1
},
"beforeStatus" : "engine_gap",
"newlyConformant" : true,
"page" : "HashTableTests.ShouldReturnHashTable",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 25,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 25,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "HybridDecisionTable.ImplementDynamicDecisionTableWithHybridTable",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 2
},
"afterStatus" : "harness_limited",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 2
},
"beforeStatus" : "harness_limited",
"newlyConformant" : false,
"page" : "IgnoredTestsShouldColorGray",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "LibrarySuite.HowToAddFixturesWithParametersToTheLibrary",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "LibrarySuite.LastLibraryPreceedsEarlierLibraryTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpAndPageTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "LibrarySuite.OneLibraryTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 2,
"right" : 4,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 2,
"right" : 4,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "QueryTableSuite.SetContextValue",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 27,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 27,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "QueryTableSuite.TestMatching",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "ScenarioTestSuite.ScenarioWithOutputParametersInDecisionTables",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "ScenarioTestSuite.ScenarioWithOutputParametersInScripts",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "ScenarioTestSuite.ScriptSubclassUsedForDecisionTable",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "ScenarioTestSuite.UsingConstructorArgumentsFromDecisionTablesInScenarios",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 12,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 12,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "SegregationOfRequirementsAndImplementation",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "SlimSymbols.NamingConvention",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 18,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 18,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "SlimSymbols.SlimSymbolManipulation",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "StopSuite",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "StopTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "StopTestInSuiteSetUp",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 9,
"ignored" : 0,
"right" : 0,
"wrong" : 1
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 9,
"ignored" : 0,
"right" : 0,
"wrong" : 1
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TableTableSuite.SymbolsInTableTableManagedByTheFixture",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 1,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 1,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestChineseWords",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 26,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 26,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestComparators",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 2
},
"afterStatus" : "harness_limited",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 2
},
"beforeStatus" : "harness_limited",
"newlyConformant" : false,
"page" : "TestCustomComparators",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 17,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 17,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestCustomConverter",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 21
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 21
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestDetailedDiff",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 19,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 19,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestExceptionIsDisplayed",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 14,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 14,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestOrderedQueryWithDuplicateRows",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestPageWithInclude",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestScriptTable",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestScriptTableDisplayParameterValue",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 23,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 23,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestSequentialArgumentProcessing",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 11,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 11,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestSubsetQuery",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 1
},
"afterStatus" : "harness_limited",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 1
},
"beforeStatus" : "harness_limited",
"newlyConformant" : false,
"page" : "TestSystemSlimSuite.ErrorSituationsDuringSlimServerStartup.B_TimeoutAsSlimServerDiesBeforeConnecting",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 1
},
"afterStatus" : "environment_limited",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 1
},
"beforeStatus" : "environment_limited",
"newlyConformant" : false,
"page" : "TestSystemSlimSuite.ErrorSituationsDuringSlimServerStartup.C_TimeoutAsNoServerAtGivenSocket",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 3,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 3,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.NotWorking_SettingSlimTimeout",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 22,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 22,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.PartiallyWorking_SettingSlimFlags",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestSystemSlimSuite.TimeoutInSlimTestSystem",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestTryingParameterizationIsntTooGreedy",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestTwoIdenticalTablesOnPageDontConflict",
"regression" : false
}
]
},
"newlyConformantPages" : [
"HashTableTests.ShouldReturnHashTable"
],
"perlTests" : {
"command" : "bin/test-dev",
"files" : 28,
"knownTodoFailures" : 4,
"status" : "PASS",
"tests" : 338
},
"regression" : {
"assertions" : 10,
"coverage" : [
"exact MapConverter table output and key ordering",
"valid HTML cell content",
"ordinary HTML escaping",
"null map values",
"nested array and hash values",
"explicit object stringification",
"stored object reference identity",
"Unicode map output survives SLiM list serialization"
],
"file" : "t/hash-results.t",
"preFix" : "Failed 7 assertions; the returned result was HASH(0x6401465af600)."
},
"rootCause" : "StatementExecutor::call returned a plain Perl hash reference unchanged. Test::FitNesse::Slim::List only recursively serializes arrays; for a hashref it retained a raw reference value and serialized it as HASH(0x...), rather than FitNesse map HTML.",
"upstreamReference" : "Installed FitNesse v20251025 HashFixture.hash() returns a sorted TreeMap copy. MethodExecutionResult converts Map values with MapConverter before SlimSerializer; MapConverter emits hash_table/hash_row/hash_key/hash_value HTML and applies FitNesse HTML escaping to ordinary values."
},
"historicalCrash" : {
"cause" : "A valid nested SLiM statement had an empty-string argument. _take_utf16_units consumed the following colon for a requested length of zero; nested list parsing failed and returned the encoded statement as a scalar. ListExecutor then dereferenced it as an arrayref. The fix avoids consuming any characters for zero units.",
"message" : "Can't use string (\"[000006:000048:scriptTable_42_0/...\") as an ARRAY ref while \"strict refs\" in use at lib/Test/FitNesse/Slim/ListExecutor.pm line 19."
},
"implementationPlan" : [
{
"expectedBenefit" : "Targets TestCustomConverter, the sole remaining fixture-gap page.",
"increment" : "TestSlimWithConverter fixture",
"priority" : 1,
"scope" : "Inspect upstream converter contract and implement without broadening core conversion behavior unless independently required."
}
],
"libraryIdentityEngineIncrement" : {
"affectedPageResults" : [
{
"after" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"before" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"page" : "LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpAndPageTest",
"status" : "conformant"
}
],
"behavior" : "Library entries now retain their instance references. Direct lookup by a library name uses the first matching registration; method fallback remains newest-first.",
"family" : "Retain object identity for repeated library instance names",
"fullInventory" : {
"knownServerExits" : 0,
"notYetRerun" : true,
"pages" : 50
},
"newlyConformantPages" : [
"LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpAndPageTest"
],
"perlTests" : {
"command" : "bin/test-dev",
"files" : 31,
"knownTodoFailures" : 4,
"status" : "PASS",
"tests" : 360
},
"regression" : {
"assertions" : 8,
"file" : "t/library-identity.t",
"preFix" : "The earlier LibraryInSetUp method disappeared after EchoSupport reused library1."
},
"rootCause" : "The Perl executor stored library IDs then looked up each candidate through a map overwritten by later make instructions that reused the same libraryN name. Upstream retains each Library object in an ordered list.",
"upstreamReference" : "SlimExecutionContext.addToInstancesOrLibrary/getInstance and LibraryMethodExecutor.execute in installed FitNesse v20251025"
},
"libraryInSetUpIncrement" : {
"affectedPageResults" : [
{
"after" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"before" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"page" : "LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpTest",
"status" : "conformant"
},
{
"after" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"before" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"page" : "LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpAndPageTest",
"rootCause" : "Resolved by library object retention; see libraryIdentityEngineIncrement.",
"status" : "conformant"
}
],
"behavior" : "echo records a call on the fixture instance; echoInSetUpLibraryCalled returns that instance-local state.",
"family" : "FitNesse LibraryInSetUp fixture",
"fullInventory" : {
"knownServerExits" : 0,
"notYetRerun" : true,
"pages" : 50
},
"newlyConformantPages" : [
"LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpTest",
"LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpAndPageTest"
],
"perlTests" : {
"command" : "bin/test-dev",
"files" : 30,
"knownTodoFailures" : 4,
"status" : "PASS",
"tests" : 352
},
"regression" : {
"assertions" : 6,
"file" : "t/library-in-setup.t",
"status" : "PASS"
},
"upstreamReference" : "/tmp/fitnesse-src/src/fitnesse/slim/test/library/LibraryInSetUp.java"
},
"loginDialogFixtureIncrement" : {
"affectedPageResults" : [
{
"after" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"before" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"page" : "TestTryingParameterizationIsntTooGreedy",
"status" : "conformant"
}
],
"behavior" : "Stores credentials, increments each login attempt, returns boolean text, and exposes the success or failure message.",
"family" : "FitNesse LoginDialogDriver",
"fullInventory" : {
"knownServerExits" : 0,
"notYetRerun" : true,
"pages" : 50
},
"newlyConformantPages" : [
"TestTryingParameterizationIsntTooGreedy"
],
"perlTests" : {
"command" : "bin/test-dev",
"files" : 36,
"knownTodoFailures" : 4,
"status" : "PASS",
"tests" : 392
},
"regression" : {
"assertions" : 8,
"file" : "t/logindialog-driver.t",
"preFix" : "Fitnesse::Slim::Test::LoginDialogDriver was missing."
},
"upstreamReference" : "/tmp/fitnesse-src/src/fitnesse/slim/test/LoginDialogDriver.java"
},
"pageRunMethod" : "Ran all 50 Test=true pages individually via ?test&format=xml. Raw counts were extracted from each primary result/counts node. All 50 execution logs confirmed fitnesse.slim.SlimService connected to 127.0.0.1:8099; zero unexpected Perl server exits.",
"pageTotals" : {
"blockedPages" : 5,
"completedResponses" : 50,
"confirmedConformantPages" : 45,
"confirmedEngineGapPages" : 0,
"counts" : {
"exceptions" : 0,
"ignored" : 2,
"right" : 373,
"wrong" : 7
},
"environmentLimitedPages" : 1,
"externalPerlConfirmed" : 50,
"failingPages" : 5,
"fixtureGapPages" : 0,
"harnessLimitedPages" : 4,
"pages" : 50,
"passingPages" : 45,
"serverExits" : 0
},
"pages" : [
{
"attempt" : 1,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completed without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 10,
"wrong" : 0
},
"reason" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "BaseLineDecisionTable.ComparatorsAreSupported",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 10,
"wrong" : 0
},
"responseBytes" : 46597,
"right" : 10,
"rootCause" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.BaseLineDecisionTable.ComparatorsAreSupported?test&format=xml",
"wrong" : 0
},
{
"attempt" : 2,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completed without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"reason" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "BaseLineDecisionTable.MakingTheBaselineTableTheDefaultDecisionTable",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"responseBytes" : 46070,
"right" : 7,
"rootCause" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.BaseLineDecisionTable.MakingTheBaselineTableTheDefaultDecisionTable?test&format=xml",
"wrong" : 0
},
{
"attempt" : 3,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completed without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 10,
"wrong" : 0
},
"reason" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "BaseLineDecisionTable.ScenariosAreSupported",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 10,
"wrong" : 0
},
"responseBytes" : 60891,
"right" : 10,
"rootCause" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.BaseLineDecisionTable.ScenariosAreSupported?test&format=xml",
"wrong" : 0
},
{
"attempt" : 4,
"conformance" : {
"dependencies" : [
"PageDriver.make_a_test_page",
"ResponseExaminer.contents",
"ResponseExaminer.pageHtml",
"ResponseExaminer.extractMatch"
],
"expectedBehavior" : "The nested page has 8 right, 2 wrong, 2 ignored, and 0 exceptions; the outer page verifies totals and representative cell classes.",
"intentionalInnerNegativeOrExceptionCoverage" : true,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"reason" : "ResponseExaminer extracts nested assertion totals and rendered cells; every outer assertion passes. The embedded target page intentionally contains two wrong and two ignored checks.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "BaseLineDecisionTable.TestFailuresAreMarked",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"responseBytes" : 148452,
"right" : 8,
"rootCause" : "ResponseExaminer extracts nested assertion totals and rendered cells; every outer assertion passes. The embedded target page intentionally contains two wrong and two ignored checks.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.BaseLineDecisionTable.TestFailuresAreMarked?test&format=xml",
"wrong" : 0
},
{
"attempt" : 5,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completed without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 17,
"wrong" : 0
},
"reason" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "BaseLineDecisionTable",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 17,
"wrong" : 0
},
"responseBytes" : 72528,
"right" : 17,
"rootCause" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.BaseLineDecisionTable?test&format=xml",
"wrong" : 0
},
{
"attempt" : 6,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completes without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"reason" : "The page passes with automatic getFixture, pushFixture, and popFixture support.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "ChainWithInstanceTest",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"responseBytes" : 45796,
"right" : 7,
"rootCause" : "The page now passes with automatic SlimHelperLibrary actor-stack support.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.ChainWithInstanceTest?test&format=xml",
"wrong" : 0
},
{
"attempt" : 8,
"conformance" : {
"dependencies" : [
"PageDriver nested-page execution",
"PageDriver response HTML"
],
"expectedBehavior" : "See the page content and its listed fixture dependencies; raw nonzero counts alone do not establish an engine defect.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 1
},
"reason" : "Perl reports 5 right and 1 wrong; Java on the pinned JAR reports 6 right and 0 wrong. Perl's nested response expects table class=\"myUseCase\" but reports Could not find class MyUseCase because its HTTP PageDriver request does not use the active FitNesse context with the alias and rendering plugin. Java logs plugin registration and includes the expected table class. This is a configured-context harness limitation, not a Perl SLiM protocol or fixture defect.",
"status" : "harness_limited",
"verification" : "Two direct HTTP XML page runs reproduced the same failed assertion and counts; full bin/test-fitnesse inventory confirmed the 45/50 baseline and external Perl connection."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [
"Could not find class MyUseCase",
"The instance scriptTableActor does not exist",
"Could not find class MyFixture"
],
"wrongAssertionMessages" : [
"Expected nested response to contain table class=\"myUseCase\"; actual response did not contain it."
]
},
"http" : 200,
"ignored" : 0,
"page" : "CustomTableRenderingAddedByPluginTest",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 1
},
"responseBytes" : 73774,
"right" : 5,
"rootCause" : "Perl reports 5 right and 1 wrong; Java on the pinned JAR reports 6 right and 0 wrong. Perl's nested response expects table class=\"myUseCase\" but reports Could not find class MyUseCase because its HTTP PageDriver request does not use the active FitNesse context with the alias and rendering plugin. Java logs plugin registration and includes the expected table class. This is a configured-context harness limitation, not a Perl SLiM protocol or fixture defect.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.CustomTableRenderingAddedByPluginTest?test&format=xml",
"wrong" : 1
},
{
"attempt" : 8,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completed without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"reason" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [
"Could not find class MyRequirement",
"The instance scriptTableActor does not exist"
],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "DefineAliasInPluginTest",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"responseBytes" : 50627,
"right" : 2,
"rootCause" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.DefineAliasInPluginTest?test&format=xml",
"wrong" : 0
},
{
"attempt" : 9,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "See the page content and its listed fixture dependencies; raw nonzero counts alone do not establish an engine defect.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 22,
"wrong" : 0
},
"reason" : "Upstream AddUpChange coin accumulation resolves all alias examples; the prior missing-class cascade is gone.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [
"Could not find class AddUpChange",
"Could not find class Fitnesse::Slim::Test::AddUpChange",
"NO_INSTANCE scriptTableActor (actor creation cascades from the missing AddUpChange fixture)"
],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [
"Could not find class AddUpChange",
"Could not find class Fitnesse::Slim::Test::AddUpChange",
"NO_INSTANCE scriptTableActor (actor creation cascades from the missing AddUpChange fixture)"
],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "DefineAliasTest",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 22,
"wrong" : 0
},
"responseBytes" : 81819,
"right" : 22,
"rootCause" : "Upstream AddUpChange coin accumulation resolves all alias examples; the prior missing-class cascade is gone.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.DefineAliasTest?test&format=xml",
"wrong" : 0
},
{
"attempt" : 10,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "See the page content and its listed fixture dependencies; raw nonzero counts alone do not establish an engine defect.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"reason" : "HashFixture.hash_is and EchoFixture.echo_and_log reproduce the upstream stored-value return and output behavior; nested HTML content passes unchanged.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [
"Method hash_is[1] not found in Fitnesse::Fixtures::HashFixture",
"Method echo_and_log[1] not found in Fitnesse::Fixtures::EchoFixture"
],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "HashTableTests.HashTableWithHtmlContent",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"responseBytes" : 32661,
"right" : 1,
"rootCause" : "HashFixture.hash_is and EchoFixture.echo_and_log reproduce the upstream stored-value return and output behavior; nested HTML content passes unchanged.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.HashTableTests.HashTableWithHtmlContent?test&format=xml",
"wrong" : 0
},
{
"attempt" : 11,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The map returned by HashFixture.hash is converted to FitNesse hash-table HTML with ordered keys.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"reason" : "The fixture returns its Map as a deterministic FitNesse hash_table representation via MapResult; the unchanged page now passes.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "HashTableTests.ShouldReturnHashTable",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"responseBytes" : 31950,
"right" : 1,
"rootCause" : "The fixture returns its Map as a deterministic FitNesse hash_table representation via MapResult; the unchanged page now passes.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.HashTableTests.ShouldReturnHashTable?test&format=xml",
"wrong" : 0
},
{
"attempt" : 12,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "See the page content and its listed fixture dependencies; raw nonzero counts alone do not establish an engine defect.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"reason" : "Upstream AddUpChange state and getter/setter behavior satisfy the hybrid decision table.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [
"Could not find class AddUpChange",
"The instance decisionTable_42 does not exist"
],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "HybridDecisionTable.ImplementDynamicDecisionTableWithHybridTable",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"responseBytes" : 41120,
"right" : 5,
"rootCause" : "Upstream AddUpChange state and getter/setter behavior satisfy the hybrid decision table.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.HybridDecisionTable.ImplementDynamicDecisionTableWithHybridTable?test&format=xml",
"wrong" : 0
},
{
"attempt" : 14,
"conformance" : {
"dependencies" : [
"active FitNesse nested-page scenario context"
],
"expectedBehavior" : "The nested test reports one stop-test exception and marks later script statements as not run. The outer checks expect ignored scenario-cell markup produced when the active FitNesse context is retained.",
"intentionalInnerNegativeOrExceptionCoverage" : true,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 2
},
"reason" : "Perl reports 5 right, 2 wrong, 0 ignored, 0 exceptions; a matched Java v20251025 run reports 7 right, 0 wrong. The two wrong outer checks expect class=\"ignore\">Not Executed and should be ignored< and class=\"ignore\">Not Executed and should be ignored as well<. Java's nested response contains the expected scenario cells; Perl's HTTP-based nested request lacks the active FitNesse scenario context and shows ordinary unexecuted script rows with the not-run span. This is a PageDriver context-fidelity limitation, not an obsolete renderer expectation or Perl ignore-marker defect.",
"status" : "harness_limited",
"verification" : "A direct Perl XML run and a separate Java SlimService run used matching page content and FitNesse v20251025. Perl reports 5/2 while Java reports 7/0; Java's nested HTML contains the expected scenario-cell markup."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : [
"Expected HTML: class=\"ignore\">Not Executed and should be ignored<; actual: <tr class=\"slimRowColor3\"><td>Not Executed and should be ignored <span class=\"ignore\">Test not run</span></td></tr>.",
"Expected HTML: class=\"ignore\">Not Executed and should be ignored as well<; actual: <tr class=\"slimRowColor5\"><td>Not Executed and should be ignored as well <span class=\"ignore\">Test not run</span></td></tr>."
]
},
"http" : 200,
"ignored" : 0,
"page" : "IgnoredTestsShouldColorGray",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 2
},
"responseBytes" : 111809,
"right" : 5,
"rootCause" : "Perl reports 5 right, 2 wrong, 0 ignored, 0 exceptions; a matched Java v20251025 run reports 7 right, 0 wrong. The two wrong outer checks expect class=\"ignore\">Not Executed and should be ignored< and class=\"ignore\">Not Executed and should be ignored as well<. Java's nested response contains the expected scenario cells; Perl's HTTP-based nested request lacks the active FitNesse scenario context and shows ordinary unexecuted script rows with the not-run span. This is a PageDriver context-fidelity limitation, not an obsolete renderer expectation or Perl ignore-marker defect.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.IgnoredTestsShouldColorGray?test&format=xml",
"wrong" : 2
},
{
"attempt" : 14,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completes without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"reason" : "The page passes with automatic getFixture, pushFixture, and popFixture support.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "LibrarySuite.HowToAddFixturesWithParametersToTheLibrary",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"responseBytes" : 45121,
"right" : 5,
"rootCause" : "The page now passes with automatic SlimHelperLibrary actor-stack support.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.LibrarySuite.HowToAddFixturesWithParametersToTheLibrary?test&format=xml",
"wrong" : 0
},
{
"attempt" : 15,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completed without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"reason" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "LibrarySuite.LastLibraryPreceedsEarlierLibraryTest",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"responseBytes" : 40467,
"right" : 2,
"rootCause" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.LibrarySuite.LastLibraryPreceedsEarlierLibraryTest?test&format=xml",
"wrong" : 0
},
{
"attempt" : 16,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "See the page content and its listed fixture dependencies; raw nonzero counts alone do not establish an engine defect.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"reason" : "The registry retains both objects when setup and page libraries reuse library1; fallback dispatch finds the page library first and the setup library when its method is absent.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [
"Could not find class LibraryInSetUp",
"The instance scriptTableActor does not exist"
],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpAndPageTest",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"responseBytes" : 39528,
"right" : 2,
"rootCause" : "The registry retains both objects when setup and page libraries reuse library1; fallback dispatch finds the page library first and the setup library when its method is absent.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpAndPageTest?test&format=xml",
"wrong" : 0
},
{
"attempt" : 17,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "See the page content and its listed fixture dependencies; raw nonzero counts alone do not establish an engine defect.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"reason" : "LibraryInSetUp tracks delegated echo calls on its own instance.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [
"Could not find class LibraryInSetUp",
"Method echo_in_set_up_library_called[0] not found in Fitnesse::Slim::Test::Library::LibraryFixture"
],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpTest",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"responseBytes" : 39111,
"right" : 1,
"rootCause" : "LibraryInSetUp tracks delegated echo calls on its own instance.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpTest?test&format=xml",
"wrong" : 0
},
{
"attempt" : 18,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completed without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"reason" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "LibrarySuite.OneLibraryTest",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"responseBytes" : 38024,
"right" : 1,
"rootCause" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.LibrarySuite.OneLibraryTest?test&format=xml",
"wrong" : 0
},
{
"attempt" : 19,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "Query data matches the unchanged upstream acceptance expectations, including row ordering, duplicate multiplicity, subset matching, and constructor-derived symbol values.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 2,
"right" : 4,
"wrong" : 0
},
"reason" : "All page assertions pass. SetContextValue also reports two ignored symbol-assignment cells, which are expected query-table behavior.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 2,
"page" : "QueryTableSuite.SetContextValue",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 2,
"right" : 4,
"wrong" : 0
},
"responseBytes" : 34268,
"right" : 4,
"rootCause" : "The upstream query fixture now returns its expected column/value rows; both query matching and duplicate-row checks pass through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.QueryTableSuite.SetContextValue?test&format=xml",
"wrong" : 0
},
{
"attempt" : 20,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "Query data matches the unchanged upstream acceptance expectations, including row ordering, duplicate multiplicity, subset matching, and constructor-derived symbol values.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 27,
"wrong" : 0
},
"reason" : "All page assertions pass. SetContextValue also reports two ignored symbol-assignment cells, which are expected query-table behavior.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "QueryTableSuite.TestMatching",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 27,
"wrong" : 0
},
"responseBytes" : 40711,
"right" : 27,
"rootCause" : "The upstream query fixture now returns its expected column/value rows; both query matching and duplicate-row checks pass through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.QueryTableSuite.TestMatching?test&format=xml",
"wrong" : 0
},
{
"attempt" : 21,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completed without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"reason" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "ScenarioTestSuite.ScenarioWithOutputParametersInDecisionTables",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"responseBytes" : 65591,
"right" : 6,
"rootCause" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.ScenarioTestSuite.ScenarioWithOutputParametersInDecisionTables?test&format=xml",
"wrong" : 0
},
{
"attempt" : 22,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completed without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"reason" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "ScenarioTestSuite.ScenarioWithOutputParametersInScripts",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"responseBytes" : 44766,
"right" : 4,
"rootCause" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.ScenarioTestSuite.ScenarioWithOutputParametersInScripts?test&format=xml",
"wrong" : 0
},
{
"attempt" : 23,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completed without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"reason" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "ScenarioTestSuite.ScriptSubclassUsedForDecisionTable",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"responseBytes" : 37821,
"right" : 2,
"rootCause" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.ScenarioTestSuite.ScriptSubclassUsedForDecisionTable?test&format=xml",
"wrong" : 0
},
{
"attempt" : 24,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completed without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"reason" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "ScenarioTestSuite.UsingConstructorArgumentsFromDecisionTablesInScenarios",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"responseBytes" : 50306,
"right" : 8,
"rootCause" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.ScenarioTestSuite.UsingConstructorArgumentsFromDecisionTablesInScenarios?test&format=xml",
"wrong" : 0
},
{
"attempt" : 25,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completed without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 12,
"wrong" : 0
},
"reason" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "SegregationOfRequirementsAndImplementation",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 12,
"wrong" : 0
},
"responseBytes" : 65187,
"right" : 12,
"rootCause" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.SegregationOfRequirementsAndImplementation?test&format=xml",
"wrong" : 0
},
{
"attempt" : 26,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completed without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"reason" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "SlimSymbols.NamingConvention",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"responseBytes" : 43010,
"right" : 5,
"rootCause" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.SlimSymbols.NamingConvention?test&format=xml",
"wrong" : 0
},
{
"attempt" : 27,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completed without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 18,
"wrong" : 0
},
"reason" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "SlimSymbols.SlimSymbolManipulation",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 18,
"wrong" : 0
},
"responseBytes" : 62085,
"right" : 18,
"rootCause" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.SlimSymbols.SlimSymbolManipulation?test&format=xml",
"wrong" : 0
},
{
"attempt" : 28,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "StopSuite skips remaining suite tests while running the required per-test and suite teardown.",
"intentionalInnerNegativeOrExceptionCoverage" : true,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"reason" : "The page passes when generated MySuite pages are isolated. A prior MySuite.SuiteSetUp left by StopTestInSuiteSetUp contaminated later HTTP page runs; this is acceptance-harness state, not a SLiM stop defect.",
"status" : "conformant",
"verification" : "Repeated in both page orders and twice consecutively after clearing generated MySuite data; 6 right, 0 wrong, 0 ignored, 0 exceptions."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "StopSuite",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"responseBytes" : 72695,
"right" : 6,
"rootCause" : "PageDriver-created wiki state persisted between page requests. StopTestInSuiteSetUp leaves MySuite.SuiteSetUp; clearing the generated subtree before this page restores the expected per-test teardown rows.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.StopSuite?test&format=xml",
"wrong" : 0
},
{
"attempt" : 29,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "StopTest skips the remainder of the current test, allows the next test, and runs per-test and suite teardown.",
"intentionalInnerNegativeOrExceptionCoverage" : true,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"reason" : "The page passes when generated MySuite pages are isolated. A prior MySuite.SuiteSetUp left by StopTestInSuiteSetUp contaminated later HTTP page runs; this is acceptance-harness state, not a SLiM stop defect.",
"status" : "conformant",
"verification" : "Repeated in both page orders and twice consecutively after clearing generated MySuite data; 6 right, 0 wrong, 0 ignored, 0 exceptions."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "StopTest",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"responseBytes" : 72854,
"right" : 6,
"rootCause" : "PageDriver-created wiki state persisted between page requests. StopTestInSuiteSetUp leaves MySuite.SuiteSetUp; clearing the generated subtree before this page restores the expected per-test teardown rows.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.StopTest?test&format=xml",
"wrong" : 0
},
{
"attempt" : 30,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "StopTest raised in SuiteSetUp prevents suite test pages from running while suite teardown still executes.",
"intentionalInnerNegativeOrExceptionCoverage" : true,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"reason" : "The stop exception is returned with ABORT_SLIM_TEST; FitNesse skips suite tests and still executes suite teardown.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "StopTestInSuiteSetUp",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"responseBytes" : 77787,
"right" : 7,
"rootCause" : "The stop exception is returned with ABORT_SLIM_TEST; FitNesse skips suite tests and still executes suite teardown.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.StopTestInSuiteSetUp?test&format=xml",
"wrong" : 0
},
{
"attempt" : 31,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "See the page content and its listed fixture dependencies; raw nonzero counts alone do not establish an engine defect.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 15,
"wrong" : 0
},
"reason" : "TableTableIncFirstCol increments values, assigns symbols inside the table through StatementExecutorConsumer, and restores normal symbol substitution afterward.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [
"The instance scriptTableActor does not exist",
"Could not find class TableTableIncFirstCol"
],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "TableTableSuite.SymbolsInTableTableManagedByTheFixture",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 15,
"wrong" : 0
},
"responseBytes" : 42034,
"right" : 15,
"rootCause" : "TableTableIncFirstCol increments values, assigns symbols inside the table through StatementExecutorConsumer, and restores normal symbol substitution afterward.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TableTableSuite.SymbolsInTableTableManagedByTheFixture?test&format=xml",
"wrong" : 0
},
{
"attempt" : 32,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "See the page content and its listed fixture dependencies; raw nonzero counts alone do not establish an engine defect.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"reason" : "EchoScript echoes the original Unicode value and writes UTF-8 bytes plus newline to stdout.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [
"Method echo_to_stdout[1] not found in Fitnesse::Slim::Test::EchoScript"
],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "TestChineseWords",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"responseBytes" : 30625,
"right" : 1,
"rootCause" : "EchoScript echoes the original Unicode value and writes UTF-8 bytes plus newline to stdout.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestChineseWords?test&format=xml",
"wrong" : 0
},
{
"attempt" : 33,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completed without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 26,
"wrong" : 0
},
"reason" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "TestComparators",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 26,
"wrong" : 0
},
"responseBytes" : 65213,
"right" : 26,
"rootCause" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestComparators?test&format=xml",
"wrong" : 0
},
{
"attempt" : 34,
"conformance" : {
"dependencies" : [
"PageDriver nested-page execution",
"glob comparator setup"
],
"expectedBehavior" : "See the page content and its listed fixture dependencies; raw nonzero counts alone do not establish an engine defect.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 2
},
"reason" : "Perl reports 1 right and 2 wrong; Java on the pinned JAR reports 3 right and 0 wrong. Both Perl failures are outer checks for the nested response text and its 2/0 count: the nested page renders actual test with expected [glob:t*t]. The Java execution log confirms the glob comparator was loaded. The HTTP-based Perl PageDriver request does not run in the active FitNesse context established by SetUp; fixture and SLiM values are correct.",
"status" : "harness_limited",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : [
"test results for page",
"TestPage",
"should contain",
"t*t matches test",
"test in scenario"
]
},
"http" : 200,
"ignored" : 0,
"page" : "TestCustomComparators",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 2
},
"responseBytes" : 53264,
"right" : 1,
"rootCause" : "Perl reports 1 right and 2 wrong; Java on the pinned JAR reports 3 right and 0 wrong. Both Perl failures are outer checks for the nested response text and its 2/0 count: the nested page renders actual test with expected [glob:t*t]. The Java execution log confirms the glob comparator was loaded. The HTTP-based Perl PageDriver request does not run in the active FitNesse context established by SetUp; fixture and SLiM values are correct.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestCustomComparators?test&format=xml",
"wrong" : 2
},
{
"attempt" : 35,
"conformance" : {
"dependencies" : [
"TestSlimWithConverter",
"ConverterRegistry",
"MethodExecutionResult declared return type",
"ConverterSupport argument conversion",
"GenericCollectionConverter"
],
"expectedBehavior" : "Register a List converter that changes ArrayList/Object return values to brace syntax while exact List return values remain nested SLiM lists; parse brace syntax back into List parameters for sameList.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 13,
"wrong" : 0
},
"reason" : "Per-executor converter registration and explicit fixture method signatures reproduce upstream declared-type and runtime-class conversion, including custom List fromString and toString behavior.",
"status" : "conformant",
"verification" : "Final full 50-page rerun through external Perl SLiM; 13 right, 0 wrong, 0 ignored, 0 exceptions."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "TestCustomConverter",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 13,
"wrong" : 0
},
"responseBytes" : 41183,
"right" : 13,
"rootCause" : "Per-executor converter registration and explicit fixture method signatures reproduce upstream declared-type and runtime-class conversion, including custom List fromString and toString behavior.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestCustomConverter?test&format=xml",
"wrong" : 0
},
{
"attempt" : 36,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The outer page verifies detailed diff markup for equal, unequal, symbol, and scenario results from the embedded page.",
"intentionalInnerNegativeOrExceptionCoverage" : true,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 22,
"wrong" : 0
},
"reason" : "DetailedDiff supplies expected values; ResponseExaminer confirms the nested page intentional 25-pass, 50-fail, 1-ignored result and rendered diff markup.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : [
"then",
"25",
"assertions pass,",
"50",
"fail,",
"1",
"are ignored",
"0",
"exceptions thrown"
]
},
"http" : 200,
"ignored" : 0,
"page" : "TestDetailedDiff",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 22,
"wrong" : 0
},
"responseBytes" : 424627,
"right" : 22,
"rootCause" : "DetailedDiff supplies expected values; ResponseExaminer confirms the nested page intentional 25-pass, 50-fail, 1-ignored result and rendered diff markup.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestDetailedDiff?test&format=xml",
"wrong" : 0
},
{
"attempt" : 37,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The outer page verifies nested method, constructor, table-hook, and stop-test exceptions and their rendered output.",
"intentionalInnerNegativeOrExceptionCoverage" : true,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 19,
"wrong" : 0
},
"reason" : "The Perl exception fixtures and TestSlim methods now reproduce the expected upstream exception messages, classes, and stop behavior; all 19 outer checks pass.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "TestExceptionIsDisplayed",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 19,
"wrong" : 0
},
"responseBytes" : 215239,
"right" : 19,
"rootCause" : "The Perl exception fixtures and TestSlim methods now reproduce the expected upstream exception messages, classes, and stop behavior; all 19 outer checks pass.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestExceptionIsDisplayed?test&format=xml",
"wrong" : 0
},
{
"attempt" : 38,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "Query data matches the unchanged upstream acceptance expectations, including row ordering, duplicate multiplicity, subset matching, and constructor-derived symbol values.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 14,
"wrong" : 0
},
"reason" : "All page assertions pass. SetContextValue also reports two ignored symbol-assignment cells, which are expected query-table behavior.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "TestOrderedQueryWithDuplicateRows",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 14,
"wrong" : 0
},
"responseBytes" : 32980,
"right" : 14,
"rootCause" : "The upstream query fixture now returns its expected column/value rows; both query matching and duplicate-row checks pass through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestOrderedQueryWithDuplicateRows?test&format=xml",
"wrong" : 0
},
{
"attempt" : 39,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "See the page content and its listed fixture dependencies; raw nonzero counts alone do not establish an engine defect.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"reason" : "EchoFixture stores and returns the name set by the included page.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [
"Method set_name[1] not found in Fitnesse::Fixtures::EchoFixture",
"Method name[0] not found in Fitnesse::Fixtures::EchoFixture"
],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "TestPageWithInclude",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"responseBytes" : 31003,
"right" : 1,
"rootCause" : "EchoFixture stores and returns the name set by the included page.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestPageWithInclude?test&format=xml",
"wrong" : 0
},
{
"attempt" : 40,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completed without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"reason" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "TestScriptTable",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"responseBytes" : 31302,
"right" : 2,
"rootCause" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestScriptTable?test&format=xml",
"wrong" : 0
},
{
"attempt" : 41,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completed without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 0
},
"reason" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "TestScriptTableDisplayParameterValue",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 0
},
"responseBytes" : 34944,
"right" : 3,
"rootCause" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestScriptTableDisplayParameterValue?test&format=xml",
"wrong" : 0
},
{
"attempt" : 42,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "See the page content and its listed fixture dependencies; raw nonzero counts alone do not establish an engine defect.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"reason" : "TestSlim concatenates its three supplied values with spaces; the upstream page verifies sequential and mixed argument processing.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [
"Method concatenate_three_args[3] not found in Fitnesse::Slim::Test::TestSlim"
],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "TestSequentialArgumentProcessing",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"responseBytes" : 56716,
"right" : 8,
"rootCause" : "TestSlim concatenates its three supplied values with spaces; the upstream page verifies sequential and mixed argument processing.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestSequentialArgumentProcessing?test&format=xml",
"wrong" : 0
},
{
"attempt" : 43,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "Query data matches the unchanged upstream acceptance expectations, including row ordering, duplicate multiplicity, subset matching, and constructor-derived symbol values.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 11,
"wrong" : 0
},
"reason" : "All page assertions pass. SetContextValue also reports two ignored symbol-assignment cells, which are expected query-table behavior.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "TestSubsetQuery",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 11,
"wrong" : 0
},
"responseBytes" : 33848,
"right" : 11,
"rootCause" : "The upstream query fixture now returns its expected column/value rows; both query matching and duplicate-row checks pass through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestSubsetQuery?test&format=xml",
"wrong" : 0
},
{
"attempt" : 44,
"conformance" : {
"dependencies" : [
"PageDriver nested-page execution"
],
"expectedBehavior" : "See the page content and its listed fixture dependencies; raw nonzero counts alone do not establish an engine defect.",
"intentionalInnerNegativeOrExceptionCoverage" : true,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 1
},
"reason" : "PageDriver retrieves a 200 response, but the body does not contain the expected dead-test-runner message; the child test runner setup behavior remains unverified.",
"status" : "harness_limited",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "TestSystemSlimSuite.ErrorSituationsDuringSlimServerStartup.B_TimeoutAsSlimServerDiesBeforeConnecting",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 1
},
"responseBytes" : 52014,
"right" : 2,
"rootCause" : "PageDriver retrieves a 200 response, but the body does not contain the expected dead-test-runner message; the child test runner setup behavior remains unverified.",
"status" : "completed",
"testSystem" : "SLIM:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestSystemSlimSuite.ErrorSituationsDuringSlimServerStartup.B_TimeoutAsSlimServerDiesBeforeConnecting?test&format=xml",
"wrong" : 1
},
{
"attempt" : 45,
"conformance" : {
"dependencies" : [
"outer Perl port isolation",
"TestSlim.content_matches",
"PageDriver nested-page execution"
],
"expectedBehavior" : "Nested debug request fails quickly only when its target port is unbound and reports elapsed time.",
"intentionalInnerNegativeOrExceptionCoverage" : true,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 1
},
"reason" : "The test expects port 8099 unbound, but the inventory server occupies it; content_matches and PageDriver support are also missing.",
"status" : "environment_limited",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "TestSystemSlimSuite.ErrorSituationsDuringSlimServerStartup.C_TimeoutAsNoServerAtGivenSocket",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 1
},
"responseBytes" : 52901,
"right" : 3,
"rootCause" : "The test expects port 8099 unbound, but the inventory server occupies it; content_matches and PageDriver support are also missing.",
"status" : "completed",
"testSystem" : "SLIM:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestSystemSlimSuite.ErrorSituationsDuringSlimServerStartup.C_TimeoutAsNoServerAtGivenSocket?test&format=xml",
"wrong" : 1
},
{
"attempt" : 46,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The documentation says slim.timeout alone does not interrupt the long command.",
"intentionalInnerNegativeOrExceptionCoverage" : true,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"reason" : "Sleep returned WakeUp 12000 as shown by the page documenting that slim.timeout alone does not stop the command.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [
"Could not find class Fitnesse::Slim::Test::Sleep",
"The instance decisionTable_42 does not exist"
],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.NotWorking_SettingSlimTimeout",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"responseBytes" : 27980,
"right" : 1,
"rootCause" : "Sleep returned WakeUp 12000 as shown by the page documenting that slim.timeout alone does not stop the command.",
"status" : "completed",
"testSystem" : "SLIM:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.NotWorking_SettingSlimTimeout?test&format=xml",
"wrong" : 0
},
{
"attempt" : 47,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "Short commands pass; an overlong command times out; the page documents teardown and later-command caveats.",
"intentionalInnerNegativeOrExceptionCoverage" : true,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 9,
"wrong" : 0
},
"reason" : "Sleep responses match all expected table values. Runner startup flags are not independently assessed by this directly connected external-service test.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [
"Could not find class Fitnesse::Slim::Test::Sleep",
"The instance decisionTable_42 does not exist",
"The instance decisionTable_43 does not exist",
"The instance decisionTable_44 does not exist",
"The instance decisionTable_45 does not exist"
],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.PartiallyWorking_SettingSlimFlags",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 9,
"wrong" : 0
},
"responseBytes" : 40159,
"right" : 9,
"rootCause" : "Sleep responses match all expected table values. Runner startup flags are not independently assessed by this directly connected external-service test.",
"status" : "completed",
"testSystem" : "SLIM:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.PartiallyWorking_SettingSlimFlags?test&format=xml",
"wrong" : 0
},
{
"attempt" : 48,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completed without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : true,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"reason" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [
"The instruction timed out after 1 seconds"
],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "TestSystemSlimSuite.TimeoutInSlimTestSystem",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"responseBytes" : 73872,
"right" : 4,
"rootCause" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestSystemSlimSuite.TimeoutInSlimTestSystem?test&format=xml",
"wrong" : 0
},
{
"attempt" : 49,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "See the page content and its listed fixture dependencies; raw nonzero counts alone do not establish an engine defect.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"reason" : "LoginDialogDriver accepts the shared username/password scenario and records the upstream message and attempt count.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [
"Could not find class LoginDialogDriver",
"The instance scriptTableActor does not exist"
],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "TestTryingParameterizationIsntTooGreedy",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"responseBytes" : 33784,
"right" : 1,
"rootCause" : "LoginDialogDriver accepts the shared username/password scenario and records the upstream message and attempt count.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestTryingParameterizationIsntTooGreedy?test&format=xml",
"wrong" : 0
},
{
"attempt" : 50,
"conformance" : {
"dependencies" : [],
"expectedBehavior" : "The page completed without wrong assertions or exceptions.",
"intentionalInnerNegativeOrExceptionCoverage" : false,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"reason" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "conformant",
"verification" : "Full 50-page XML inventory rerun after Map result conversion; response came through the external Perl SLiM service."
},
"connection" : "Connection to running SlimService: 127.0.0.1:8099",
"evidence" : "Full 50-page page-level run with generated MySuite data cleared before each request; FitNesse execution log confirmed the external Perl SlimService.",
"exceptionDetails" : [],
"exceptions" : 0,
"executionException" : null,
"externalPerlConfirmed" : true,
"failureDetails" : {
"exceptionMessages" : [],
"wrongAssertionMessages" : []
},
"http" : 200,
"ignored" : 0,
"page" : "TestTwoIdenticalTablesOnPageDontConflict",
"rawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"responseBytes" : 31297,
"right" : 1,
"rootCause" : "The acceptance page completed with no wrong assertions or exceptions through the external Perl SLiM server.",
"status" : "completed",
"testSystem" : "slim:fitnesse.slim.SlimService",
"testSystemConfirmed" : "fitnesse.slim.SlimService",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestTwoIdenticalTablesOnPageDontConflict?test&format=xml",
"wrong" : 0
}
],
"postFixVerification" : {
"completedResponses" : 50,
"conformanceStatuses" : {
"conformant" : 20,
"engine_gap" : 2,
"environment_limited" : 1,
"fixture_gap" : 24,
"harness_limited" : 3
},
"externalPerlConfirmed" : 50,
"finalRepeat" : {
"assertionCountsUnchangedFromRecordedRun" : true,
"completedResponses" : 50,
"externalPerlConfirmed" : 50,
"pages" : 50,
"requestOrParseErrors" : 0,
"serverExits" : 0,
"totals" : {
"exceptions" : 218,
"ignored" : 0,
"right" : 183,
"wrong" : 62
}
},
"increment" : "ResponseExaminer over PageDriver response context",
"nestedExecutionEvidence" : {
"passedAssertions" : 3,
"result" : "PageDriver created and marked a nested page; FitNesse executed it through a second Perl SLiM connection; the existing outer connection successfully executed another statement afterward.",
"test" : "RUN_PAGE_DRIVER_INTEGRATION=1 perl t/page-driver-integration.t"
},
"newlyConformantPages" : [
"BaseLineDecisionTable.TestFailuresAreMarked"
],
"pagesExercised" : 50,
"serverExits" : 0,
"supplementalPageRuns" : [
{
"exceptions" : 0,
"externalPerlConfirmed" : true,
"http" : 200,
"ignored" : 0,
"note" : "This page is not one of the 50 Test=true inventory pages; it was run separately because it uses makeASuitePage.",
"page" : "ScenarioLibraryTestSuite.ScenarioLibraryShouldIncludeVariables",
"right" : 6,
"status" : "completed",
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.ScenarioLibraryTestSuite.ScenarioLibraryShouldIncludeVariables?test&format=xml",
"wrong" : 0
}
],
"totals" : {
"exceptions" : 218,
"ignored" : 0,
"right" : 183,
"wrong" : 62
}
},
"preConcurrencyUnitBaseline" : {
"command" : "bin/test-dev",
"files" : 19,
"result" : "PASS",
"tests" : 203,
"todoDescription" : "Three boilerplate TODOs and one Unicode-return TODO; all marked TODO and suite exits PASS.",
"todoFailures" : 4
},
"previousBaseline" : {
"counts" : {
"exceptions" : 28,
"ignored" : 0,
"right" : 8,
"wrong" : 14
},
"countsMeaning" : "Per-page outcome markers summed across the inventory, not raw page assertion totals; see remainingPageClassification.previousCountCaveat.",
"failingPages" : 42,
"pages" : 50,
"passingPages" : 8,
"serverExits" : 0
},
"remainingPageClassification" : {
"blockedOrUnassessablePages" : 6,
"classificationCounts" : {
"conformant" : 44,
"engine_gap" : 1,
"environment_limited" : 1,
"fixture_gap" : 0,
"harness_limited" : 4
},
"currentInventoryRun" : "Full 50-page rerun after the bounded fixture increments; every response used the external Perl listener.",
"environmentLimitedPages" : [
"TestSystemSlimSuite.ErrorSituationsDuringSlimServerStartup.C_TimeoutAsNoServerAtGivenSocket"
],
"harnessLimitedPages" : [
"CustomTableRenderingAddedByPluginTest",
"IgnoredTestsShouldColorGray",
"TestCustomComparators",
"TestSystemSlimSuite.ErrorSituationsDuringSlimServerStartup.B_TimeoutAsSlimServerDiesBeforeConnecting"
],
"unresolvedEngineGap" : "TestSlimWithConverter is missing, and the expected behavior also depends on a converter registry, declared method return types, runtime-class converter selection, and converter-based argument parsing. The Perl executor has no such converter framework."
},
"responseExaminerIncrement" : {
"affectedPages" : [
{
"conformance" : "conformant",
"exceptions" : 0,
"ignored" : 0,
"page" : "BaseLineDecisionTable.TestFailuresAreMarked",
"right" : 8,
"wrong" : 0
},
{
"conformance" : "harness_limited",
"exceptions" : 0,
"ignored" : 0,
"page" : "CustomTableRenderingAddedByPluginTest",
"right" : 5,
"wrong" : 1
},
{
"conformance" : "fixture_gap",
"exceptions" : 0,
"ignored" : 0,
"page" : "IgnoredTestsShouldColorGray",
"right" : 3,
"wrong" : 4
},
{
"conformance" : "harness_limited",
"exceptions" : 0,
"ignored" : 0,
"page" : "TestCustomComparators",
"right" : 1,
"wrong" : 2
},
{
"conformance" : "fixture_gap",
"exceptions" : 0,
"ignored" : 0,
"page" : "TestDetailedDiff",
"right" : 1,
"wrong" : 21
},
{
"conformance" : "fixture_gap",
"exceptions" : 0,
"ignored" : 0,
"page" : "TestExceptionIsDisplayed",
"right" : 4,
"wrong" : 15
},
{
"conformance" : "harness_limited",
"exceptions" : 0,
"ignored" : 0,
"page" : "TestSystemSlimSuite.ErrorSituationsDuringSlimServerStartup.B_TimeoutAsSlimServerDiesBeforeConnecting",
"right" : 2,
"wrong" : 1
}
],
"family" : "Response inspection over PageDriver response context",
"focusedTests" : {
"assertions" : 29,
"file" : "t/response-examiner.t",
"status" : "PASS"
},
"fullInventory" : {
"completedResponses" : 50,
"conformantPages" : 20,
"externalPerlConfirmed" : 50,
"nonConformantPages" : 30,
"pages" : 50,
"rawAssertionCounts" : {
"exceptions" : 218,
"ignored" : 0,
"right" : 183,
"wrong" : 62
},
"serverExits" : 0
},
"integrationTest" : {
"assertions" : 3,
"command" : "RUN_PAGE_DRIVER_INTEGRATION=1 perl t/page-driver-integration.t",
"status" : "PASS"
},
"perlBehavior" : "Reads status, content, and rendered response HTML from Fitnesse::Fixtures::ResponseContext. Implements contents, html, fullContents, rawContents, pageContents, pageHtml, status, headers, multiline/dotall matching, matchCount, found, extractMatch, line access, and upstream fixture errors for unsupported types. No separate HTTP client or duplicate response state is introduced.",
"serverStability" : "FitNesse and the external Perl SLiM server remained running after the complete 50-page run.",
"unitTests" : {
"command" : "bin/test-dev",
"files" : 23,
"knownTodoFailures" : 4,
"status" : "PASS",
"tests" : 270
},
"upstreamReference" : "Installed FitNesse v20251025 fitnesse.fixtures.ResponseExaminer; acceptance shared scenarios call setType, setPattern, setGroup, found, and extractMatch(pattern,type,group)."
},
"scenarioActorInvestigation" : {
"affectedPages" : {
"ScenarioTestSuite.ScenarioWithOutputParametersInDecisionTables" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"SegregationOfRequirementsAndImplementation" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
}
},
"diagnosticArrayText" : "Statement.pm debug warn interpolates nested arrayref arguments as ARRAY(0x...). This is diagnostic output only; the parsed nested list is serialized recursively for the socket frame.",
"expectedSemantics" : "If the named actor has no matching instance/method, registered libraries are searched newest-first. cloneSymbol returns its argument object unchanged, preserving symbol identity.",
"perlChanges" : [
"Missing scenario actor names now fall through to registered-library lookup before NO_INSTANCE.",
"The null-target cloneSymbol helper substitutes and returns its exact argument object."
],
"rootCause" : "Executor defect, not a fixture or incorrect scenario binding. FitNesse library method lookup is newest-first after actor/SUT lookup; SlimHelperLibrary provides cloneSymbol and the actor stack helpers, and scenario steps use synthetic scriptTableActor calls."
},
"server" : "external Perl SLiM: perl -Ilib -It/lib bin/perl-slim 8099",
"serverExits" : 0,
"sleepFixtureIncrement" : {
"affectedPageResults" : [
{
"after" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"before" : {
"exceptions" : 3,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"page" : "TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.NotWorking_SettingSlimTimeout",
"status" : "conformant"
},
{
"after" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 9,
"wrong" : 0
},
"before" : {
"exceptions" : 22,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"page" : "TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.PartiallyWorking_SettingSlimFlags",
"status" : "conformant"
}
],
"behavior" : "Stores timer values in milliseconds, sleeps for the constructor or timer value, returns WakeUp plus the duration, and raises IllegalArgumentException for a negative duration.",
"family" : "FitNesse Sleep timeout fixture",
"fullInventory" : {
"knownServerExits" : 0,
"notYetRerun" : true,
"pages" : 50
},
"newlyConformantPages" : [
"TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.NotWorking_SettingSlimTimeout",
"TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.PartiallyWorking_SettingSlimFlags"
],
"perlTests" : {
"command" : "bin/test-dev",
"files" : 33,
"knownTodoFailures" : 4,
"status" : "PASS",
"tests" : 373
},
"regression" : {
"assertions" : 6,
"file" : "t/sleep-fixture.t",
"preFix" : "Fixture loading failed with NO_CLASS Sleep; subsequent calls reported NO_INSTANCE."
},
"timeoutCaveat" : "The pages ran against the already connected external server. Their returned table values verify fixture behavior, not FitNesse runner startup flags.",
"upstreamReference" : "/tmp/fitnesse-src/src/fitnesse/slim/test/Sleep.java"
},
"slimHelperLibraryIncrement" : {
"affectedPages" : [
"ChainWithInstanceTest",
"DefineAliasTest",
"LibrarySuite.HowToAddFixturesWithParametersToTheLibrary"
],
"behavior" : "Each StatementExecutor constructs a private helper library and registers it as the oldest library, so explicit libraries remain newer and actor methods keep precedence. get_fixture returns the current scriptTableActor reference or reports NO_INSTANCE when missing. push_fixture pushes that reference; pop_fixture restores the exact object reference and raises EmptyStackException on an empty stack. The stack is owned by one executor/session. TestSlim uses its upstream string representation only for stringification, while overloaded equality and is_same retain reference-identity semantics.",
"family" : "Automatic SlimHelperLibrary actor-stack support",
"focusedTests" : {
"assertions" : 19,
"coverage" : [
"executor construction",
"graceful method dispatch",
"actor-method precedence",
"actor replacement and state",
"nested LIFO push/pop",
"reference identity restoration",
"per-executor stack isolation",
"empty-stack exception",
"upstream TestSlim string result"
],
"file" : "t/slim-helper-library.t"
},
"fullInventory" : {
"completedResponses" : 50,
"externalPerlConfirmed" : 50,
"failingPages" : 24,
"newlyConformantPages" : [
"ChainWithInstanceTest",
"LibrarySuite.HowToAddFixturesWithParametersToTheLibrary"
],
"pages" : 50,
"passingPages" : 26,
"previouslyConformantPreserved" : 24,
"rawAssertionCounts" : {
"exceptions" : 177,
"ignored" : 2,
"right" : 251,
"wrong" : 59
},
"serverExits" : 0,
"statusComparison" : [
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 10,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 10,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "BaseLineDecisionTable.ComparatorsAreSupported",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "BaseLineDecisionTable.MakingTheBaselineTableTheDefaultDecisionTable",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 10,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 10,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "BaseLineDecisionTable.ScenariosAreSupported",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "BaseLineDecisionTable.TestFailuresAreMarked",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 17,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 17,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "BaseLineDecisionTable",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 6,
"ignored" : 0,
"right" : 4,
"wrong" : 1
},
"beforeStatus" : "engine_gap",
"newlyConformant" : true,
"page" : "ChainWithInstanceTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 1
},
"afterStatus" : "harness_limited",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 1
},
"beforeStatus" : "harness_limited",
"newlyConformant" : false,
"page" : "CustomTableRenderingAddedByPluginTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "DefineAliasInPluginTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 67,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 73,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "DefineAliasTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "HashTableTests.HashTableWithHtmlContent",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 0,
"wrong" : 1
},
"afterStatus" : "engine_gap",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 0,
"wrong" : 1
},
"beforeStatus" : "engine_gap",
"newlyConformant" : false,
"page" : "HashTableTests.ShouldReturnHashTable",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 25,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 25,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "HybridDecisionTable.ImplementDynamicDecisionTableWithHybridTable",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 4
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 4
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "IgnoredTestsShouldColorGray",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 3,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : true,
"page" : "LibrarySuite.HowToAddFixturesWithParametersToTheLibrary",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "LibrarySuite.LastLibraryPreceedsEarlierLibraryTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpAndPageTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "LibrarySuite.OneLibraryTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 2,
"right" : 4,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 2,
"right" : 4,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "QueryTableSuite.SetContextValue",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 27,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 27,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "QueryTableSuite.TestMatching",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "ScenarioTestSuite.ScenarioWithOutputParametersInDecisionTables",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "ScenarioTestSuite.ScenarioWithOutputParametersInScripts",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "ScenarioTestSuite.ScriptSubclassUsedForDecisionTable",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "ScenarioTestSuite.UsingConstructorArgumentsFromDecisionTablesInScenarios",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 12,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 12,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "SegregationOfRequirementsAndImplementation",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "SlimSymbols.NamingConvention",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 18,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 18,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "SlimSymbols.SlimSymbolManipulation",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 4
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 4
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "StopSuite",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 3
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 3
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "StopTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 5
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 5
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "StopTestInSuiteSetUp",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 9,
"ignored" : 0,
"right" : 0,
"wrong" : 1
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 9,
"ignored" : 0,
"right" : 0,
"wrong" : 1
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TableTableSuite.SymbolsInTableTableManagedByTheFixture",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 1,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 1,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestChineseWords",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 26,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 26,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestComparators",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 2
},
"afterStatus" : "harness_limited",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 2
},
"beforeStatus" : "harness_limited",
"newlyConformant" : false,
"page" : "TestCustomComparators",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 17,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 17,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestCustomConverter",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 21
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 21
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestDetailedDiff",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 15
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 15
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestExceptionIsDisplayed",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 14,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 14,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestOrderedQueryWithDuplicateRows",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestPageWithInclude",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestScriptTable",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestScriptTableDisplayParameterValue",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 23,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 23,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestSequentialArgumentProcessing",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 11,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 11,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestSubsetQuery",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 1
},
"afterStatus" : "harness_limited",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 1
},
"beforeStatus" : "harness_limited",
"newlyConformant" : false,
"page" : "TestSystemSlimSuite.ErrorSituationsDuringSlimServerStartup.B_TimeoutAsSlimServerDiesBeforeConnecting",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 1
},
"afterStatus" : "environment_limited",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 1
},
"beforeStatus" : "environment_limited",
"newlyConformant" : false,
"page" : "TestSystemSlimSuite.ErrorSituationsDuringSlimServerStartup.C_TimeoutAsNoServerAtGivenSocket",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 3,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 3,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.NotWorking_SettingSlimTimeout",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 22,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 22,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.PartiallyWorking_SettingSlimFlags",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestSystemSlimSuite.TimeoutInSlimTestSystem",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestTryingParameterizationIsntTooGreedy",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestTwoIdenticalTablesOnPageDontConflict",
"regression" : false
}
]
},
"newlyConformantPages" : [
"ChainWithInstanceTest",
"LibrarySuite.HowToAddFixturesWithParametersToTheLibrary"
],
"perlTests" : {
"command" : "bin/test-dev",
"files" : 26,
"knownTodoFailures" : 4,
"status" : "PASS",
"tests" : 307
},
"remainingAffectedFailure" : "DefineAliasTest remains fixture-blocked by AddUpChange; exceptions fell from 73 to 67, including the expected missing-actor errors after failed fixture creation.",
"serverStability" : "All 50 responses identified the external SlimService connection at 127.0.0.1:8099 and reported exit code 0; the Perl listener remained alive after the inventory.",
"upstreamReference" : "Installed FitNesse v20251025 fitnesse.slim.SlimHelperLibrary. The upstream helper calls StatementExecutor.getInstance(\"scriptTableActor\"), pushes that object, and restores it on pop; the executor reports NO_INSTANCE when the actor does not exist. Source mirror: https://www.javatips.net/api/fitnesse-master/src/fitnesse/slim/SlimHelperLibrary.java."
},
"stopExceptionIncrement" : {
"affectedPages" : [
"StopSuite",
"StopTest",
"StopTestInSuiteSetUp",
"IgnoredTestsShouldColorGray",
"TestExceptionIsDisplayed"
],
"behavior" : "ConstructorThrows reproduces normal, stop-test, and stop-suite constructor exceptions. DecisionTableExecuteThrows reproduces the upstream SlimError methods and table hooks. StatementExecutor formats Java-style exception payloads and emits ABORT_SLIM_TEST or ABORT_SLIM_SUITE for stop exceptions. ListExecutor halts the remaining instructions in the current batch and clears stop state before the next batch. FitNesse remains responsible for page/suite continuation and teardown.",
"family" : "Upstream stop and exception fixtures and SLiM semantics",
"focusedTests" : {
"assertions" : 17,
"coverage" : [
"ordinary method exceptions continue the batch",
"stop-test and stop-suite protocol markers",
"same-batch statement suppression",
"next-batch reset",
"constructor exception formatting and missing actor",
"decision-table SlimError methods"
],
"file" : "t/stop-exceptions.t"
},
"fullInventory" : {
"completedResponses" : 50,
"externalPerlConfirmed" : 50,
"failingPages" : 20,
"newlyConformantPages" : [
"StopSuite",
"StopTest",
"StopTestInSuiteSetUp",
"TestExceptionIsDisplayed"
],
"pages" : 50,
"passingPages" : 30,
"previouslyConformantPreserved" : 26,
"rawAssertionCounts" : {
"exceptions" : 177,
"ignored" : 2,
"right" : 280,
"wrong" : 30
},
"serverExits" : 0,
"statusComparison" : [
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 10,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 10,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "BaseLineDecisionTable.ComparatorsAreSupported",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "BaseLineDecisionTable.MakingTheBaselineTableTheDefaultDecisionTable",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 10,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 10,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "BaseLineDecisionTable.ScenariosAreSupported",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "BaseLineDecisionTable.TestFailuresAreMarked",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 17,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 17,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "BaseLineDecisionTable",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "ChainWithInstanceTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 1
},
"afterStatus" : "harness_limited",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 1
},
"beforeStatus" : "harness_limited",
"newlyConformant" : false,
"page" : "CustomTableRenderingAddedByPluginTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "DefineAliasInPluginTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 67,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 67,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "DefineAliasTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "HashTableTests.HashTableWithHtmlContent",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 0,
"wrong" : 1
},
"afterStatus" : "engine_gap",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 0,
"wrong" : 1
},
"beforeStatus" : "engine_gap",
"newlyConformant" : false,
"page" : "HashTableTests.ShouldReturnHashTable",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 25,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 25,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "HybridDecisionTable.ImplementDynamicDecisionTableWithHybridTable",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 2
},
"afterStatus" : "harness_limited",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 4
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "IgnoredTestsShouldColorGray",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "LibrarySuite.HowToAddFixturesWithParametersToTheLibrary",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "LibrarySuite.LastLibraryPreceedsEarlierLibraryTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpAndPageTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "LibrarySuite.LibraryInSetUpSuite.LibraryInSetUpTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "LibrarySuite.OneLibraryTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 2,
"right" : 4,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 2,
"right" : 4,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "QueryTableSuite.SetContextValue",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 27,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 27,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "QueryTableSuite.TestMatching",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "ScenarioTestSuite.ScenarioWithOutputParametersInDecisionTables",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "ScenarioTestSuite.ScenarioWithOutputParametersInScripts",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "ScenarioTestSuite.ScriptSubclassUsedForDecisionTable",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "ScenarioTestSuite.UsingConstructorArgumentsFromDecisionTablesInScenarios",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 12,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 12,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "SegregationOfRequirementsAndImplementation",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "SlimSymbols.NamingConvention",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 18,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 18,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "SlimSymbols.SlimSymbolManipulation",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 4
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : true,
"page" : "StopSuite",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 3
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : true,
"page" : "StopTest",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 5
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : true,
"page" : "StopTestInSuiteSetUp",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 9,
"ignored" : 0,
"right" : 0,
"wrong" : 1
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 9,
"ignored" : 0,
"right" : 0,
"wrong" : 1
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TableTableSuite.SymbolsInTableTableManagedByTheFixture",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 1,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 1,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestChineseWords",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 26,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 26,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestComparators",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 2
},
"afterStatus" : "harness_limited",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 2
},
"beforeStatus" : "harness_limited",
"newlyConformant" : false,
"page" : "TestCustomComparators",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 17,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 17,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestCustomConverter",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 21
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 21
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestDetailedDiff",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 19,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 15
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : true,
"page" : "TestExceptionIsDisplayed",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 14,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 14,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestOrderedQueryWithDuplicateRows",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestPageWithInclude",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestScriptTable",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestScriptTableDisplayParameterValue",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 23,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 23,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestSequentialArgumentProcessing",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 11,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 11,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestSubsetQuery",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 1
},
"afterStatus" : "harness_limited",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 2,
"wrong" : 1
},
"beforeStatus" : "harness_limited",
"newlyConformant" : false,
"page" : "TestSystemSlimSuite.ErrorSituationsDuringSlimServerStartup.B_TimeoutAsSlimServerDiesBeforeConnecting",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 1
},
"afterStatus" : "environment_limited",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 3,
"wrong" : 1
},
"beforeStatus" : "environment_limited",
"newlyConformant" : false,
"page" : "TestSystemSlimSuite.ErrorSituationsDuringSlimServerStartup.C_TimeoutAsNoServerAtGivenSocket",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 3,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 3,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.NotWorking_SettingSlimTimeout",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 22,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 22,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.PartiallyWorking_SettingSlimFlags",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestSystemSlimSuite.TimeoutInSlimTestSystem",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"afterStatus" : "fixture_gap",
"beforeRawCounts" : {
"exceptions" : 2,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"beforeStatus" : "fixture_gap",
"newlyConformant" : false,
"page" : "TestTryingParameterizationIsntTooGreedy",
"regression" : false
},
{
"afterRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"afterStatus" : "conformant",
"beforeRawCounts" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 1,
"wrong" : 0
},
"beforeStatus" : "conformant",
"newlyConformant" : false,
"page" : "TestTwoIdenticalTablesOnPageDontConflict",
"regression" : false
}
]
},
"newlyConformantPages" : [
"StopSuite",
"StopTest",
"StopTestInSuiteSetUp",
"TestExceptionIsDisplayed"
],
"perlTests" : {
"command" : "bin/test-dev",
"files" : 27,
"knownTodoFailures" : 4,
"status" : "PASS",
"tests" : 328
},
"rendererLimitedPage" : "IgnoredTestsShouldColorGray",
"upstreamReference" : "Installed FitNesse v20251025 source: fitnesse.slim.test.ConstructorThrows, fitnesse.slim.test.DecisionTableExecuteThrows, fitnesse.slim.SlimException, SlimServer, ListExecutor, and StatementExecutor."
},
"stopPageOrderInvestigation" : {
"cleanCounts" : {
"StopSuite" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"StopTest" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 6,
"wrong" : 0
},
"StopTestInSuiteSetUp" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 7,
"wrong" : 0
}
},
"contaminatedCounts" : {
"StopSuite" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 5,
"wrong" : 1
},
"StopTest" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 4,
"wrong" : 2
}
},
"exactContaminatedAssertions" : {
"StopSuite" : [
"ensure | content contains | <span class=\"pass\">tear down after <a href=\"MySuite.TestPageA\">TestPageA</a></span>"
],
"StopTest" : [
"ensure | content contains | <span class=\"pass\">tear down after <a href=\"MySuite.TestPageA\">TestPageA</a></span>",
"ensure | content contains | <span class=\"pass\">tear down after <a href=\"MySuite.TestPageB\">TestPageB</a></span>"
]
},
"fullInventory" : {
"conformant" : 45,
"externalPerlConfirmed" : 50,
"pages" : 50,
"rawCounts" : {
"exceptions" : 0,
"ignored" : 2,
"right" : 373,
"wrong" : 7
},
"serverExits" : 0
},
"harnessIsolation" : "Before each page request, POST confirmed=yes to /MySuite?deletePage. Use the deletePage responder in the URL; a POST without the responder query is not the correct cleanup request.",
"previousCommitComparison" : "A temporary source snapshot of dc7561e reproduced the same failure only when the generated SuiteSetUp persisted. No stop implementation changed between that snapshot and the current commit; the older full inventory passed because it ran the stop pages before the setup page.",
"regressionTest" : {
"assertions" : 45,
"command" : "RUN_STOP_PAGE_INTEGRATION=1 prove -v t/stop-page-order.t",
"file" : "t/stop-page-order.t",
"status" : "PASS"
},
"repeatedRunEvidence" : "The opt-in t/stop-page-order.t run first reproduced the contaminated results, then repeated StopTest twice and StopSuite twice after resetting MySuite; all isolated StopTest and StopSuite runs were 6/0. It also ran StopSuite then StopTest in reverse order; both were 6/0.",
"rootCause" : "FitNesse stores PageDriver-created pages between individual HTTP test requests. StopTestInSuiteSetUp creates MySuite.SuiteSetUp and does not remove it. If it runs first, that stale setup throws StopTest for later MySuite-based pages, causing per-test TearDown rows to be ignored. The earlier full inventory ran StopSuite and StopTest before StopTestInSuiteSetUp, so its 6/0 counts were order-dependent, not false XML parsing or an SLiM engine pass.",
"unitTests" : {
"command" : "bin/test-dev",
"files" : 41,
"knownTodoFailures" : 4,
"status" : "PASS",
"tests" : 426
},
"upstreamBehavior" : "FitNesse SlimTestSystem consumes ABORT_SLIM_TEST and ABORT_SLIM_SUITE, applies stop state to subsequent tables, and runs applicable TearDown and SuiteTearDown tables. With no stale SuiteSetUp, the existing Perl exception markers produce the expected page behavior."
},
"suiteResponderAttempt" : {
"httpStatus" : 200,
"note" : "Historical pre-fix suite responder call returned only five BaseLineDecisionTable subtree results and did not enumerate the 50 Test=true pages. The 50-page baseline is the individually requested page inventory.",
"returnedCounts" : {
"exceptions" : 175,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"returnedPageResults" : 5,
"url" : "http://127.0.0.1:8080/FitNesse.SuiteAcceptanceTests.SuiteSlimTests?suite&format=xml"
},
"tableTableFixtureIncrement" : {
"affectedPageResults" : [
{
"after" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 15,
"wrong" : 0
},
"before" : {
"exceptions" : 9,
"ignored" : 0,
"right" : 0,
"wrong" : 1
},
"page" : "TableTableSuite.SymbolsInTableTableManagedByTheFixture",
"status" : "conformant"
}
],
"behavior" : "Reads symbols from table cells, increments the first value, assigns each result to the symbol in column two, returns ordered result rows, then restores automatic symbol replacement.",
"engineRegression" : {
"assertions" : 4,
"engineCommit" : "4d2bb540fb56d8489244b1d1686a1426ec8869fe",
"file" : "t/fixture-symbol-consumer.t"
},
"family" : "FitNesse fixture-managed TableTableIncFirstCol",
"fullInventory" : {
"knownServerExits" : 0,
"notYetRerun" : true,
"pages" : 50
},
"newlyConformantPages" : [
"TableTableSuite.SymbolsInTableTableManagedByTheFixture"
],
"perlTests" : {
"command" : "bin/test-dev",
"files" : 39,
"knownTodoFailures" : 4,
"status" : "PASS",
"tests" : 407
},
"regression" : {
"assertions" : 5,
"file" : "t/table-table-fixture.t",
"preFix" : "The fixture class was absent; the table instruction then reported NO_INSTANCE and the symbol values remained unchanged."
},
"upstreamReference" : "/tmp/fitnesse-src/src/fitnesse/slim/test/statementexecutorconsumer/TableTableIncFirstCol.java and SymbolManagingTableTable.java",
"verifiedDependencyNote" : "The page uses the already implemented TestSlim.echoInt method and does not require a TestQuery fixture."
},
"testSlimConcatenateIncrement" : {
"affectedPageResults" : [
{
"after" : {
"exceptions" : 0,
"ignored" : 0,
"right" : 8,
"wrong" : 0
},
"before" : {
"exceptions" : 23,
"ignored" : 0,
"right" : 0,
"wrong" : 0
},
"page" : "TestSequentialArgumentProcessing",
"status" : "conformant"
}
],
"behavior" : "Returns the three received arguments joined by single spaces. FitNesse remains responsible for sequential argument expansion.",
"family" : "TestSlim sequential argument target method",
"fullInventory" : {
"knownServerExits" : 0,
"notYetRerun" : true,
"pages" : 50
},
"newlyConformantPages" : [
"TestSequentialArgumentProcessing"
],
"perlTests" : {
"command" : "bin/test-dev",
"files" : 35,
"knownTodoFailures" : 4,
"status" : "PASS",
"tests" : 384
},
"regression" : {
"assertions" : 3,
"file" : "t/testslim-concatenate.t",
"preFix" : "TestSlim did not expose concatenate_three_args."
},
"upstreamReference" : "/tmp/fitnesse-src/src/fitnesse/slim/test/TestSlim.java#concatenateThreeArgs"
},
"transportExpectations" : {
"pipe" : {
"assertionTotals" : { "right" : 373, "wrong" : 6, "ignored" : 2, "exceptions" : 1 },
"pages" : {
"TestSystemSlimSuite.ErrorSituationsDuringSlimServerStartup.C_TimeoutAsNoServerAtGivenSocket" : {
"rawCounts" : { "right" : 4, "wrong" : 0, "ignored" : 0, "exceptions" : 0 },
"status" : "conformant",
"reason" : "Pipe mode intentionally has no external SLiM listener on the page's target socket, so its no-server condition is established. The TCP gate separately retains the external-listener environment result."
},
"TestSystemSlimSuite.HowtoEnforceA_TimelimitPerTestCommand.PartiallyWorking_SettingSlimFlags" : {
"rawCounts" : { "right" : 8, "wrong" : 0, "ignored" : 0, "exceptions" : 1 },
"status" : "nonconformant",
"reason" : "FitNesse forwards -v -s 1 to the Perl child. The one-second statement timeout is observed once and execution continues; the separate TCP listener does not receive child flags."
}
}
}
},
"unitBaseline" : {
"command" : "bin/test-dev",
"files" : 39,
"knownTodoFailures" : 4,
"status" : "PASS",
"tests" : 407
}
}