summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2024-04-08 23:08:57 +0800
committerruki <[email protected]>2024-04-08 23:08:57 +0800
commitf64943bd2dacfb0790472fcbd6eb9731c5e4adc0 (patch)
tree4786ec52cfcf99c0a316ed2100c17806e1cc4629
parent61141e77032daef49cc9f627c1f833fcbb00eaba (diff)
add parallel test
-rw-r--r--tests/projects/other/parallel_build/1.cpp2
-rw-r--r--tests/projects/other/parallel_build/2.cpp31
-rw-r--r--tests/projects/other/parallel_build/xmake.lua13
3 files changed, 46 insertions, 0 deletions
diff --git a/tests/projects/other/parallel_build/1.cpp b/tests/projects/other/parallel_build/1.cpp
new file mode 100644
index 000000000..c6dee1602
--- /dev/null
+++ b/tests/projects/other/parallel_build/1.cpp
@@ -0,0 +1,2 @@
+int main(){
+} \ No newline at end of file
diff --git a/tests/projects/other/parallel_build/2.cpp b/tests/projects/other/parallel_build/2.cpp
new file mode 100644
index 000000000..3bedf31ca
--- /dev/null
+++ b/tests/projects/other/parallel_build/2.cpp
@@ -0,0 +1,31 @@
+// Make this object complex and cost longer compile time...
+#include <algorithm>
+#include <any>
+#include <bitset>
+#include <filesystem>
+#include <fstream>
+#include <iostream>
+#include <list>
+#include <map>
+#include <optional>
+#include <queue>
+#include <string>
+#include <unordered_map>
+#include <variant>
+#include <vector>
+
+int main() {
+
+ using Type = std::variant<int8_t, uint8_t, int16_t, uint16_t, int32_t,
+ uint32_t, int64_t, uint64_t, double, float>;
+ Type a, b, c;
+ a = 5;
+ b = 3.0;
+ c = 4.0f;
+ double r;
+ std::visit([&](auto a, auto b, auto c) { r = a + b + c; }, a, b, c);
+ std::visit([&](auto a, auto b, auto c) { r = a + b - c; }, a, b, c);
+ std::visit([&](auto a, auto b, auto c) { r = a - b - c; }, a, b, c);
+ std::visit([&](auto a, auto b, auto c) { r = (a + b + c) * 2; }, a, b, c);
+ std::visit([&](auto a, auto b, auto c) { r = (a + b - c) * 3; }, a, b, c);
+} \ No newline at end of file
diff --git a/tests/projects/other/parallel_build/xmake.lua b/tests/projects/other/parallel_build/xmake.lua
new file mode 100644
index 000000000..e84b8a6e5
--- /dev/null
+++ b/tests/projects/other/parallel_build/xmake.lua
@@ -0,0 +1,13 @@
+-- These targets should compiled and linked concurrently.
+add_rules("mode.release", "mode.debug", "mode.releasedbg")
+set_policy("build.ccache", false)
+
+target("first")
+ set_kind("binary")
+ add_files("1.cpp")
+ set_languages("clatest", "cxx20")
+
+target("second")
+ set_kind("binary")
+ add_files("2.cpp")
+ set_languages("clatest", "cxx20")