From da6157952ed842fb109a9e4b658c4fdeb7443674 Mon Sep 17 00:00:00 2001 From: damc Date: Tue, 26 Jul 2022 22:00:46 +0200 Subject: [PATCH] ppTests include_quoted_(a|b|c|d) - Illustration of https://github.com/dalance/svlint/issues/77 - That's the same as https://github.com/dalance/sv-parser/issues/48 - A,B show what doesn't work, vaguely defined on page 680. - C,D show what does work, using example on page 680. --- sv-parser-pp/src/preprocess.rs | 30 +++++++++++++++++++ .../testcases/expected/include_quoted_c.sv | 9 ++++++ .../testcases/expected/include_quoted_d.sv | 8 +++++ sv-parser-pp/testcases/include_quoted_a.sv | 5 ++++ sv-parser-pp/testcases/include_quoted_b.sv | 5 ++++ sv-parser-pp/testcases/include_quoted_c.sv | 5 ++++ sv-parser-pp/testcases/include_quoted_d.sv | 4 +++ 7 files changed, 66 insertions(+) create mode 100644 sv-parser-pp/testcases/expected/include_quoted_c.sv create mode 100644 sv-parser-pp/testcases/expected/include_quoted_d.sv create mode 100644 sv-parser-pp/testcases/include_quoted_a.sv create mode 100644 sv-parser-pp/testcases/include_quoted_b.sv create mode 100644 sv-parser-pp/testcases/include_quoted_c.sv create mode 100644 sv-parser-pp/testcases/include_quoted_d.sv diff --git a/sv-parser-pp/src/preprocess.rs b/sv-parser-pp/src/preprocess.rs index 2fe42b7..0093903 100644 --- a/sv-parser-pp/src/preprocess.rs +++ b/sv-parser-pp/src/preprocess.rs @@ -1250,6 +1250,36 @@ mod tests { assert_eq!(ret.text().chars().nth(n).unwrap(), 'o'); } // }}} + #[test] + fn include_quoted_a() { // {{{ + let ret = preprocess_usualargs("include_quoted_a.sv"); + assert_eq!(format!("{:?}", ret), "Err(Include { source: File { source: Os { code: 2, kind: NotFound, message: \"No such file or directory\" }, path: \"`PATH\" } })"); + } // }}} + + #[test] + fn include_quoted_b() { // {{{ + let ret = preprocess_usualargs("include_quoted_b.sv"); + assert_eq!(format!("{:?}", ret), "Err(Include { source: File { source: Os { code: 2, kind: NotFound, message: \"No such file or directory\" }, path: \"`PATH\" } })"); + } // }}} + + #[test] + fn include_quoted_c() { // {{{ + let (ret, _) = preprocess_usualargs("include_quoted_c.sv").unwrap(); + assert_eq!( + ret.text(), + testfile_contents("expected/include_quoted_c.sv") + ); + } // }}} + + #[test] + fn include_quoted_d() { // {{{ + let (ret, _) = preprocess_usualargs("include_quoted_d.sv").unwrap(); + assert_eq!( + ret.text(), + testfile_contents("expected/include_quoted_d.sv") + ); + } // }}} + #[test] fn include_recursive() { // {{{ let ret = preprocess_usualargs("include_recursive.svh"); diff --git a/sv-parser-pp/testcases/expected/include_quoted_c.sv b/sv-parser-pp/testcases/expected/include_quoted_c.sv new file mode 100644 index 0000000..b663ef9 --- /dev/null +++ b/sv-parser-pp/testcases/expected/include_quoted_c.sv @@ -0,0 +1,9 @@ +// Based on last example of IEEE1800-2017 Clause 22.5.1, page 680. +`define APPEND_SVH(path) `"path.svh`" +module and_op (a, b, c); +output a; +input b, c; + +and a1 (a,b,c); + +endmodule diff --git a/sv-parser-pp/testcases/expected/include_quoted_d.sv b/sv-parser-pp/testcases/expected/include_quoted_d.sv new file mode 100644 index 0000000..68a6a95 --- /dev/null +++ b/sv-parser-pp/testcases/expected/include_quoted_d.sv @@ -0,0 +1,8 @@ +`define PATH "included.svh" +module and_op (a, b, c); +output a; +input b, c; + +and a1 (a,b,c); + +endmodule diff --git a/sv-parser-pp/testcases/include_quoted_a.sv b/sv-parser-pp/testcases/include_quoted_a.sv new file mode 100644 index 0000000..8fd3b7b --- /dev/null +++ b/sv-parser-pp/testcases/include_quoted_a.sv @@ -0,0 +1,5 @@ +`define PATH included.svh +`define QUOTE(path) `"path`" +module and_op (a, b, c); +`include `QUOTE(`PATH) +endmodule diff --git a/sv-parser-pp/testcases/include_quoted_b.sv b/sv-parser-pp/testcases/include_quoted_b.sv new file mode 100644 index 0000000..e4168a0 --- /dev/null +++ b/sv-parser-pp/testcases/include_quoted_b.sv @@ -0,0 +1,5 @@ +`define PATH included.svh +`define QUOTED_PATH `"`PATH`" +module and_op (a, b, c); +`include `QUOTED_PATH +endmodule diff --git a/sv-parser-pp/testcases/include_quoted_c.sv b/sv-parser-pp/testcases/include_quoted_c.sv new file mode 100644 index 0000000..36393c4 --- /dev/null +++ b/sv-parser-pp/testcases/include_quoted_c.sv @@ -0,0 +1,5 @@ +// Based on last example of IEEE1800-2017 Clause 22.5.1, page 680. +`define APPEND_SVH(path) `"path.svh`" +module and_op (a, b, c); +`include `APPEND_SVH(included) +endmodule diff --git a/sv-parser-pp/testcases/include_quoted_d.sv b/sv-parser-pp/testcases/include_quoted_d.sv new file mode 100644 index 0000000..8e5eb97 --- /dev/null +++ b/sv-parser-pp/testcases/include_quoted_d.sv @@ -0,0 +1,4 @@ +`define PATH "included.svh" +module and_op (a, b, c); +`include `PATH +endmodule