You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by ji...@apache.org on 2021/03/30 15:15:25 UTC

[daffodil] 09/09: Fix test failures after rebase

This is an automated email from the ASF dual-hosted git repository.

jinterrante pushed a commit to branch runtime2-2202
in repository https://gitbox.apache.org/repos/asf/daffodil.git

commit b54772285a3b418ee853b029f2cabe65f0eafbd9
Author: John Interrante <in...@research.ge.com>
AuthorDate: Sat Mar 27 14:33:45 2021 -0400

    Fix test failures after rebase
    
    Rebase runtime2-2202 on latest commits from asf/master.  Fix test
    failures in TestCLIGenerateC.scala due to changes in scallop API.
    Improve CLI error handling in Main.scala.  Make tempDir val instead of
    var in both TestCLIGenerateC.scala and TestCodeGenerator.scala by
    initializing it immediately instead of using before() method.
---
 .../daffodil/generating/TestCLIGenerateC.scala     | 42 ++++++++++------------
 .../src/main/scala/org/apache/daffodil/Main.scala  |  1 +
 .../daffodil/runtime2/TestCodeGenerator.scala      |  9 ++---
 3 files changed, 22 insertions(+), 30 deletions(-)

diff --git a/daffodil-cli/src/it/scala/org/apache/daffodil/generating/TestCLIGenerateC.scala b/daffodil-cli/src/it/scala/org/apache/daffodil/generating/TestCLIGenerateC.scala
index e94ebec..33ed867 100644
--- a/daffodil-cli/src/it/scala/org/apache/daffodil/generating/TestCLIGenerateC.scala
+++ b/daffodil-cli/src/it/scala/org/apache/daffodil/generating/TestCLIGenerateC.scala
@@ -21,7 +21,6 @@ import net.sf.expectit.matcher.Matchers.contains
 import net.sf.expectit.matcher.Matchers.eof
 import org.apache.daffodil.CLI.Util
 import org.junit.After
