1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 18:27:35 +00:00

Meta: Add LibTest and Tests/AK to gn build

This commit is contained in:
Andrew Kaster 2023-05-05 12:17:26 -06:00 committed by Andrew Kaster
parent 4bfb146181
commit cbda1a6c73
5 changed files with 183 additions and 1 deletions

View file

@ -1,7 +1,8 @@
import("//Meta/gn/build/toolchain/compiler.gni")
group("default") {
deps = [ "//Userland/Libraries/LibCore" ]
deps = [ "//Tests" ]
testonly = true
}
# A pool called "console" in the root BUILD.gn is magic and represents ninja's

View file

@ -0,0 +1,106 @@
import("//Tests/unittest.gni")
tests = [
"TestAllOf",
"TestAnyOf",
"TestArbitrarySizedEnum",
"TestArray",
"TestAtomic",
"TestBadge",
"TestBase64",
"TestBinaryHeap",
"TestBinarySearch",
"TestBitCast",
"TestBitmap",
"TestBitStream",
"TestBuiltinWrappers",
"TestByteBuffer",
"TestCharacterTypes",
"TestChecked",
"TestCircularBuffer",
"TestCircularDeque",
"TestCircularQueue",
"TestComplex",
"TestDeprecatedString",
"TestDisjointChunks",
"TestDistinctNumeric",
"TestDoublyLinkedList",
"TestDuration",
"TestEndian",
"TestEnumBits",
"TestFind",
"TestFixedArray",
"TestFixedPoint",
"TestFloatingPoint",
"TestFloatingPointParsing",
"TestFlyString",
"TestFormat",
"TestGenericLexer",
"TestHashFunctions",
"TestHashMap",
"TestHashTable",
"TestHex",
"TestIPv4Address",
"TestIPv6Address",
"TestIndexSequence",
"TestInsertionSort",
"TestIntegerMath",
"TestIntrusiveList",
"TestIntrusiveRedBlackTree",
"TestJSON",
"TestLEB128",
"TestLexicalPath",
"TestMACAddress",
"TestMemory",
"TestMemoryStream",
"TestNeverDestroyed",
"TestNonnullRefPtr",
"TestNumberFormat",
"TestOptional",
"TestOwnPtr",
"TestPrint",
"TestQueue",
"TestQuickSelect",
"TestQuickSort",
"TestRedBlackTree",
"TestRefPtr",
"TestSIMD",
"TestSinglyLinkedList",
"TestSourceGenerator",
"TestSourceLocation",
"TestSpan",
"TestStack",
"TestStatistics",
"TestStdLibExtras",
"TestStringFloatingPointConversions",
"TestStringUtils",
"TestStringView",
"TestTrie",
"TestTuple",
"TestTypeTraits",
"TestTypedTransfer",
"TestUFixedBigInt",
"TestURL",
"TestUtf16",
"TestUtf8",
"TestVariant",
"TestVector",
"TestWeakPtr",
]
# FIXME: "TestString", when LibUnicode is available
foreach(test_name, tests) {
unittest(test_name) {
include_dirs = [ "//Userland/Libraries" ]
sources = [ test_name + ".cpp" ]
}
}
group("AK") {
deps = []
foreach(test_name, tests) {
deps += [ ":" + test_name ]
}
testonly = true
}

View file

@ -0,0 +1,4 @@
group("Tests") {
deps = [ "//Tests/AK" ]
testonly = true
}

View file

@ -0,0 +1,28 @@
template("unittest") {
executable(target_name) {
has_custom_main = false
use_js_main = false
# Foward everything (has_custom_main if set; configs, sources, deps, ...).
forward_variables_from(invoker, "*")
assert(!defined(invoker.output_dir), "cannot set unittest output_dir")
assert(!defined(invoker.testonly), "cannot set unittest testonly")
output_dir = target_out_dir
deps = [ "//AK" ]
if (has_custom_main) {
deps += [ "//Userland/Libraries/LibTest" ]
} else if (use_js_main) {
deps += [ "//Userland/Libraries/LibTest:test_js_main" ]
} else {
deps += [ "//Userland/Libraries/LibTest:test_main" ]
}
if (current_os != "serenity") {
deps += [ "//Userland/Libraries/LibCore" ]
}
testonly = true
}
}

View file

@ -0,0 +1,43 @@
shared_library("LibTest") {
output_name = "test"
include_dirs = [ "//Userland/Libraries" ]
sources = [
"CrashTest.cpp",
"CrashTest.h",
"Macros.h",
"Results.h",
"TestCase.h",
"TestRunner.h",
"TestRunnerUtil.h",
"TestSuite.cpp",
"TestSuite.h",
]
deps = [ "//AK" ]
if (current_os != "serenity") {
deps += [ "//Userland/Libraries/LibCore" ]
}
output_name = "test"
testonly = true
}
source_set("test_main") {
include_dirs = [ "//Userland/Libraries" ]
sources = [ "TestMain.cpp" ]
deps = [ "//AK" ]
public_deps = [ ":LibTest" ]
testonly = true
}
source_set("test_js_main") {
include_dirs = [ "//Userland/Libraries" ]
sources = [
"JavaScriptTestRunner.h",
"JavaScriptTestRunnerMain.cpp",
]
deps = [ "//AK" ]
public_deps = [ ":LibTest" ]
testonly = true
}