aboutsummaryrefslogtreecommitdiff
path: root/tests/cc/modules/modules.testscript
diff options
context:
space:
mode:
Diffstat (limited to 'tests/cc/modules/modules.testscript')
-rw-r--r--tests/cc/modules/modules.testscript26
1 files changed, 16 insertions, 10 deletions
diff --git a/tests/cc/modules/modules.testscript b/tests/cc/modules/modules.testscript
index a43cc57..c286c1f 100644
--- a/tests/cc/modules/modules.testscript
+++ b/tests/cc/modules/modules.testscript
@@ -173,13 +173,16 @@ $* test clean <<EOI
ln -s ../driver.cxx ./;
$* test &*.d <'exe{test}: cxx{driver}' 2>>EOE != 0
driver.cxx: error: unable to resolve module foo.core
+ info: verify module interface is listed as a prerequisite, otherwise
+ info: consider adjusting module interface file names or
+ info: consider specifying module name with cxx.module_name
EOE
: misguessed
:
ln -s ../core.mxx ./;
cat <'import bar.core;' >=driver.cxx;
-$* test &*.d &?*.ii <'exe{test}: cxx{driver} mxx{core}' 2>>EOE != 0
+$* test &*.d &?*.ii* <'exe{test}: cxx{driver} mxx{core}' 2>>EOE != 0
driver.cxx: error: failed to correctly guess module name from mxx{core}
info: guessed: bar.core
info: actual: foo.core
@@ -202,15 +205,11 @@ $* test clean <<EOI
:
: Test global module fragment/leading module marker (module;).
:
-if ($cxx.id != 'msvc') # Disabled for MSVC due to issue 845845.
-{
cat <<EOI >=g.hxx;
void g ();
EOI
cat <<EOI >=core.mxx;
-#if __cpp_modules >= 201810
module;
-#endif
#include "g.hxx"
EOI
@@ -219,7 +218,6 @@ ln -s ../core.cxx ../driver.cxx ./;
$* test clean <<EOI
exe{test}: cxx{driver} {mxx cxx}{core}
EOI
-}
: re-export
:
@@ -351,7 +349,7 @@ $* test --verbose 1 <<EOI 2>>EOE;
exe{test}: cxx{driver} {mxx}{foo-core}
exe{test}: test.arguments = two
EOI
- c++ cxx{driver}
+ c++ cxx{driver} -> obje{driver}
ld exe{test}
test exe{test}
EOE
@@ -370,20 +368,28 @@ cat <<EOI >=core.mxx;
export __symexport int f (int);
- __symexport int g_impl (int i) {return i - 1;}
+ __symexport int g_impl (int i);
export __symexport inline int g (int i) {return g_impl (i);}
+
+ export __symexport int v1 = 1;
+ export __symexport extern int v2;
EOI
ln -s ../core.cxx core-f.cxx;
cat <<EOI >=core-g.cxx;
module foo.core;
int g_impl (int i) {return i - 1;}
+ int v = 1;
+ EOI
+cat <<EOI >=core-v.cxx;
+ module foo.core;
+ int v2 = -1;
EOI
cat <<EOI >=driver.cxx;
import foo.core;
- int main (int argc, char*[]) {return f (argc) + g (argc);}
+ int main (int argc, char*[]) {return f (argc) + g (argc) + v1 + v2;}
EOI
$* test clean <<EOI
./: lib{foo} exe{test} # Full build.
exe{test}: cxx{driver} lib{foo}
- lib{foo}: mxx{core} cxx{core-f} # @@ VC: core-g
+ lib{foo}: mxx{core} cxx{core-g core-f core-v}
EOI