summaryrefslogtreecommitdiff
path: root/tests/projects/c++/modules
diff options
context:
space:
mode:
authorruki <[email protected]>2024-03-14 00:53:55 +0800
committerruki <[email protected]>2024-03-14 00:53:55 +0800
commit83abf6ad653df37a750c63afa7cae2acf03e11a4 (patch)
treed9f35d4497eb9a595398ffe2d97d39226eb539bc /tests/projects/c++/modules
parented96baab01f8e2d419788ecf485502f6e5509b7e (diff)
improve test again
Diffstat (limited to 'tests/projects/c++/modules')
-rw-r--r--tests/projects/c++/modules/partitions_implunit/src/foo.cpp8
-rw-r--r--tests/projects/c++/modules/partitions_implunit/src/foo.mpp6
-rw-r--r--tests/projects/c++/modules/partitions_implunit/src/foo_impl.mpp10
-rw-r--r--tests/projects/c++/modules/partitions_implunit/src/main.cpp5
-rw-r--r--tests/projects/c++/modules/partitions_implunit/src/math.cpp13
-rw-r--r--tests/projects/c++/modules/partitions_implunit/src/math.mpp6
-rw-r--r--tests/projects/c++/modules/partitions_implunit/src/math_impl.mpp6
7 files changed, 26 insertions, 28 deletions
diff --git a/tests/projects/c++/modules/partitions_implunit/src/foo.cpp b/tests/projects/c++/modules/partitions_implunit/src/foo.cpp
new file mode 100644
index 000000000..d2e8d2a52
--- /dev/null
+++ b/tests/projects/c++/modules/partitions_implunit/src/foo.cpp
@@ -0,0 +1,8 @@
+// Foo.cpp
+module Foo;
+
+import :Impl;
+
+void foo() {
+ bar();
+}
diff --git a/tests/projects/c++/modules/partitions_implunit/src/foo.mpp b/tests/projects/c++/modules/partitions_implunit/src/foo.mpp
new file mode 100644
index 000000000..65de99bed
--- /dev/null
+++ b/tests/projects/c++/modules/partitions_implunit/src/foo.mpp
@@ -0,0 +1,6 @@
+// Foo.mpp
+export module Foo;
+
+import :Impl; // can't export import Impl because Impl is a implementation partition unit
+
+export void foo();
diff --git a/tests/projects/c++/modules/partitions_implunit/src/foo_impl.mpp b/tests/projects/c++/modules/partitions_implunit/src/foo_impl.mpp
new file mode 100644
index 000000000..79ed77d31
--- /dev/null
+++ b/tests/projects/c++/modules/partitions_implunit/src/foo_impl.mpp
@@ -0,0 +1,10 @@
+module;
+#include <iostream>
+
+// Foo-Impl.mpp
+// can only be imported by module Foo, and visibility of bar is only public to module Foo
+module Foo:Impl;
+
+export void bar() {
+ std::cout << "Hello world" << std::endl;
+}
diff --git a/tests/projects/c++/modules/partitions_implunit/src/main.cpp b/tests/projects/c++/modules/partitions_implunit/src/main.cpp
index c8c0bfd65..acef780c2 100644
--- a/tests/projects/c++/modules/partitions_implunit/src/main.cpp
+++ b/tests/projects/c++/modules/partitions_implunit/src/main.cpp
@@ -1,7 +1,6 @@
-import math;
+import Foo;
int main(int argc, char** argv) {
- auto a{ Math::lerchZeta(1, 2, 3) };
- auto b{ Math::superLog(1, 2) };
+ foo();
return 0;
}
diff --git a/tests/projects/c++/modules/partitions_implunit/src/math.cpp b/tests/projects/c++/modules/partitions_implunit/src/math.cpp
deleted file mode 100644
index 3651adb2d..000000000
--- a/tests/projects/c++/modules/partitions_implunit/src/math.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-module math;
-
-import :details;
-
-double Math::superLog(double z, double b) {
- // Implementation omitted...
- return someHelperFunction(z);
-}
-
-double Math::lerchZeta(double lambda, double alpha, double s) {
- // Implementation omitted...
- return someHelperFunction(s);
-}
diff --git a/tests/projects/c++/modules/partitions_implunit/src/math.mpp b/tests/projects/c++/modules/partitions_implunit/src/math.mpp
deleted file mode 100644
index e9d5fb85a..000000000
--- a/tests/projects/c++/modules/partitions_implunit/src/math.mpp
+++ /dev/null
@@ -1,6 +0,0 @@
-export module math; // math module declaration
-
-export namespace Math {
- double superLog(double z, double b);
- double lerchZeta(double lambda, double alpha, double s);
-}
diff --git a/tests/projects/c++/modules/partitions_implunit/src/math_impl.mpp b/tests/projects/c++/modules/partitions_implunit/src/math_impl.mpp
deleted file mode 100644
index 17d5afaf4..000000000
--- a/tests/projects/c++/modules/partitions_implunit/src/math_impl.mpp
+++ /dev/null
@@ -1,6 +0,0 @@
-module math:details; // math:details implementation partition
-
-double someHelperFunction(double a) {
- // Implementation omitted...
- return 42;
-}