diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2019-04-11 14:44:32 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2019-04-30 16:56:08 +0200 |
commit | a14b9bc18431c6aed8441261d28b6ff20bd25935 (patch) | |
tree | ae1f07caef838b5b03fa3f82a2cfccbb62b24ed3 /build2/cc/parser+module.test.testscript | |
parent | ca0f9c71be279aee845bf5328ac0af8c02c8849e (diff) |
Initial take on header unit and include translation support
Diffstat (limited to 'build2/cc/parser+module.test.testscript')
-rw-r--r-- | build2/cc/parser+module.test.testscript | 48 |
1 files changed, 23 insertions, 25 deletions
diff --git a/build2/cc/parser+module.test.testscript b/build2/cc/parser+module.test.testscript index 0e2e52e..dcb2f8b 100644 --- a/build2/cc/parser+module.test.testscript +++ b/build2/cc/parser+module.test.testscript @@ -5,6 +5,9 @@ # Test C++ module constructs. # +# NOTE: currently header unit imports don't produce anything. +# + : import : $* <<EOI >>EOI @@ -13,6 +16,14 @@ import foo.bar; import foo.bar.baz; EOI +: import-header +: +$* <<EOI +import "foo.h"; +import <sys/foo.h>; +__import "/usr/include/stdio.h"; +EOI + : module-implementation : $* <<EOI >>EOI @@ -29,40 +40,18 @@ EOI : $* <<EOI >>EOO export import foo; +export import "foo.h"; +export import <sys/foo.h>; EOI export import foo; EOO -: export-imported-block -: -$* <<EOI >>EOO -import bar; - -export {import foo;} - -export -{ - namespace foo - { - class c {}; - } - - template <typename T> int f (); - - import bar; -} -EOI -export import bar; -export import foo; -EOO - : non-module : $* <<EOI #pragma import module foo; #pragma export module foo; #pragma module foo; -extern module foo: int foo (); export namespace bar {int fox ();} EOI @@ -70,6 +59,7 @@ EOI : $* <<EOI >>EOO import foo [[export({import})]]; +import "foo.h" [[export({import})]]; module bar [[module({module})]]; EOI import foo; @@ -121,7 +111,7 @@ EOE $* <<EOI 2>>EOE != 0 import ; EOI -stdin:1:8: error: module name expected instead of ';' +stdin:1:8: error: module or header name expected instead of ';' EOE : module-missing-name @@ -147,3 +137,11 @@ export module foo EOI stdin:2:1: error: ';' expected instead of <end of file> EOE + +: import-missing-header +: +$* <<EOI 2>>EOE != 0 +import <foo.h; +EOI +stdin:2:1: error: closing '>' expected after header name +EOE |