You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by mb...@apache.org on 2022/03/10 14:16:47 UTC
[daffodil] branch main updated: Revert "Update alignment to improve correctness and prevent deadlocks"
This is an automated email from the ASF dual-hosted git repository.
mbeckerle pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/daffodil.git
The following commit(s) were added to refs/heads/main by this push:
new 55f638d Revert "Update alignment to improve correctness and prevent deadlocks"
55f638d is described below
commit 55f638de74edfa400ce6cba1de19162069c9298a
Author: Michael Beckerle <mb...@apache.org>
AuthorDate: Wed Mar 9 13:19:26 2022 -0500
Revert "Update alignment to improve correctness and prevent deadlocks"
This reverts commit 9043425760dae277eff36087a2e715c70793db9c.
This was an attempt to fix DAFFODIL-2626 but it caused too many
regressions (unparser deadlocks in various schemas)
The ticket DAFFODIL-2626 will be reopened.
The tickets for NITF and P8 deadlocks (the regressions) are fixed by this.
DAFFODIL-2662, DAFFODIL-2666
---
.../apache/daffodil/debugger/TestCLIDebugger.scala | 7 ---
.../org/apache/daffodil/dsom/SchemaComponent.scala | 11 -----
.../org/apache/daffodil/grammar/AlignedMixin.scala | 35 +++----------
.../grammar/primitives/ElementCombinator.scala | 19 ++------
.../daffodil/io/DataOutputStreamImplMixin.scala | 2 +-
.../io/DirectOrBufferedDataOutputStream.scala | 6 ---
.../apache/daffodil/io/TestDataOutputStream4.scala | 4 +-
.../daffodil/example/TestCustomDebuggerAPI.java | 2 +-
.../org/apache/daffodil/util/MaybeULong.scala | 2 -
.../processors/unparsers/SpecifiedLength2.scala | 29 ++++++-----
.../daffodil/example/TestCustomDebuggerAPI.scala | 2 +-
.../section12/aligned_data/Aligned_Data.tdml | 57 ----------------------
.../section12/lengthKind/EndOfParentTests.tdml | 4 ++
.../computedLengthFields.tdml | 4 +-
.../section12/aligned_data/TestAlignedData.scala | 2 -
.../TestComputedLengthFields.scala | 4 +-
16 files changed, 36 insertions(+), 154 deletions(-)
diff --git a/daffodil-cli/src/it/scala/org/apache/daffodil/debugger/TestCLIDebugger.scala b/daffodil-cli/src/it/scala/org/apache/daffodil/debugger/TestCLIDebugger.scala
index 13d25b9..5a208f6 100644
--- a/daffodil-cli/src/it/scala/org/apache/daffodil/debugger/TestCLIDebugger.scala
+++ b/daffodil-cli/src/it/scala/org/apache/daffodil/debugger/TestCLIDebugger.scala
@@ -169,7 +169,6 @@ class TestCLIdebugger {
shell.sendLine("info displays")
shell.expect(contains("1*: eval (.)"))
shell.sendLine("step")
- shell.sendLine("step")
shell.sendLine("enable display 1")
shell.sendLine("step")
@@ -1269,8 +1268,6 @@ class TestCLIdebugger {
shell.sendLine("step")
shell.expect(contains("(no differences)"))
shell.sendLine("step")
- shell.expect(contains("(no differences)"))
- shell.sendLine("step")
shell.expect(contains("variable: tns:v_with_default: 42 (default) -> 42 (read)"))
shell.sendLine("step")
shell.expect(contains("variable: tns:v_no_default: (undefined) -> 42 (set)"))
@@ -1303,7 +1300,6 @@ class TestCLIdebugger {
shell.sendLine("step")
shell.sendLine("step")
shell.sendLine("step")
- shell.sendLine("step")
shell.expect(contains("bitPosition: 0 -> 8"))
shell.expect(contains("foundDelimiter: (no value) -> ,"))
shell.expect(contains("foundField: (no value) -> 0"))
@@ -1353,8 +1349,6 @@ class TestCLIdebugger {
shell.sendLine("step")
shell.sendLine("step")
shell.sendLine("step")
- shell.sendLine("step")
- shell.sendLine("step")
shell.expect(contains("hidden: true -> false"))
shell.sendLine("quit")
Util.expectExitCode(ExitCode.Failure, shell)
@@ -1379,7 +1373,6 @@ class TestCLIdebugger {
shell.sendLine("set diffExcludes childIndex")
shell.expect(contains("(debug)"))
shell.sendLine("step")
- shell.sendLine("step")
shell.expect(contains("bitPosition: 0 -> 8"))
shell.sendLine("step")
shell.sendLine("step")
diff --git a/daffodil-core/src/main/scala/org/apache/daffodil/dsom/SchemaComponent.scala b/daffodil-core/src/main/scala/org/apache/daffodil/dsom/SchemaComponent.scala
index 1fbff46..a142eb7 100644
--- a/daffodil-core/src/main/scala/org/apache/daffodil/dsom/SchemaComponent.scala
+++ b/daffodil-core/src/main/scala/org/apache/daffodil/dsom/SchemaComponent.scala
@@ -142,17 +142,6 @@ trait SchemaComponent
}
/**
- * The lexically enclosing term, if one exists
- */
- final lazy val optEnclosingLexicalTerm: Option[Term] = {
- optLexicalParent match {
- case Some(t: Term) => Some(t)
- case Some(sc: SchemaComponent) => sc.optEnclosingLexicalTerm
- case _ => None
- }
- }
-
- /**
* path is used in diagnostic messages and code debug
* messages; hence, it is very important that it be
* very dependable.
diff --git a/daffodil-core/src/main/scala/org/apache/daffodil/grammar/AlignedMixin.scala b/daffodil-core/src/main/scala/org/apache/daffodil/grammar/AlignedMixin.scala
index d79fb18..1d2e490 100644
--- a/daffodil-core/src/main/scala/org/apache/daffodil/grammar/AlignedMixin.scala
+++ b/daffodil-core/src/main/scala/org/apache/daffodil/grammar/AlignedMixin.scala
@@ -202,15 +202,9 @@ trait AlignedMixin extends GrammarMixin { self: Term =>
val parentAlignmentApprox =
if (priorSibs.isEmpty || isEverInUnorderedSequence) {
// we only care about the parent alignment if we are the first child
- // in a model group, if we are in an unordered sequence and we could
- // be first when parsing, or if we are a model group of a complex
- // type. Note that in the last case, the model group has no siblings
- // and so will fall into this block. This alignment algorithm only
- // looks at the lexical scope, so if this parent is a global decl
- // (which isn't a term), there might not actually be an enclosing
- // term, and we won't have any information about the approximate
- // alignment of the parent
- optEnclosingLexicalTerm.map { p =>
+ // in a model group, or if we are in an unordered sequence and we
+ // could be first when parsing
+ immediatelyEnclosingModelGroup.map { p =>
val csa = p.contentStartAlignment
csa
}.toSeq
@@ -220,14 +214,7 @@ trait AlignedMixin extends GrammarMixin { self: Term =>
val priorAlignmentsApprox = priorSibsAlignmentsApprox ++ parentAlignmentApprox ++ arraySelfAlignment ++ unorderedSequenceSelfAlignment
if (priorAlignmentsApprox.isEmpty)
- // we have no information about our prior alignment. The most likely
- // reason for this is that we are asking about the prior alignment of a
- // model group in a global declaration. In this case, the prior
- // alignment comes from where the global element decl is referenced.
- // But we don't know where the global element decl is referenced from
- // or what its alignment is. In cases like this we must assume no
- // aligment information.
- AlignmentMultipleOf(1)
+ alignmentApprox // it will be the containing context's responsibility to insure this IS where we start.
else
priorAlignmentsApprox.reduce(_ * _)
}
@@ -325,18 +312,8 @@ trait AlignedMixin extends GrammarMixin { self: Term =>
}
case LengthKind.Delimited => encodingLengthApprox
case LengthKind.Pattern => encodingLengthApprox
- case LengthKind.EndOfParent => notYetImplemented("lengthKind='endOfParent'")
- case LengthKind.Prefixed => {
- // Prefix length elements are calculated at runtime, so we cannot
- // know the exact length. However the element and the prefix length
- // type must have the same length units, so the length of the two
- // combined fields must be a multiple of those units.
- eb.lengthUnits match {
- case LengthUnits.Bits => LengthMultipleOf(1)
- case LengthUnits.Bytes => LengthMultipleOf(8)
- case LengthUnits.Characters => encodingLengthApprox
- }
- }
+ case LengthKind.EndOfParent => LengthMultipleOf(1) // NYI
+ case LengthKind.Prefixed => LengthMultipleOf(1) // NYI
}
}
case mg: ModelGroup => Assert.usageError("Only for elements")
diff --git a/daffodil-core/src/main/scala/org/apache/daffodil/grammar/primitives/ElementCombinator.scala b/daffodil-core/src/main/scala/org/apache/daffodil/grammar/primitives/ElementCombinator.scala
index 319901b..c13256f 100644
--- a/daffodil-core/src/main/scala/org/apache/daffodil/grammar/primitives/ElementCombinator.scala
+++ b/daffodil-core/src/main/scala/org/apache/daffodil/grammar/primitives/ElementCombinator.scala
@@ -218,22 +218,9 @@ case class SimpleTypeRetry(ctxt: ElementBase, v: Gram)
extends Terminal(ctxt, true) {
override def parser = v.parser
- // When unparsing, the target length of this simple type might not actually
- // match the actual unparsed length due to things like padding or fill. But
- // if we can statically determine that the target length will be correct
- // (e.g. there won't be things like padding/fill) then we can use that length
- // during unparsing to provide more bit positions about buffered data output
- // streams. This can hopefully allow alignment unparsers to know their
- // alignment and avoid suspensions.
- lazy val maybeExactTargetLength = {
- if (!ctxt.shouldAddPadding && !ctxt.shouldAddFill && !ctxt.shouldCheckExcessLength) {
- ctxt.maybeUnparseTargetLengthInBitsEv
- } else {
- Maybe.Nope
- }
- }
-
- override def unparser = new SimpleTypeRetryUnparser(ctxt.erd, maybeExactTargetLength, v.unparser)
+ override def unparser = new SimpleTypeRetryUnparser(
+ ctxt.erd,
+ ctxt.maybeUnparseTargetLengthInBitsEv, v.unparser)
}
case class CaptureContentLengthStart(ctxt: ElementBase)
diff --git a/daffodil-io/src/main/scala/org/apache/daffodil/io/DataOutputStreamImplMixin.scala b/daffodil-io/src/main/scala/org/apache/daffodil/io/DataOutputStreamImplMixin.scala
index 6030475..d4a82b3 100644
--- a/daffodil-io/src/main/scala/org/apache/daffodil/io/DataOutputStreamImplMixin.scala
+++ b/daffodil-io/src/main/scala/org/apache/daffodil/io/DataOutputStreamImplMixin.scala
@@ -149,7 +149,7 @@ trait DataOutputStreamImplMixin extends DataStreamCommonState
* of the former starting bit pos so as to be able to
* convert relative positions to absolute positions correctly.
*/
- final def maybeAbsStartingBitPos0b = {
+ protected final def maybeAbsStartingBitPos0b = {
if (this.maybeAbsolutizedRelativeStartingBitPosInBits_.isDefined)
maybeAbsolutizedRelativeStartingBitPosInBits_
else
diff --git a/daffodil-io/src/main/scala/org/apache/daffodil/io/DirectOrBufferedDataOutputStream.scala b/daffodil-io/src/main/scala/org/apache/daffodil/io/DirectOrBufferedDataOutputStream.scala
index fac6888..62bd720 100644
--- a/daffodil-io/src/main/scala/org/apache/daffodil/io/DirectOrBufferedDataOutputStream.scala
+++ b/daffodil-io/src/main/scala/org/apache/daffodil/io/DirectOrBufferedDataOutputStream.scala
@@ -966,12 +966,6 @@ object DirectOrBufferedDataOutputStream {
Assert.invariant(bufDOS.isBuffering)
Assert.invariant(!directDOS.isBuffering)
- // ensure that if we know the absoluste starting position of the buffered
- // DOS that it matches the ending bit position of the direct DOS we are
- // about to deliver it to
- val maybeBufStartPos = bufDOS.maybeAbsStartingBitPos0b
- Assert.invariant(maybeBufStartPos.isEmpty || maybeBufStartPos.get == directDOS.maybeAbsBitPos0b.get)
-
val finfoBitOrder = finfo.bitOrder // bit order we are supposed to write with
val priorBitOrder = directDOS.cst.priorBitOrder // bit order that the directDOS had at last successful unparse. (prior is set after each unparser)
if (finfoBitOrder ne priorBitOrder) {
diff --git a/daffodil-io/src/test/scala/org/apache/daffodil/io/TestDataOutputStream4.scala b/daffodil-io/src/test/scala/org/apache/daffodil/io/TestDataOutputStream4.scala
index 9b02952..5a2e5f5 100644
--- a/daffodil-io/src/test/scala/org/apache/daffodil/io/TestDataOutputStream4.scala
+++ b/daffodil-io/src/test/scala/org/apache/daffodil/io/TestDataOutputStream4.scala
@@ -41,10 +41,10 @@ class TestDataOutputStream4 {
val out = direct.addBuffered
if (setAbs)
- out.setAbsStartingBitPos0b(ULong(19))
+ out.setAbsStartingBitPos0b(ULong(20))
val out2 = out.addBuffered
if (setAbs)
- out2.setAbsStartingBitPos0b(ULong(38))
+ out2.setAbsStartingBitPos0b(ULong(39))
out.putLong(0x5a5a5, 19, finfo)
// 101 1010 0101 1010 0101
diff --git a/daffodil-japi/src/test/java/org/apache/daffodil/example/TestCustomDebuggerAPI.java b/daffodil-japi/src/test/java/org/apache/daffodil/example/TestCustomDebuggerAPI.java
index 92b31a2..91af3f1 100644
--- a/daffodil-japi/src/test/java/org/apache/daffodil/example/TestCustomDebuggerAPI.java
+++ b/daffodil-japi/src/test/java/org/apache/daffodil/example/TestCustomDebuggerAPI.java
@@ -72,7 +72,7 @@ public class TestCustomDebuggerAPI {
InputSourceDataInputStream dis = new InputSourceDataInputStream(fis);
ParseResult res = dp.parse(dis, new NullInfosetOutputter());
- assertEquals(8, dbg.nodes);
+ assertEquals(6, dbg.nodes);
assertTrue(dbg.inited);
assertTrue(dbg.finished);
}
diff --git a/daffodil-lib/src/main/scala/org/apache/daffodil/util/MaybeULong.scala b/daffodil-lib/src/main/scala/org/apache/daffodil/util/MaybeULong.scala
index e5acb7a..81de83c 100644
--- a/daffodil-lib/src/main/scala/org/apache/daffodil/util/MaybeULong.scala
+++ b/daffodil-lib/src/main/scala/org/apache/daffodil/util/MaybeULong.scala
@@ -77,8 +77,6 @@ final class MaybeJULong(mi: MaybeULong)
@inline final def isDefined = mi.isDefined
@inline final def isEmpty = !isDefined
override def toString = mi.toString
-
- @inline def toMaybeULong = mi
}
object MaybeJULong {
diff --git a/daffodil-runtime1-unparser/src/main/scala/org/apache/daffodil/processors/unparsers/SpecifiedLength2.scala b/daffodil-runtime1-unparser/src/main/scala/org/apache/daffodil/processors/unparsers/SpecifiedLength2.scala
index 69f92a7..1c53f5a 100644
--- a/daffodil-runtime1-unparser/src/main/scala/org/apache/daffodil/processors/unparsers/SpecifiedLength2.scala
+++ b/daffodil-runtime1-unparser/src/main/scala/org/apache/daffodil/processors/unparsers/SpecifiedLength2.scala
@@ -177,21 +177,20 @@ class SimpleTypeRetryUnparserSuspendableOperation(
extends SuspendableOperation {
override protected def maybeKnownLengthInBits(ustate: UState): MaybeULong = {
- if (maybeUnparserTargetLengthInBitsEv.isDefined) {
- // maybeUnparserTargetLengthInBitsEv should only be provided to this
- // class if we know at schema compile time that it will evaluate to a
- // value, and that value will match the actual unparsed length (e.g.
- // there will not be any padding/fill). Here we assert that if a target
- // length evaluatable was passed into this class, then it must evaluate
- // to a value. When we deliver buffered content, we will also assert that
- // the starting bit position of the buffered DOS that results from this
- // suspension matches the direct DOS (i.e. this length is used correctly)
- val maybeLen = maybeUnparserTargetLengthInBitsEv.get.evaluate(ustate)
- Assert.invariant(maybeLen.isDefined)
- maybeLen.toMaybeULong
- } else {
- MaybeULong.Nope
- }
+ // Note that we cannot use a targetLengthInBitsEv to determine the
+ // knownLengthInBits. This is because even if an OVC/Simple element has fixed
+ // length, the result of the OVC might not actually write that many bits,
+ // relying on padding and/or right fill to fill in the remaining bits
+ //
+ // TODO: The above is too pessimistic. Many formats have no notion of
+ // padding nor filling, so the length could be computed from the targetLengthInBitsEv
+ // just fine
+ //
+ // We could make it the responsibility of the caller of this to supply or not
+ // the maybeUnparserTargetLengthInBitsEv depending on whether it can be
+ // depended upon or not.
+ //
+ MaybeULong.Nope
}
protected def test(state: UState) = {
diff --git a/daffodil-sapi/src/test/scala/org/apache/daffodil/example/TestCustomDebuggerAPI.scala b/daffodil-sapi/src/test/scala/org/apache/daffodil/example/TestCustomDebuggerAPI.scala
index 252d89d..dcc35e8 100644
--- a/daffodil-sapi/src/test/scala/org/apache/daffodil/example/TestCustomDebuggerAPI.scala
+++ b/daffodil-sapi/src/test/scala/org/apache/daffodil/example/TestCustomDebuggerAPI.scala
@@ -55,7 +55,7 @@ class TestCustomDebuggerAPI {
val input = new InputSourceDataInputStream(fis)
dp.parse(input, new NullInfosetOutputter())
- assertEquals(8, dbg.nodes)
+ assertEquals(6, dbg.nodes)
assertTrue(dbg.inited)
assertTrue(dbg.finished)
}
diff --git a/daffodil-test/src/test/resources/org/apache/daffodil/section12/aligned_data/Aligned_Data.tdml b/daffodil-test/src/test/resources/org/apache/daffodil/section12/aligned_data/Aligned_Data.tdml
index 4927ca4..4080a57 100644
--- a/daffodil-test/src/test/resources/org/apache/daffodil/section12/aligned_data/Aligned_Data.tdml
+++ b/daffodil-test/src/test/resources/org/apache/daffodil/section12/aligned_data/Aligned_Data.tdml
@@ -3906,61 +3906,4 @@
</tdml:document>
</tdml:unparserTestCase>
- <tdml:defineSchema name="globalDeclAlignment">
-
- <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>
- <dfdl:format ref="ex:GeneralFormat"
- representation="binary"
- alignment="1"
- alignmentUnits="bits"
- lengthUnits="bits"
- fillByte="%#r00;" />
-
- <xs:element name="root">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="oneBit" type="xs:int" dfdl:lengthKind="explicit" dfdl:length="1" />
- <xs:element ref="ex:globalDecl" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="globalDecl">
- <xs:complexType>
- <xs:sequence dfdl:alignmentUnits="bytes">
- <xs:element name="oneByte" type="xs:int"
- dfdl:lengthKind="explicit"
- dfdl:lengthUnits="bytes" dfdl:length="1"
- dfdl:alignmentUnits="bytes" dfdl:alignment="1" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- </tdml:defineSchema>
-
- <!--
- Test Name: globalDeclAlignment_01
- Schema: globalDeclAlignment
- Root: root
- Purpose: This test demonstrates that alignment is handled correctly
- when global declarations have children with different alignment
- -->
- <tdml:parserTestCase name="globalDeclAlignment_01" root="root" model="globalDeclAlignment">
- <tdml:document>
- <tdml:documentPart type="bits">1</tdml:documentPart> <!-- oneBit -->
- <tdml:documentPart type="bits">0000000</tdml:documentPart> <!-- alignment bits -->
- <tdml:documentPart type="bits">11111111</tdml:documentPart> <!-- oneByte -->
- </tdml:document>
- <tdml:infoset>
- <tdml:dfdlInfoset>
- <ex:root>
- <ex:oneBit>1</ex:oneBit>
- <ex:globalDecl>
- <ex:oneByte>-1</ex:oneByte>
- </ex:globalDecl>
- </ex:root>
- </tdml:dfdlInfoset>
- </tdml:infoset>
- </tdml:parserTestCase>
-
</tdml:testSuite>
diff --git a/daffodil-test/src/test/resources/org/apache/daffodil/section12/lengthKind/EndOfParentTests.tdml b/daffodil-test/src/test/resources/org/apache/daffodil/section12/lengthKind/EndOfParentTests.tdml
index 2bb00cc..f870721 100644
--- a/daffodil-test/src/test/resources/org/apache/daffodil/section12/lengthKind/EndOfParentTests.tdml
+++ b/daffodil-test/src/test/resources/org/apache/daffodil/section12/lengthKind/EndOfParentTests.tdml
@@ -77,6 +77,8 @@
<tdml:error>not</tdml:error>
<tdml:error>implemented</tdml:error>
<tdml:error>endOfParent</tdml:error>
+ <tdml:error>complex</tdml:error>
+ <tdml:error>type</tdml:error>
</tdml:errors>
</tdml:parserTestCase>
@@ -88,6 +90,8 @@
<tdml:error>not</tdml:error>
<tdml:error>implemented</tdml:error>
<tdml:error>endOfParent</tdml:error>
+ <tdml:error>simple</tdml:error>
+ <tdml:error>type</tdml:error>
</tdml:errors>
</tdml:parserTestCase>
diff --git a/daffodil-test/src/test/resources/org/apache/daffodil/section17/calc_value_properties/computedLengthFields.tdml b/daffodil-test/src/test/resources/org/apache/daffodil/section17/calc_value_properties/computedLengthFields.tdml
index a854015..887e851 100644
--- a/daffodil-test/src/test/resources/org/apache/daffodil/section17/calc_value_properties/computedLengthFields.tdml
+++ b/daffodil-test/src/test/resources/org/apache/daffodil/section17/calc_value_properties/computedLengthFields.tdml
@@ -265,7 +265,7 @@
<unparserTestCase name="prefixedAroundDelimitedString1" model="modelPrefixed"
roundTrip="none">
<document>
- <documentPart type="byte">02</documentPart>
+ <documentPart type="byte">02 01</documentPart>
<documentPart type="text" encoding="iso-8859-1">A;</documentPart>
</document>
<infoset>
@@ -277,4 +277,4 @@
</infoset>
</unparserTestCase>
-</testSuite>
+</testSuite>
\ No newline at end of file
diff --git a/daffodil-test/src/test/scala/org/apache/daffodil/section12/aligned_data/TestAlignedData.scala b/daffodil-test/src/test/scala/org/apache/daffodil/section12/aligned_data/TestAlignedData.scala
index f3eade6..1d1b1ef 100644
--- a/daffodil-test/src/test/scala/org/apache/daffodil/section12/aligned_data/TestAlignedData.scala
+++ b/daffodil-test/src/test/scala/org/apache/daffodil/section12/aligned_data/TestAlignedData.scala
@@ -196,6 +196,4 @@ class TestAlignedData {
@Test def test_alignmentFillByteDefined() = { runner1.runOneTest("alignmentFillByteDefined") }
@Test def test_separatorMTA_01() = { runner1.runOneTest("separatorMTA_01") }
-
- @Test def test_globalDeclAlignment_01() = { runner1.runOneTest("globalDeclAlignment_01") }
}
diff --git a/daffodil-test/src/test/scala/org/apache/daffodil/section17/calc_value_properties/TestComputedLengthFields.scala b/daffodil-test/src/test/scala/org/apache/daffodil/section17/calc_value_properties/TestComputedLengthFields.scala
index 0651e9a..b2e1820 100644
--- a/daffodil-test/src/test/scala/org/apache/daffodil/section17/calc_value_properties/TestComputedLengthFields.scala
+++ b/daffodil-test/src/test/scala/org/apache/daffodil/section17/calc_value_properties/TestComputedLengthFields.scala
@@ -39,13 +39,13 @@ class TestComputedLengthFields {
@Test def test_computedLengthAroundPrefixedLengths1p(): Unit = { runner.runOneTest("computedLengthAroundPrefixedLengths1p") }
// DAFFODIL-2626 - deadlock interaction between computed length and prefixed-length strings.
- @Test def test_computedLengthAroundPrefixedLengths1u(): Unit = { runner.runOneTest("computedLengthAroundPrefixedLengths1u") }
+ // @Test def test_computedLengthAroundPrefixedLengths1u(): Unit = { runner.runOneTest("computedLengthAroundPrefixedLengths1u") }
@Test def test_computedLengthAroundFixedLengths1(): Unit = { runner.runOneTest("computedLengthAroundFixedLengths1") }
// DAFFODIL-2626 circular deadlock
// Reproduces one of the circular issues - with prefixed length for the root element surrounding
// text, where the alignment region isn't optimized out.
- @Test def test_prefixedAroundDelimitedString1(): Unit = { runner.runOneTest("prefixedAroundDelimitedString1") }
+ // @Test def test_prefixedAroundDelimitedString1(): Unit = { runner.runOneTest("prefixedAroundDelimitedString1") }
}