aboutsummaryrefslogtreecommitdiff
path: root/build2/cc/parser+module.test.testscript
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2019-04-11 14:44:32 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2019-04-30 16:56:08 +0200
commita14b9bc18431c6aed8441261d28b6ff20bd25935 (patch)
treeae1f07caef838b5b03fa3f82a2cfccbb62b24ed3 /build2/cc/parser+module.test.testscript
parentca0f9c71be279aee845bf5328ac0af8c02c8849e (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.testscript48
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