diff options
| author | ruki <[email protected]> | 2025-08-06 22:42:52 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2025-08-06 22:42:52 +0800 |
| commit | adfe022471427f1cdf0238db80f809c51ed9a753 (patch) | |
| tree | a3e00bc9d3dee87501d3967601f09b6325f01f40 /tests | |
| parent | 5ad9382acadf3a5d9e6cbe29ba408847b45148a1 (diff) | |
add linkgroups test
Diffstat (limited to 'tests')
9 files changed, 107 insertions, 0 deletions
diff --git a/tests/projects/c++/package_linkgroups/3rd/dpdk/src/add.cc b/tests/projects/c++/package_linkgroups/3rd/dpdk/src/add.cc new file mode 100644 index 000000000..67b10df8c --- /dev/null +++ b/tests/projects/c++/package_linkgroups/3rd/dpdk/src/add.cc @@ -0,0 +1,5 @@ +#include "add.h" + +int add(int x, int y) { + return x + y; +} diff --git a/tests/projects/c++/package_linkgroups/3rd/dpdk/src/add.h b/tests/projects/c++/package_linkgroups/3rd/dpdk/src/add.h new file mode 100644 index 000000000..43073ff76 --- /dev/null +++ b/tests/projects/c++/package_linkgroups/3rd/dpdk/src/add.h @@ -0,0 +1,3 @@ +#pragma once + +int add(int x, int y); diff --git a/tests/projects/c++/package_linkgroups/3rd/dpdk/xmake.lua b/tests/projects/c++/package_linkgroups/3rd/dpdk/xmake.lua new file mode 100644 index 000000000..8b10c9c7a --- /dev/null +++ b/tests/projects/c++/package_linkgroups/3rd/dpdk/xmake.lua @@ -0,0 +1,7 @@ +add_rules("mode.debug", "mode.release") + +target("dpdk_add") + set_kind("static") + add_files("src/add.cc") + add_headerfiles("src/*.h") + diff --git a/tests/projects/c++/package_linkgroups/3rd/spdk/src/mul.cc b/tests/projects/c++/package_linkgroups/3rd/spdk/src/mul.cc new file mode 100644 index 000000000..d56a165a4 --- /dev/null +++ b/tests/projects/c++/package_linkgroups/3rd/spdk/src/mul.cc @@ -0,0 +1,10 @@ +#include "mul.h" +#include "add.h" + +int mul(int x, int y) { + int result = 0; + for (int i = 0; i < y; i++) { + result = add(result, x); + } + return result; +} diff --git a/tests/projects/c++/package_linkgroups/3rd/spdk/src/mul.h b/tests/projects/c++/package_linkgroups/3rd/spdk/src/mul.h new file mode 100644 index 000000000..a025f44bd --- /dev/null +++ b/tests/projects/c++/package_linkgroups/3rd/spdk/src/mul.h @@ -0,0 +1,3 @@ +#pragma once + +int mul(int x, int y); diff --git a/tests/projects/c++/package_linkgroups/3rd/spdk/xmake.lua b/tests/projects/c++/package_linkgroups/3rd/spdk/xmake.lua new file mode 100644 index 000000000..329663840 --- /dev/null +++ b/tests/projects/c++/package_linkgroups/3rd/spdk/xmake.lua @@ -0,0 +1,22 @@ +add_rules("mode.debug", "mode.release") + +package("dpdk") + set_sourcedir(path.join(os.scriptdir(), "../../3rd/dpdk")) + on_install("linux", function (package) + import("package.tools.xmake").install(package) + end) + on_test(function (package) + assert(package:has_cxxincludes("add.h")) + end) +package_end() + +add_includedirs("src") + +add_requires("dpdk") + +target("spdk_mul") + set_kind("static") + add_files("src/mul.cc") + add_headerfiles("src/*.h") + add_packages("dpdk") + diff --git a/tests/projects/c++/package_linkgroups/src/main.cc b/tests/projects/c++/package_linkgroups/src/main.cc new file mode 100644 index 000000000..3115830fe --- /dev/null +++ b/tests/projects/c++/package_linkgroups/src/main.cc @@ -0,0 +1,9 @@ +#include <iostream> +#include "mul.h" + + +int main(int argc, char** argv) { + int s = mul(3, 4); + std::cout << "hello world! " << s << std::endl; + return 0; +} diff --git a/tests/projects/c++/package_linkgroups/test.lua b/tests/projects/c++/package_linkgroups/test.lua new file mode 100644 index 000000000..704959e28 --- /dev/null +++ b/tests/projects/c++/package_linkgroups/test.lua @@ -0,0 +1,13 @@ +function main(t) + + -- freebsd ci is slower + if is_host("bsd") then + return + end + + -- only for x86/x64, because it will take too long time on ci with arm/mips + if os.subarch():startswith("x") or os.subarch() == "i386" then + t:build() + end +end + diff --git a/tests/projects/c++/package_linkgroups/xmake.lua b/tests/projects/c++/package_linkgroups/xmake.lua new file mode 100644 index 000000000..fcc4b5edf --- /dev/null +++ b/tests/projects/c++/package_linkgroups/xmake.lua @@ -0,0 +1,35 @@ +add_rules("mode.debug", "mode.release") + +package("dpdk") + set_sourcedir(path.join(os.scriptdir(), "3rd/dpdk")) + add_links("dpdk_add") + add_linkgroups("dpdk_add", {name = "dpdk", whole = true, group = true}) + on_install("linux", function (package) + import("package.tools.xmake").install(package) + end) + on_test(function (package) + assert(package:has_cxxincludes("add.h")) + end) +package_end() + +package("spdk") + set_sourcedir(path.join(os.scriptdir(), "3rd/spdk")) + add_deps("dpdk") + add_links("spdk_mul") + add_linkgroups("spdk_mul", {name = "dpdk", whole = true, group = true}) + on_install("linux", function (package) + import("package.tools.xmake").install(package) + end) + on_test(function (package) + assert(package:has_cxxincludes("mul.h")) + end) +package_end() + +add_requires("spdk") + +target("test") + set_kind("binary") + add_files("src/main.cc") + add_packages("spdk") + add_includedirs("src") + |