-import org.junit.Before
 import org.junit.Test
 
 /**
@@ -31,20 +30,17 @@ import org.junit.Test
 class TestCLIGenerateC {
 
   val daffodil: String = Util.binPath
-  var outputDir: os.Path = _
   lazy val schemaFile: String = if (Util.isWindows) Util.cmdConvert(sf) else sf
   val sf: String = Util.daffodilPath("daffodil-runtime2/src/test/resources/org/apache/daffodil/runtime2/ex_nums.dfdl.xsd")
-
-  @Before def before(): Unit = {
-    outputDir = os.temp.dir()
-  }
+  // Ensure all tests remove tempDir after creating it
+  val tempDir: os.Path = os.temp.dir()
 
   @After def after(): Unit = {
-    os.remove.all(outputDir)
+    os.remove.all(tempDir)
   }
 
   @Test def test_CLI_Generate_schema(): Unit = {
-    val generateCmd = s"$daffodil generate c -s $schemaFile $outputDir"
+    val generateCmd = s"$daffodil generate c -s $schemaFile $tempDir"
     val exitCmd = "exit"
 
     val shell = Util.start("")
@@ -56,11 +52,11 @@ class TestCLIGenerateC {
       shell.close()
     }
 
-    assert(os.exists(outputDir/"c"/"libruntime"/"generated_code.c"))
+    assert(os.exists(tempDir/"c"/"libruntime"/"generated_code.c"))
   }
 
   @Test def test_CLI_Generate_noC_error(): Unit = {
-    val generateCmd = s"$daffodil generate -s $schemaFile $outputDir"
+    val generateCmd = s"$daffodil generate -s $schemaFile $tempDir"
     val exitCmd = "exit"
 
     val shell = Util.start("", expectErr = true)
@@ -75,13 +71,13 @@ class TestCLIGenerateC {
   }
 
   @Test def test_CLI_Generate_otherThanC_error(): Unit = {
-    val generateCmd = s"$daffodil generate vhld -s $schemaFile $outputDir"
+    val generateCmd = s"$daffodil generate vhld -s $schemaFile $tempDir"
     val exitCmd = "exit"
 
     val shell = Util.start("", expectErr = true)
     try {
       shell.sendLine(generateCmd)
-      shell.expect(contains("Excess arguments provided: 'vhld"))
+      shell.expect(contains("Unknown option 's'"))
       shell.sendLine(exitCmd)
       shell.expect(eof())
     } finally {
@@ -90,7 +86,7 @@ class TestCLIGenerateC {
   }
 
   @Test def test_CLI_Generate_noSchema_error(): Unit = {
-    val generateCmd = s"$daffodil generate c $outputDir"
+    val generateCmd = s"$daffodil generate c $tempDir"
     val exitCmd = "exit"
 
     val shell = Util.start("", expectErr = true)
@@ -105,7 +101,7 @@ class TestCLIGenerateC {
   }
 
   @Test def test_CLI_Generate_twoSchema_error(): Unit = {
-    val generateCmd = s"$daffodil generate c -s $schemaFile -s $schemaFile $outputDir"
+    val generateCmd = s"$daffodil generate c -s $schemaFile -s $schemaFile $tempDir"
     val exitCmd = "exit"
 
     val shell = Util.start("", expectErr = true)
@@ -120,7 +116,7 @@ class TestCLIGenerateC {
   }
 
   @Test def test_CLI_Generate_verbose(): Unit = {
-    val generateCmd = s"$daffodil -v generate c -s $schemaFile $outputDir"
+    val generateCmd = s"$daffodil -v generate c -s $schemaFile $tempDir"
     val exitCmd = "exit"
 
     val shell = Util.start("", expectErr = true)
@@ -134,11 +130,11 @@ class TestCLIGenerateC {
       shell.close()
     }
 
-    assert(os.exists(outputDir/"c"/"libruntime"/"generated_code.c"))
+    assert(os.exists(tempDir/"c"/"libruntime"/"generated_code.c"))
   }
 
   @Test def test_CLI_Generate_root(): Unit = {
-    val generateCmd = s"$daffodil generate c -s $schemaFile -r {http://example.com}ex_nums $outputDir"
+    val generateCmd = s"$daffodil generate c -s $schemaFile -r {http://example.com}ex_nums $tempDir"
     val exitCmd = "exit"
 
     val shell = Util.start("")
@@ -150,11 +146,11 @@ class TestCLIGenerateC {
       shell.close()
     }
 
-    assert(os.exists(outputDir/"c"/"libruntime"/"generated_code.c"))
+    assert(os.exists(tempDir/"c"/"libruntime"/"generated_code.c"))
   }
 
   @Test def test_CLI_Generate_root_error(): Unit = {
-    val generateCmd = s"$daffodil generate c -s $schemaFile -r {ex}ex_nums $outputDir"
+    val generateCmd = s"$daffodil generate c -s $schemaFile -r {ex}ex_nums $tempDir"
     val exitCmd = "exit"
 
     val shell = Util.start("", expectErr = true)
@@ -170,13 +166,13 @@ class TestCLIGenerateC {
   }
 
   @Test def test_CLI_Generate_namespaceNoRoot_error(): Unit = {
-    val generateCmd = s"$daffodil generate c -s $schemaFile -r {http://example.com} $outputDir"
+    val generateCmd = s"$daffodil generate c -s $schemaFile -r {http://example.com} $tempDir"
     val exitCmd = "exit"
 
     val shell = Util.start("", expectErr = true)
     try {
       shell.sendLine(generateCmd)
-      shell.expect(contains("'{http://example.com}' - wrong arguments format"))
+      shell.expect(contains("Invalid syntax for extended QName"))
       shell.sendLine(exitCmd)
       shell.expect(eof())
     } finally {
@@ -185,7 +181,7 @@ class TestCLIGenerateC {
   }
 
   @Test def test_CLI_Generate_tunable(): Unit = {
-    val generateCmd = s"$daffodil generate c -s $schemaFile -T parseUnparsePolicy=parseOnly $outputDir"
+    val generateCmd = s"$daffodil generate c -s $schemaFile -T parseUnparsePolicy=parseOnly $tempDir"
     val exitCmd = "exit"
 
     val shell = Util.start("")
@@ -197,6 +193,6 @@ class TestCLIGenerateC {
       shell.close()
     }
 
-    assert(os.exists(outputDir/"c"/"libruntime"/"generated_code.c"))
+    assert(os.exists(tempDir/"c"/"libruntime"/"generated_code.c"))
   }
 }
diff --git a/daffodil-cli/src/main/scala/org/apache/daffodil/Main.scala b/daffodil-cli/src/main/scala/org/apache/daffodil/Main.scala
index 3891195..a1573e0 100644
--- a/daffodil-cli/src/main/scala/org/apache/daffodil/Main.scala
+++ b/daffodil-cli/src/main/scala/org/apache/daffodil/Main.scala
@@ -533,6 +533,7 @@ class CLIConf(arguments: Array[String]) extends scallop.ScallopConf(arguments)
       validateFileIsFile(config) // --config must be a file that exists
     }
     addSubcommand(c)
+    requireSubcommand()
   }
 
   addSubcommand(parse)
diff --git a/daffodil-runtime2/src/test/scala/org/apache/daffodil/runtime2/TestCodeGenerator.scala b/daffodil-runtime2/src/test/scala/org/apache/daffodil/runtime2/TestCodeGenerator.scala
index 3069efa..85af8c5 100644
--- a/daffodil-runtime2/src/test/scala/org/apache/daffodil/runtime2/TestCodeGenerator.scala
+++ b/daffodil-runtime2/src/test/scala/org/apache/daffodil/runtime2/TestCodeGenerator.scala
@@ -27,7 +27,6 @@ import org.apache.daffodil.util.SchemaUtils
 import org.apache.daffodil.util.TestUtils
 import org.junit.After
 import org.junit.Assert.assertArrayEquals
-import org.junit.Before
 import org.junit.Test
 
 /**
@@ -39,12 +38,8 @@ import org.junit.Test
  * as you could want.
  */
 class TestCodeGenerator {
-  // Ensure all tests remove tempDir after using it
-  var tempDir: os.Path = _
-
-  @Before def before(): Unit = {
-    tempDir = os.temp.dir()
-  }
+  // Ensure all tests remove tempDir after creating it
+  val tempDir: os.Path = os.temp.dir()
 
   @After def after(): Unit = {
     os.remove.all(tempDir)