diff options
| author | ruki <[email protected]> | 2024-09-16 23:55:20 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2024-09-16 23:55:20 +0800 |
| commit | 1a44c4f4712650117c5303e1fef87d812983f30f (patch) | |
| tree | 94c7c5d04f0fcb3964350678a69d37018f8e1614 | |
| parent | 647b1efa1d3646ed0e753e3b41d0fa3486313e63 (diff) | |
improve tests
| -rw-r--r-- | tests/plugins/macro/.gitignore | 8 | ||||
| -rw-r--r-- | tests/plugins/macro/src/main.cpp | 6 | ||||
| -rw-r--r-- | tests/plugins/macro/test.lua | 11 | ||||
| -rw-r--r-- | tests/plugins/macro/xmake.lua | 75 | ||||
| -rw-r--r-- | tests/test_utils/context.lua | 4 | ||||
| -rw-r--r-- | tests/test_utils/test_build.lua | 31 |
6 files changed, 103 insertions, 32 deletions
diff --git a/tests/plugins/macro/.gitignore b/tests/plugins/macro/.gitignore new file mode 100644 index 000000000..152105761 --- /dev/null +++ b/tests/plugins/macro/.gitignore @@ -0,0 +1,8 @@ +# Xmake cache +.xmake/ +build/ + +# MacOS Cache +.DS_Store + + diff --git a/tests/plugins/macro/src/main.cpp b/tests/plugins/macro/src/main.cpp new file mode 100644 index 000000000..7c775d288 --- /dev/null +++ b/tests/plugins/macro/src/main.cpp @@ -0,0 +1,6 @@ +#include <iostream> + +int main(int argc, char** argv) { + std::cout << "hello world!" << std::endl; + return 0; +} diff --git a/tests/plugins/macro/test.lua b/tests/plugins/macro/test.lua new file mode 100644 index 000000000..54955a21d --- /dev/null +++ b/tests/plugins/macro/test.lua @@ -0,0 +1,11 @@ +function test_macro(t) + -- we force to enable ccache to test it on ci + os.exec("xmake f --mode=debug --policies=build.ccache:y -D -y") + os.exec("xmake m -b") + os.exec("xmake -r -a -D") + os.exec("xmake m -e buildtest") + os.exec("xmake m -l") + os.exec("xmake m buildtest") + os.exec("xmake m -d buildtest") +end + diff --git a/tests/plugins/macro/xmake.lua b/tests/plugins/macro/xmake.lua new file mode 100644 index 000000000..22e7de5d9 --- /dev/null +++ b/tests/plugins/macro/xmake.lua @@ -0,0 +1,75 @@ +add_rules("mode.debug", "mode.release") + +target("macro") + set_kind("binary") + add_files("src/*.cpp") + +-- +-- If you want to known more usage about xmake, please see https://xmake.io +-- +-- ## FAQ +-- +-- You can enter the project directory firstly before building project. +-- +-- $ cd projectdir +-- +-- 1. How to build project? +-- +-- $ xmake +-- +-- 2. How to configure project? +-- +-- $ xmake f -p [macosx|linux|iphoneos ..] -a [x86_64|i386|arm64 ..] -m [debug|release] +-- +-- 3. Where is the build output directory? +-- +-- The default output directory is `./build` and you can configure the output directory. +-- +-- $ xmake f -o outputdir +-- $ xmake +-- +-- 4. How to run and debug target after building project? +-- +-- $ xmake run [targetname] +-- $ xmake run -d [targetname] +-- +-- 5. How to install target to the system directory or other output directory? +-- +-- $ xmake install +-- $ xmake install -o installdir +-- +-- 6. Add some frequently-used compilation flags in xmake.lua +-- +-- @code +-- -- add debug and release modes +-- add_rules("mode.debug", "mode.release") +-- +-- -- add macro definition +-- add_defines("NDEBUG", "_GNU_SOURCE=1") +-- +-- -- set warning all as error +-- set_warnings("all", "error") +-- +-- -- set language: c99, c++11 +-- set_languages("c99", "c++11") +-- +-- -- set optimization: none, faster, fastest, smallest +-- set_optimize("fastest") +-- +-- -- add include search directories +-- add_includedirs("/usr/include", "/usr/local/include") +-- +-- -- add link libraries and search directories +-- add_links("tbox") +-- add_linkdirs("/usr/local/lib", "/usr/lib") +-- +-- -- add system link libraries +-- add_syslinks("z", "pthread") +-- +-- -- add compilation and link flags +-- add_cxflags("-stdnolib", "-fno-strict-aliasing") +-- add_ldflags("-L/usr/local/lib", "-lpthread", {force = true}) +-- +-- @endcode +-- + diff --git a/tests/test_utils/context.lua b/tests/test_utils/context.lua index 50271ac76..06cd5b6d6 100644 --- a/tests/test_utils/context.lua +++ b/tests/test_utils/context.lua @@ -3,11 +3,9 @@ import("test_skip") import("test_assert") function main(filename) - local context = { filename = filename } table.join2(context, test_build()) table.join2(context, test_skip()) table.join2(context, test_assert()) - return context -end
\ No newline at end of file +end diff --git a/tests/test_utils/test_build.lua b/tests/test_utils/test_build.lua index 43941d320..a54832275 100644 --- a/tests/test_utils/test_build.lua +++ b/tests/test_utils/test_build.lua @@ -1,37 +1,10 @@ --- imports -import("privilege.sudo") - local test_build = {} function test_build:build(argv) - - -- check global config - os.exec("xmake g -c") - - -- generic? os.exec("xmake f -c -D -y") os.exec("xmake") - os.exec("xmake p -D") - if not is_host("windows") then - os.exec("xmake install -o $(tmpdir) -a -D") - os.exec("xmake uninstall --installdir=$(tmpdir) -D") - end - os.exec("xmake c -D") - -- we force to enable ccache to test it on ci - os.exec("xmake f --mode=debug --policies=build.ccache:y -D -y") - os.exec("xmake m -b") - os.exec("xmake -r -a -D") - os.exec("xmake m -e buildtest") - os.exec("xmake m -l") - os.exec("xmake m buildtest") - os.exec("xmake m -d buildtest") - - -- test iphoneos? - if argv and argv.iphoneos then - if is_host("macosx") then - os.exec("xmake m package -p iphoneos") - end - end + os.exec("xmake f -c -D -y --policy=compatibility.version=3.0") + os.exec("xmake -r") end function main() |
