diff options
Diffstat (limited to 'libbuild2/cc/parser+module.test.testscript')
-rw-r--r-- | libbuild2/cc/parser+module.test.testscript | 86 |
1 files changed, 69 insertions, 17 deletions
diff --git a/libbuild2/cc/parser+module.test.testscript b/libbuild2/cc/parser+module.test.testscript index b92f80b..6935f5e 100644 --- a/libbuild2/cc/parser+module.test.testscript +++ b/libbuild2/cc/parser+module.test.testscript @@ -7,6 +7,30 @@ # NOTE: currently header unit imports don't produce anything. # +: module-iface +: +$* <<EOI >>EOI +export module foo; +EOI + +: module-impl +: +$* <<EOI >>EOI +module foo; +EOI + +: module-iface-part +: +$* <<EOI >>EOI +export module foo:part; +EOI + +: module-impl-part +: +$* <<EOI >>EOI +module foo.bar:part.sub; +EOI + : import : $* <<EOI >>EOI @@ -20,20 +44,30 @@ EOI $* <<EOI import "foo.h"; import <sys/foo.h>; -__import "/usr/include/stdio.h"; +import "/usr/include/stdio.h" [[__translated]]; EOI -: module-implementation +: import-part : -$* <<EOI >>EOI +$* <<EOI >>EOO module foo; +import :part; +import :part.sub; EOI +module foo; +import foo:part; +import foo:part.sub; +EOO -: module-interface +: import-part-from-part : -$* <<EOI >>EOI -export module foo; +$* <<EOI >>EOO +module foo:part; +import :part.sub; EOI +module foo:part; +import foo:part.sub; +EOO : export-imported : @@ -45,6 +79,18 @@ EOI export import foo; EOO +: non-import +: +$* <<EOI +import +foo; +export import(*a); +import::inner xi = {}; +::import <a>; +class import<int>; +import ::x; +EOI + : non-module : $* <<EOI @@ -52,17 +98,21 @@ $* <<EOI #pragma export module foo; #pragma module foo; export namespace bar {int fox ();} +module +foo; +foo::module(); +module::inner yi = {}; EOI : attribute : $* <<EOI >>EOO +module bar [[module({module})]]; import foo [[export({import})]]; import "foo.h" [[export({import})]]; -module bar [[module({module})]]; EOI -import foo; module bar; +import foo; EOO : import-duplicate @@ -77,6 +127,16 @@ import foo; import bar.baz; EOO +: part-out-purview +: +$* <<EOI 2>>EOE != 0 +module; +import :part +module foo; +EOI +<stdin>:2:8: error: partition importation out of module purview +EOE + : brace-missing : $* <<EOI 2>>EOE @@ -105,20 +165,12 @@ EOI <stdin>:6:1: warning: extraneous '}' EOE -: import-missing-name -: -$* <<EOI 2>>EOE != 0 -import ; -EOI -<stdin>:1:8: error: module or header name expected instead of ';' -EOE - : module-missing-name : $* <<EOI 2>>EOE != 0 module ; EOI -<stdin>:1:1: error: module declaration expected after leading module marker +<stdin>:1:1: error: module declaration expected after global module fragment EOE : import-missing-semi |