blob: afc57647e5d7bd63860f8cf1fa9ae35310fdd83b [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.daffodil
import org.apache.daffodil.tdml.Runner
import org.junit.{ AfterClass, Test }
object TresysTests3 {
val testDir = "/test-suite/tresys-contributed/"
val runnerBF = Runner(testDir, "bitFlagExpression.tdml",
compileAllTopLevel = false) // test has elements that have upward paths past root.
val runnerAH = Runner(testDir, "AH.tdml", compileAllTopLevel = true)
val runnerAM = Runner(testDir, "AM.tdml", validateTDMLFile = true, validateDFDLSchemas = false,
compileAllTopLevel = true)
val runnerAU = Runner(testDir, "AU.tdml", validateTDMLFile = true, validateDFDLSchemas = false,
compileAllTopLevel = true)
val runnerBC = Runner(testDir, "BC.tdml")
val runnerBD = Runner(testDir, "BD.tdml")
@AfterClass def shutDown(): Unit = {
runnerBF.reset
runnerAH.reset
runnerAM.reset
runnerAU.reset
runnerBC.reset
runnerBD.reset
}
}
class TresysTests3 {
import TresysTests3._
@Test def test_testNone() = { runnerBF.runOneTest("testNone") }
@Test def test_testOne(): Unit = { runnerBF.runOneTest("testOne") }
@Test def test_testMany(): Unit = { runnerBF.runOneTest("testMany") }
@Test def test_AH000(): Unit = { runnerAH.runOneTest("AH000") }
@Test def test_AH001(): Unit = { runnerAH.runOneTest("AH001") }
@Test def test_AH002(): Unit = { runnerAH.runOneTest("AH002") }
// AM is a MIME style example
// Wasn't working for lack of occursCountKind, and
// because the bytes were flipped. It was written assuming that
// Hex like A1B2 was interpreted as little endian words. I.e, the first
// byte in that would be B2.
// That's not how TDML works anyway. A1 is first. So by swizzling the indexes
// the tests were asking for. Voila, they work.
//
// NOTE: AM.dfdl.xsd isn't a valid schema because it has an array in a hidden
// group. Because everything inside a hidden group must be either default or
// OVC, and arrays can't have either, they cannot be in hidden groups.
// This is fixed by specifying daffodil-specific property
// dfdlx:parseUnparsePolicy="parseOnly", which suppresses the check for this
// constraint.
@Test def test_AM000(): Unit = { runnerAM.runOneTest("AM000") }
@Test def test_AM001(): Unit = { runnerAM.runOneTest("AM001") }
@Test def test_AU000(): Unit = { runnerAU.runOneTest("AU000") } // packed and bcd
}