From 7ef3e1ba9d1a748bd39f8d4f279e8d4e34bb4cc7 Mon Sep 17 00:00:00 2001 From: Kevin Laeufer Date: Thu, 4 Nov 2021 09:39:08 -0700 Subject: BlackBoxSourceHelper: ensure trailing newline in .f file (#2405) --- .../scala/firrtl/transforms/BlackBoxSourceHelper.scala | 2 +- .../firrtlTests/transforms/BlackBoxSourceHelperSpec.scala | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/scala/firrtl/transforms/BlackBoxSourceHelper.scala b/src/main/scala/firrtl/transforms/BlackBoxSourceHelper.scala index fb3f2be8..12691079 100644 --- a/src/main/scala/firrtl/transforms/BlackBoxSourceHelper.scala +++ b/src/main/scala/firrtl/transforms/BlackBoxSourceHelper.scala @@ -135,7 +135,7 @@ class BlackBoxSourceHelper extends Transform with DependencyAPIMigration { // make[1]: *** No rule to make target `test_run_dir/examples.AccumBlackBox_PeekPokeTest_Verilator345491158/AccumBlackBox.v', needed by `.../chisel-testers/test_run_dir/examples.AccumBlackBox_PeekPokeTest_Verilator345491158/VAccumBlackBoxWrapper.h'. Stop. // or we end up including the same file multiple times. if (verilogSourcesOnly.nonEmpty) { - writeTextToFile(verilogSourcesOnly.map(_.getCanonicalPath).mkString("\n"), filelistFile) + writeTextToFile(verilogSourcesOnly.map(_.getCanonicalPath).mkString("\n") + "\n", filelistFile) } state diff --git a/src/test/scala/firrtlTests/transforms/BlackBoxSourceHelperSpec.scala b/src/test/scala/firrtlTests/transforms/BlackBoxSourceHelperSpec.scala index 45be4cb3..62160e09 100644 --- a/src/test/scala/firrtlTests/transforms/BlackBoxSourceHelperSpec.scala +++ b/src/test/scala/firrtlTests/transforms/BlackBoxSourceHelperSpec.scala @@ -193,4 +193,19 @@ class BlacklBoxSourceHelperTransformSpec extends LowTransformSpec { new File(subdir, filename) should exist new File(dir, filename) shouldNot exist } + + "verilog file list" should "end with a newline" in { + val annos = Seq( + BlackBoxTargetDirAnno("test_run_dir"), + BlackBoxResourceAnno(moduleName, "/blackboxes/AdderExtModule.v") + ) + + execute(input, output, annos) + + val filename = os.pwd / "test_run_dir" / BlackBoxSourceHelper.defaultFileListName + assert(os.exists(filename), "verilog file list should exist") + val content = os.read(filename) + assert(content.contains("AdderExtModule.v")) + assert(content.last == '\n', "Some simulators like Icarus Verilog seem to expect a trailing new line character") + } } -- cgit v1.2.3