summaryrefslogtreecommitdiffstats
path: root/src/VBox/Runtime/testcase/Makefile.kmk
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/Runtime/testcase/Makefile.kmk')
-rw-r--r--src/VBox/Runtime/testcase/Makefile.kmk1127
1 files changed, 1127 insertions, 0 deletions
diff --git a/src/VBox/Runtime/testcase/Makefile.kmk b/src/VBox/Runtime/testcase/Makefile.kmk
new file mode 100644
index 00000000..c3a097b8
--- /dev/null
+++ b/src/VBox/Runtime/testcase/Makefile.kmk
@@ -0,0 +1,1127 @@
+# $Id: Makefile.kmk $
+## @file
+# Sub-Makefile for the IPRT testcases.
+#
+
+#
+# Copyright (C) 2006-2023 Oracle and/or its affiliates.
+#
+# This file is part of VirtualBox base platform packages, as
+# available from https://www.virtualbox.org.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation, in version 3 of the
+# License.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <https://www.gnu.org/licenses>.
+#
+# The contents of this file may alternatively be used under the terms
+# of the Common Development and Distribution License Version 1.0
+# (CDDL), a copy of it is provided in the "COPYING.CDDL" file included
+# in the VirtualBox distribution, in which case the provisions of the
+# CDDL are applicable instead of those of the GPL.
+#
+# You may elect to license modified versions of this file under the
+# terms and conditions of either the GPL or the CDDL or both.
+#
+# SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0
+#
+
+SUB_DEPTH = ../../../..
+include $(KBUILD_PATH)/subheader.kmk
+
+ifdef VBOX_WITH_TESTCASES # The whole file
+
+ #
+ # Include the Validation Kit configuration to make use of build templates needed
+ # for testcases to be included on the Validation Kit .ISO.
+ #
+ ifdef VBOX_WITH_VALIDATIONKIT_UNITTESTS_PACKING
+ ifndef VBOX_VALIDATIONKIT_CONFIG_KMK_INCLUDED
+ include $(PATH_ROOT)/src/VBox/ValidationKit/Config.kmk
+ endif
+ endif
+
+
+ #
+ # Globals
+ #
+ # WARNING: Careful with this wrt to the other sub-makefiles this joins.
+ #
+ TEMPLATE = VBoxR3TstExe
+
+ # Defined by the parent makefile as well (for errmsgdata.h).
+ IPRT_OUT_DIR ?= $(PATH_TARGET)/Runtime
+
+
+ #
+ # Target lists
+ #
+ ifndef VBOX_ONLY_VALIDATIONKIT
+ PROGRAMS += \
+ tstRTAssertCompile \
+ tstRTAvl \
+ tstRTBase64 \
+ tstRTBitOperations \
+ tstRTBigNum \
+ tstRTCidr \
+ tstRTCritSect \
+ tstRTCritSectRw \
+ tstRTCrPkix-1 \
+ tstRTCrX509-1 \
+ tstRTCType \
+ tstRTDigest \
+ tstRTDigest-2 \
+ tstDir \
+ tstDir-2 \
+ tstDir-3 \
+ tstRTDvm \
+ tstRTEnv \
+ tstRTErr-1 \
+ tstFile \
+ tstRTFileAio \
+ tstRTFileAppend-1 \
+ tstRTFileQuerySize-1 \
+ tstRTFileModeStringToFlags \
+ tstFileLock \
+ tstRTFileOpenEx-1 \
+ tstFork \
+ tstRTFsQueries \
+ tstRTFilesystem \
+ tstRTExprEval \
+ tstRTGetOpt \
+ tstRTGetOptArgv \
+ tstHandleTable \
+ tstRTHeapOffset \
+ tstRTHeapSimple \
+ tstRTInlineAsm \
+ tstIprtList \
+ tstIprtMiniList \
+ tstIprtMiniString \
+ tstLdr \
+ tstLdrLoad \
+ tstRTLocalIpc \
+ tstRTLdrVerifyPeImage \
+ tstRTList \
+ tstRTLockValidator \
+ tstLog \
+ tstRTMath \
+ tstRTMemEf \
+ tstRTMemCache \
+ tstRTMemPool \
+ tstRTMemWipe \
+ tstRTMemSafer \
+ tstMove \
+ tstRTMp-1 \
+ tstRTNetIPv4 \
+ tstRTNetIPv6 \
+ tstOnce \
+ tstRTPath \
+ tstRTPathGlob \
+ tstRTPathQueryInfo \
+ tstRTPipe \
+ tstRTPoll \
+ tstRTPrfIO \
+ tstRTProcCreateEx \
+ tstRTProcCreatePrf \
+ tstRTProcQueryUsername \
+ tstPrfRT \
+ tstRand \
+ tstRTReqPool \
+ tstRTSemEvent \
+ tstRTSemEventMulti \
+ tstSemMutex \
+ tstSemPingPong \
+ tstRTSemRW \
+ tstRTSemXRoads \
+ tstRTSort \
+ tstRTStrAlloc \
+ tstRTStrCache \
+ tstRTStrCatCopy \
+ tstRTStrFormat \
+ tstRTStrSplit \
+ tstRTStrSimplePattern \
+ tstStrToNum \
+ tstRTStrVersion \
+ tstRTSymlink \
+ tstRTSystemQueryDmi \
+ tstRTSystemQueryFirmware \
+ tstRTSystemQueryOsInfo \
+ tstRTTcp-1 \
+ tstRTTemp \
+ tstRTDirCreateUniqueNumbered \
+ tstTermCallbacks \
+ tstThread-1 \
+ tstRTThreadPoke \
+ tstRTThreadExecutionTime \
+ tstRTTime \
+ tstTime-2 \
+ tstTime-3 \
+ tstTime-4 \
+ tstTimer \
+ tstRTTimerLR \
+ tstRTTimeSpec \
+ tstRTTls-1 \
+ tstRTTraceLog \
+ tstRTUdp-1 \
+ tstUtf8 \
+ tstRTUuid \
+ tstRTCircBuf \
+ tstRTManifest \
+ tstRTUri \
+ tstVector \
+ tstRTVfs \
+ tstRTZip \
+ tstRTJson \
+ tstRTShMem
+
+ PROGRAMS.win += \
+ tstRTCritSectW32 \
+ tstRTProcWait \
+ tstFileAppendWin-1 \
+ tstRTNtPath-1 \
+ ntGetTimerResolution \
+ tstRTDarwinMachKernel
+
+ PROGRAMS.linux += \
+ tstRTProcWait \
+ tstRTProcIsRunningByName \
+ tstRTBitOperationsPIC3 \
+ tstRTInlineAsmPIC \
+ tstRTInlineAsmPIC3
+ PROGRAMS.solaris += \
+ tstRTCoreDump
+ PROGRAMS.darwin += \
+ tstDarwinSched \
+ tstRTDarwinMachKernel
+ ifdef VBOX_WITH_LIBCURL
+ PROGRAMS += \
+ tstRTHttp-1 \
+ tstRTCRest-1
+ endif
+
+ if1of ($(KBUILD_TARGET_ARCH), x86 amd64)
+ PROGRAMS += \
+ tstNoCrt-1
+ if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), win.amd64) ## Build and test x86 too!
+ PROGRAMS += tstRTNoCrt-2
+ endif
+ if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), win.x86 win.amd64)
+ PROGRAMS += tstRTNoCrt-3 tstRTNoCrt-3r tstRTNoCrt-4
+ endif
+ endif
+
+ if defined(VBOX_WITH_R0_MODULES)
+ PROGRAMS += \
+ tstLdr-2 \
+ tstLdr-3 \
+ tstLdr-4 \
+ tstTSC
+ if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win"
+ PROGRAMS += \
+ tstRTR0MemUserKernelDriverHardened \
+ tstRTR0SemMutexDriverHardened \
+ tstRTR0TimerDriverHardened \
+ tstRTR0ThreadPreemptionDriverHardened \
+ tstRTR0ThreadDriverHardened
+ DLLS += \
+ tstRTR0MemUserKernelDriver \
+ tstRTR0SemMutexDriver \
+ tstRTR0TimerDriver \
+ tstRTR0ThreadPreemptionDriver \
+ tstRTR0ThreadDriver
+ else
+ PROGRAMS += \
+ tstRTR0MemUserKernelDriver \
+ tstRTR0SemMutexDriver \
+ tstRTR0TimerDriver \
+ tstRTR0ThreadPreemptionDriver \
+ tstRTR0ThreadDriver
+ endif
+ if1of ($(KBUILD_TARGET_ARCH), $(VBOX_SUPPORTED_HOST_ARCHS))
+ $(if-expr defined(VBOX_WITH_VBOXR0_AS_DLL),DLLS,SYSMODS) += \
+ tstLdrObjR0
+ ifdef VBOX_WITH_RAW_MODE
+ SYSMODS += tstLdrObj
+ endif
+ endif
+ $(if-expr defined(VBOX_WITH_VBOXR0_AS_DLL),DLLS,SYSMODS) += \
+ tstRTR0MemUserKernel \
+ tstRTR0SemMutex \
+ tstRTR0Timer \
+ tstRTR0ThreadPreemption \
+ tstRTR0Thread
+ if1of ($(KBUILD_TARGET), solaris darwin)
+ PROGRAMS += tstRTR0DbgKrnlInfoDriver
+ $(if-expr defined(VBOX_WITH_VBOXR0_AS_DLL),DLLS,SYSMODS) += tstRTR0DbgKrnlInfo
+ endif # VBOX_SUPPORTED_HOST_ARCHS only
+
+ endif
+ if1of ($(VBOX_LDR_FMT)), lx pe)
+ LIBRARIES += \
+ tstLdr-4Imp
+ endif
+
+ endif # !VBOX_ONLY_VALIDATIONKIT
+
+
+ #
+ # Target configs in almost alphabetical order.
+ #
+
+ tstRTAssertCompile_TEMPLATE = VBoxR3TstExe
+ tstRTAssertCompile_INSTTYPE = none
+ tstRTAssertCompile_SOURCES = tstRTAssertCompile.cpp
+
+ tstRTAvl_TEMPLATE = VBoxR3TstExe
+ tstRTAvl_SOURCES = tstRTAvl.cpp
+
+ tstRTBase64_TEMPLATE = VBoxR3TstExe
+ tstRTBase64_SOURCES = tstRTBase64.cpp
+
+ tstRTBigNum_TEMPLATE = VBoxR3TstExe
+ tstRTBigNum_SOURCES = tstRTBigNum.cpp
+ tstRTBigNum_SDKS = VBoxOpenSsl
+ tstRTBigNum_CXXFLAGS.win = -bigobj
+
+ tstRTBitOperations_TEMPLATE = VBoxR3TstExe
+ tstRTBitOperations_SOURCES = tstRTBitOperations.cpp
+
+ tstRTBitOperationsPIC3_TEMPLATE = VBoxR3TstExe
+ tstRTBitOperationsPIC3_SOURCES = tstRTBitOperations.cpp
+ tstRTBitOperationsPIC3_CXXFLAGS = -fPIC -fomit-frame-pointer -O3
+ tstRTBitOperationsPIC3_DEFS = PIC
+
+ tstRTCidr_TEMPLATE = VBoxR3TstExe
+ tstRTCidr_SOURCES = tstRTCidr.cpp
+
+ tstRTCritSect_TEMPLATE = VBoxR3TstExe
+ tstRTCritSect_SOURCES = tstRTCritSect.cpp
+
+ tstRTCritSectRw_TEMPLATE = VBoxR3TstExe
+ tstRTCritSectRw_SOURCES = tstRTCritSectRw.cpp
+
+ tstRTCritSectW32_TEMPLATE = VBoxR3TstExe
+ tstRTCritSectW32_SOURCES = tstRTCritSect.cpp
+ tstRTCritSectW32_DEFS = TRY_WIN32_CRIT
+
+ tstRTCrPkix-1_TEMPLATE = VBoxR3TstExe
+ tstRTCrPkix-1_SOURCES = tstRTCrPkix-1.cpp
+
+ ifndef VBOX_ONLY_VALIDATIONKIT
+ tstRTCrX509-1_TEMPLATE = VBoxR3TstExe
+ tstRTCrX509-1_SOURCES = tstRTCrX509-1.cpp
+ tstRTCrX509-1_INCS = $(tstRTCrX509-1_0_OUTDIR)
+ tstRTCrX509-1_CLEAN = $(tstRTCrX509-1_0_OUTDIR)/tstRTCrX509-1.h
+ tstRTCrX509-1_INTERMEDIATES = $(tstRTCrX509-1_0_OUTDIR)/tstRTCrX509-1.h
+ tstRTCrX509-1_VBOX_FILES := \
+ Pem_md4=$(PATH_SUB_CURRENT)/tstRTCrX509-md4.pem \
+ Pem_md5=$(PATH_SUB_CURRENT)/tstRTCrX509-md5.pem \
+ Pem_sha1=$(PATH_SUB_CURRENT)/tstRTCrX509-sha1.pem \
+ Pem_sha224=$(PATH_SUB_CURRENT)/tstRTCrX509-sha224.pem \
+ Pem_sha256=$(PATH_SUB_CURRENT)/tstRTCrX509-sha256.pem \
+ Pem_sha384=$(PATH_SUB_CURRENT)/tstRTCrX509-sha384.pem \
+ Pem_sha512=$(PATH_SUB_CURRENT)/tstRTCrX509-sha512.pem \
+ Pem_cert1=$(PATH_SUB_CURRENT)/tstRTCrX509-cert1.pem \
+ \
+ Der_md4=$(PATH_SUB_CURRENT)/tstRTCrX509-md4-cert.der \
+ Der_md5=$(PATH_SUB_CURRENT)/tstRTCrX509-md5-cert.der \
+ Der_sha1=$(PATH_SUB_CURRENT)/tstRTCrX509-sha1-cert.der \
+ Der_sha224=$(PATH_SUB_CURRENT)/tstRTCrX509-sha224-cert.der \
+ Der_sha256=$(PATH_SUB_CURRENT)/tstRTCrX509-sha256-cert.der \
+ Der_sha384=$(PATH_SUB_CURRENT)/tstRTCrX509-sha384-cert.der \
+ Der_sha512=$(PATH_SUB_CURRENT)/tstRTCrX509-sha512-cert.der \
+ Der_cert1=$(PATH_SUB_CURRENT)/tstRTCrX509-cert1.der \
+ $(NO_SUCH_VARIABLE)
+ $$(tstRTCrX509-1_0_OUTDIR)/tstRTCrX509-1.h: \
+ $(foreach file,$(tstRTCrX509-1_VBOX_FILES),$(lastword $(subst =,$(SP) ,$(file)))) \
+ $(VBOX_BIN2C) \
+ | $$(dir $$@)
+ $(RM) -f -- "$@"
+ $(foreach file,$(tstRTCrX509-1_VBOX_FILES) \
+ , $(NLTAB)$(VBOX_BIN2C) -ascii --append \
+ "$(firstword $(subst =,$(SP) ,$(file)))" \
+ "$(lastword $(subst =,$(SP) ,$(file)))" \
+ "$@")
+ endif # !VBOX_ONLY_VALIDATIONKIT
+
+
+ tstRTCType_TEMPLATE = VBoxR3TstExe
+ tstRTCType_SOURCES = tstRTCType.cpp
+
+ ifdef VBOX_WITH_LIBCURL
+ tstRTCRest-1_TEMPLATE = VBoxR3TstExe
+ tstRTCRest-1_SOURCES = tstRTCRest-1.cpp
+ if ("$(KBUILD_TARGET)" == "solaris" && $(VBOX_GCC_VERSION_CXX) <= 70500)
+ tstRTCRest-1_DEFS = VBOX_SOLARIS_WITHOUT_XPG6_ENABLED
+ endif
+ endif
+
+ tstRTDigest_TEMPLATE = VBoxR3TstExe
+ tstRTDigest_SOURCES = tstRTDigest.cpp
+
+ tstRTDigest-2_TEMPLATE = VBoxR3TstExe
+ ifndef VBOX_WITH_ALT_HASH_CODE
+ tstRTDigest-2_DEFS = IPRT_WITHOUT_SHA512T224 IPRT_WITHOUT_SHA512T256
+ endif
+ tstRTDigest-2_SOURCES = tstRTDigest-2.cpp
+
+ ifdef VBOX_WITH_LIBCURL
+ tstRTHttp-1_TEMPLATE = VBoxR3TstExe
+ tstRTHttp-1_SOURCES = tstRTHttp-1.cpp
+ tstRTHttp-1_SDKS = VBoxLibCurl
+ endif
+
+ tstDir_TEMPLATE = VBoxR3TstExe
+ tstDir_SOURCES = tstDir.cpp
+
+ tstDir-2_TEMPLATE = VBoxR3TstExe
+ tstDir-2_SOURCES = tstDir-2.cpp
+
+ tstDir-3_TEMPLATE = VBoxR3TstExe
+ tstDir-3_SOURCES = tstDir-3.cpp
+
+ tstRTDvm_TEMPLATE = VBoxR3TstExe
+ tstRTDvm_SOURCES = tstRTDvm.cpp
+
+ tstRTEnv_TEMPLATE = VBoxR3TstExe
+ tstRTEnv_SOURCES = tstRTEnv.cpp
+
+ tstRTErr-1_TEMPLATE = VBoxR3TstExe
+ tstRTErr-1_SOURCES = tstRTErr-1.cpp
+
+ tstFile_TEMPLATE = VBoxR3TstExe
+ tstFile_SOURCES = tstFile.cpp
+
+ tstRTFileAio_SOURCES = VBoxR3TstExe
+ tstRTFileAio_SOURCES = tstRTFileAio.cpp
+
+ tstRTFileAppend-1_TEMPLATE = VBoxR3TstExe
+ tstRTFileAppend-1_SOURCES = tstRTFileAppend-1.cpp
+
+ tstRTFileQuerySize-1_TEMPLATE = VBoxR3TstExe
+ tstRTFileQuerySize-1_SOURCES = tstRTFileQuerySize-1.cpp
+
+ tstRTFileModeStringToFlags_TEMPLATE = VBoxR3TstExe
+ tstRTFileModeStringToFlags_SOURCES = tstRTFileModeStringToFlags.cpp
+
+ tstRTFileOpenEx-1_TEMPLATE = VBoxR3TstExe
+ tstRTFileOpenEx-1_SOURCES = tstRTFileOpenEx-1.cpp
+
+ tstFileAppendWin-1_TEMPLATE = VBoxR3TstExe
+ tstFileAppendWin-1_SOURCES = tstFileAppendWin-1.cpp
+
+ tstFileLock_TEMPLATE = VBoxR3TstExe
+ tstFileLock_SOURCES = tstFileLock.cpp
+
+ tstFork_TEMPLATE = VBoxR3TstExe
+ tstFork_SOURCES = tstFork.cpp
+
+ tstRTFsQueries_TEMPLATE = VBoxR3TstExe
+ tstRTFsQueries_SOURCES = tstRTFsQueries.cpp
+
+ tstRTFilesystem_TEMPLATE = VBoxR3TstExe
+ tstRTFilesystem_SOURCES = tstRTFilesystem.cpp
+
+ tstRTExprEval_TEMPLATE = VBoxR3TstExe
+ tstRTExprEval_SOURCES = tstRTExprEval.cpp
+
+ tstRTGetOpt_TEMPLATE = VBoxR3TstExe
+ tstRTGetOpt_SOURCES = tstRTGetOpt.cpp
+
+ tstRTGetOptArgv_TEMPLATE = VBoxR3TstExe
+ tstRTGetOptArgv_SOURCES = tstRTGetOptArgv.cpp
+
+ tstHandleTable_SOURCES = tstHandleTable.cpp
+
+ tstRTHeapOffset_TEMPLATE = VBoxR3TstExe
+ tstRTHeapOffset_SOURCES = tstRTHeapOffset.cpp
+
+ tstRTHeapSimple_TEMPLATE = VBoxR3TstExe
+ tstRTHeapSimple_SOURCES = tstRTHeapSimple.cpp
+
+ tstRTInlineAsm_TEMPLATE = VBoxR3TstExe
+ tstRTInlineAsm_SOURCES = tstRTInlineAsm.cpp
+
+ tstRTInlineAsmPIC_TEMPLATE = VBoxR3TstExe
+ tstRTInlineAsmPIC_SOURCES = tstRTInlineAsm.cpp
+ tstRTInlineAsmPIC_CXXFLAGS = -fPIC
+ tstRTInlineAsmPIC_DEFS = PIC
+
+ tstRTInlineAsmPIC3_TEMPLATE = VBoxR3TstExe
+ tstRTInlineAsmPIC3_SOURCES = tstRTInlineAsm.cpp
+ tstRTInlineAsmPIC3_CXXFLAGS = -fPIC -fomit-frame-pointer -O3
+ tstRTInlineAsmPIC3_DEFS = PIC
+
+ tstIprtList_TEMPLATE = VBoxR3TstExe
+ tstIprtList_SOURCES = tstIprtList.cpp
+
+ tstIprtMiniList_TEMPLATE = VBoxR3TstExe
+ tstIprtMiniList_SOURCES = tstIprtMiniList.cpp
+
+ tstIprtMiniString_TEMPLATE = VBoxR3TstExe
+ tstIprtMiniString_SOURCES = tstIprtMiniString.cpp
+
+ tstLdr_TEMPLATE = VBoxR3TstExe
+ tstLdr_SOURCES = tstLdr.cpp
+
+ tstLdr-2_TEMPLATE = VBoxR3TstExe
+ tstLdr-2_SOURCES = tstLdr-2.cpp
+ tstLdr-2_DEFS = IN_DIS
+ tstLdr-2_LIBS = \
+ $(PATH_STAGE_LIB)/DisasmR3$(VBOX_SUFF_LIB)
+
+ ifdef VBOX_WITH_RAW_MODE
+ tstLdrObj_TEMPLATE = VBoxRc
+ tstLdrObj_INST = $(INST_TESTCASE)
+ tstLdrObj_SYSSUFF = .gc
+ tstLdrObj_SOURCES = tstLdrObj.cpp
+ tstLdrObj_DEFS = IN_DIS IN_RT_RC DIS_CORE_ONLY
+ ifeq ($(VBOX_LDR_FMT32),elf)
+ tstLdrObj_DEFS += VBOX_SOME_IMPORT_FUNCTION
+ endif
+ tstLdrObj_LIBS = \
+ $(PATH_STAGE_LIB)/DisasmRC$(VBOX_SUFF_LIB) \
+ $(PATH_STAGE_LIB)/RuntimeRC$(VBOX_SUFF_LIB)
+ if1of ($(VBOX_LDR_FMT32), lx pe)
+ tstLdrObj_LIBS += \
+ $(PATH_STAGE_LIB)/VMMRCBuiltin$(VBOX_SUFF_LIB) \
+ $(PATH_STAGE_LIB)/VMMRCImp$(VBOX_SUFF_LIB)
+ endif
+ endif # VBOX_WITH_RAW_MODE
+
+ tstLdr-3_TEMPLATE = VBoxR3TstExe
+ tstLdr-3_SOURCES = tstLdr-3.cpp
+ tstLdr-3_DEFS = IN_DIS
+ tstLdr-3_LIBS = \
+ $(PATH_STAGE_LIB)/DisasmR3$(VBOX_SUFF_LIB)
+
+ tstLdr-4Imp_TEMPLATE = VBoxR0
+ ifeq ($(VBOX_LDR_FMT),lx)
+ tstLdr-4Imp_SOURCES = tstLdr-4Imp-os2.def
+ else ifeq ($(VBOX_LDR_FMT),pe)
+ tstLdr-4Imp_SOURCES.win = tstLdr-4Imp-win.def
+ endif
+
+ tstLdrObjR0_TEMPLATE = VBoxR0
+ tstLdrObjR0_INST = $(INST_TESTCASE)
+ tstLdrObjR0_SYSSUFF = .r0
+ tstLdrObjR0_SOURCES = tstLdrObjR0.cpp tstLdrDisasmTest.cpp
+ tstLdrObjR0_DEFS = IN_DIS IN_RT_R0 DIS_CORE_ONLY
+ ifeq ($(VBOX_LDR_FMT32),elf)
+ tstLdrObjR0_DEFS += VBOX_SOME_IMPORT_FUNCTION
+ endif
+ ifn1of ($(KBUILD_TARGET), win)
+ tstLdrObjR0_CXXFLAGS = $(VBOX_GCC_Wno-array_bounds)
+ endif
+ tstLdrObjR0_LIBS = \
+ $(PATH_STAGE_LIB)/DisasmR0$(VBOX_SUFF_LIB) \
+ $(PATH_STAGE_LIB)/RuntimeR0$(VBOX_SUFF_LIB) \
+ $(VBOX_LIB_SUPR0)
+ if1of ($(VBOX_LDR_FMT), pe lx)
+ tstLdrObjR0_LIBS += \
+ $(TARGET_tstLdr-4Imp)
+ endif
+
+ tstLdr-4_TEMPLATE = VBoxR3TstExe
+ tstLdr-4_SOURCES = tstLdr-4.cpp tstLdrDisasmTest.cpp
+ tstLdr-4_DEFS = IN_DIS
+ tstLdr-4_LIBS = \
+ $(PATH_STAGE_LIB)/DisasmR3$(VBOX_SUFF_LIB)
+
+ tstLdrLoad_TEMPLATE = VBoxR3TstExe
+ tstLdrLoad_SOURCES = tstLdrLoad.cpp
+
+ tstRTLdrVerifyPeImage_TEMPLATE = VBoxR3TstExe
+ tstRTLdrVerifyPeImage_SOURCES = tstRTLdrVerifyPeImage.cpp
+
+ tstRTList_TEMPLATE = VBoxR3TstExe
+ tstRTList_SOURCES = tstRTList.cpp
+
+ tstRTLocalIpc_TEMPLATE = VBoxR3TstExe
+ tstRTLocalIpc_SOURCES = tstRTLocalIpc.cpp
+
+ tstRTLockValidator_TEMPLATE = VBoxR3TstExe
+ tstRTLockValidator_SOURCES = tstRTLockValidator.cpp
+
+ ifndef VBOX_ONLY_VALIDATIONKIT
+ tstLog_TEMPLATE = VBoxR3TstExe
+ tstLog_SOURCES = tstLog.cpp
+ tstLog_INCS = $(tstLog_0_OUTDIR)
+ tstLog_INTERMEDIATES = $(tstLog_0_OUTDIR)/tstLogGroups.h
+ tstLog_CLEAN = $(tstLog_0_OUTDIR)/tstLogGroups.h
+ $$(tstLog_0_OUTDIR)/tstLogGroups.h: $(PATH_ROOT)/include/VBox/log.h
+ $(call MSG_GENERATE,,$@,$<)
+ $(QUIET)$(RM) -f -- "$@"
+ $(QUIET)$(SED) -n -e 's/^ *LOG_GROUP_\([A-Z0-9_]*\),.*$(DOLLAR)/{ LOG_GROUP_\1, "\1" },/p' --output "$@" "$<"
+ endif # !VBOX_ONLY_VALIDATIONKIT
+
+ tstRTMemEf_TEMPLATE = VBoxR3TstExe
+ tstRTMemEf_SOURCES = tstRTMemEf.cpp
+
+ tstRTMemCache_TEMPLATE = VBoxR3TstExe
+ tstRTMemCache_SOURCES = tstRTMemCache.cpp
+
+ tstRTMemPool_TEMPLATE = VBoxR3TstExe
+ tstRTMemPool_SOURCES = tstRTMemPool.cpp
+
+ tstRTMemWipe_TEMPLATE = VBoxR3TstExe
+ tstRTMemWipe_SOURCES = tstRTMemWipe.cpp
+
+ tstRTMemSafer_TEMPLATE = VBoxR3TstExe
+ tstRTMemSafer_SOURCES = tstRTMemSafer.cpp
+
+ tstMove_TEMPLATE = VBoxR3TstExe
+ tstMove_SOURCES = tstMove.cpp
+
+ tstRTMp-1_TEMPLATE = VBoxR3TstExe
+ tstRTMp-1_SOURCES = tstRTMp-1.cpp
+
+ tstRTNetIPv4_TEMPLATE = VBoxR3TstExe
+ tstRTNetIPv4_SOURCES = tstRTNetIPv4.cpp
+
+ tstRTNetIPv6_TEMPLATE = VBoxR3TstExe
+ tstRTNetIPv6_SOURCES = tstRTNetIPv6.cpp
+
+ tstNoCrt-1_TEMPLATE = VBoxR3TstExe
+ tstNoCrt-1_DEFS = RT_WITHOUT_NOCRT_WRAPPER_ALIASES
+ tstNoCrt-1_SOURCES = \
+ tstNoCrt-1.cpp \
+ ../common/string/memcpy.asm \
+ ../common/string/mempcpy.asm \
+ ../common/string/memmove.asm \
+ ../common/string/memset.asm \
+ ../common/string/memchr.asm \
+ ../common/string/memcmp.asm \
+ ../common/string/strchr.asm \
+ ../common/string/strcmp.asm \
+ ../common/string/strcpy.asm \
+ ../common/string/strlen.asm \
+ ../common/string/wcslen.asm
+
+ tstRTNoCrt-2_TEMPLATE = VBoxR3TstExe
+ tstRTNoCrt-2_DEFS = RT_WITHOUT_NOCRT_WRAPPER_ALIASES
+ tstRTNoCrt-2_INCS = ../include
+ tstRTNoCrt-2_SDKS = VBoxSoftFloatR3Shared
+ tstRTNoCrt-2_SOURCES = \
+ tstRTNoCrt-2.cpp \
+ \
+ ../common/math/copysign.cpp \
+ ../common/math/copysignf.cpp \
+ ../common/math/copysignl.cpp \
+ ../common/math/fma.cpp \
+ ../common/math/fmaf.cpp \
+ ../common/math/fmax.cpp \
+ ../common/math/fmaxf.cpp \
+ ../common/math/fmaxl.cpp \
+ ../common/math/fmin.cpp \
+ ../common/math/fminf.cpp \
+ ../common/math/fminl.cpp \
+ ../common/math/isinf.cpp \
+ ../common/math/isnan.cpp \
+ ../common/math/isnanf.cpp \
+ ../common/math/llround.cpp \
+ ../common/math/llroundf.cpp \
+ ../common/math/lround.cpp \
+ ../common/math/lroundf.cpp \
+ ../common/math/nocrt-abs.cpp \
+ ../common/math/nocrt-labs.cpp \
+ ../common/math/nocrt-llabs.cpp \
+ ../common/math/round.cpp \
+ ../common/math/roundf.cpp \
+ ../common/math/frexp.cpp \
+ ../common/math/frexpf.cpp \
+ ../common/math/frexpl.cpp \
+ ../common/math/__fpclassifyd.cpp \
+ ../common/math/__fpclassifyf.cpp \
+ ../common/math/__fpclassifyl.cpp \
+ ../common/math/__isfinite.cpp \
+ ../common/math/__isfinitef.cpp \
+ ../common/math/__isfinitel.cpp \
+ ../common/math/__isinff.cpp \
+ ../common/math/__isinfl.cpp \
+ ../common/math/__isnanl.cpp \
+ ../common/math/__isnormal.cpp \
+ ../common/math/__isnormalf.cpp \
+ ../common/math/__isnormall.cpp \
+ ../common/math/__signbit.cpp \
+ ../common/math/__signbitf.cpp \
+ ../common/math/__signbitl.cpp
+
+ if1of ($(KBUILD_TARGET_ARCH), x86 amd64)
+ tstRTNoCrt-2_SOURCES.x86 += \
+ ../common/math/rtNoCrtHasSse.asm
+ tstRTNoCrt-2_SOURCES += \
+ ../common/math/atan.asm \
+ ../common/math/atan2.asm \
+ ../common/math/atan2f.asm \
+ ../common/math/atanf.asm \
+ ../common/math/ceil.asm \
+ ../common/math/ceilf.asm \
+ ../common/math/cos.asm \
+ ../common/math/cosf.asm \
+ ../common/math/cosl.asm \
+ ../common/math/exp.asm \
+ ../common/math/expf.asm \
+ ../common/math/exp2.asm \
+ ../common/math/exp2f.asm \
+ ../common/math/fabs.asm \
+ ../common/math/fabsf.asm \
+ ../common/math/fegetenv.asm \
+ ../common/math/fesetenv.asm \
+ ../common/math/feholdexcept.asm \
+ ../common/math/fegetround.asm \
+ ../common/math/fesetround.asm \
+ ../common/math/fegetx87precision.asm \
+ ../common/math/fesetx87precision.asm \
+ ../common/math/fegetexcept.asm \
+ ../common/math/feenableexcept.asm \
+ ../common/math/fedisableexcept.asm \
+ ../common/math/feclearexcept.asm \
+ ../common/math/fegetexceptflag.asm \
+ ../common/math/fesetexceptflag.asm \
+ ../common/math/fetestexcept.asm \
+ ../common/math/feraiseexcept.asm \
+ ../common/math/floor.asm \
+ ../common/math/floorf.asm \
+ ../common/math/fma-asm.asm \
+ ../common/math/fmaf-asm.asm \
+ ../common/math/ldexp.asm \
+ ../common/math/ldexpf.asm \
+ ../common/math/llrint.asm \
+ ../common/math/llrintf.asm \
+ ../common/math/log.asm \
+ ../common/math/logf.asm \
+ ../common/math/log2.asm \
+ ../common/math/log2f.asm \
+ ../common/math/lrint.asm \
+ ../common/math/lrintf.asm \
+ ../common/math/pow.asm \
+ ../common/math/powf.asm \
+ ../common/math/powcore.asm \
+ ../common/math/remainder.asm \
+ ../common/math/remainderf.asm \
+ ../common/math/rint.asm \
+ ../common/math/rintf.asm \
+ ../common/math/sin.asm \
+ ../common/math/sinf.asm \
+ ../common/math/sincore.asm \
+ ../common/math/sqrt.asm \
+ ../common/math/sqrtf.asm \
+ ../common/math/tan.asm \
+ ../common/math/tanf.asm \
+ ../common/math/trunc.asm \
+ ../common/math/truncf.asm
+ endif
+
+ #
+ # For testing no-CRT exception handling we need to use the static build,
+ # assuming ofc that VBOX_WITH_NOCRT_STATIC is in effect.
+ #
+ TEMPLATE_VBoxR3TstExeStatic := Testcase for the static (no-CRT) libraries.
+ TEMPLATE_VBoxR3TstExeStatic_EXTENDS := VBoxR3Static
+ TEMPLATE_VBoxR3TstExeStatic_INST = $(INST_TESTCASE)
+
+ tstRTNoCrt-3_TEMPLATE := VBoxR3TstExeStatic
+ tstRTNoCrt-3_SOURCES := tstRTNoCrt-3.cpp
+
+ tstRTNoCrt-3r_TEMPLATE := VBoxR3TstExe
+ tstRTNoCrt-3r_SOURCES := tstRTNoCrt-3.cpp
+
+ tstRTNoCrt-4_TEMPLATE := VBoxR3TstExe
+ tstRTNoCrt-4_SOURCES := tstRTNoCrt-4.cpp
+
+ tstRTNtPath-1_TEMPLATE = VBoxR3TstExe
+ tstRTNtPath-1_SOURCES = tstRTNtPath-1.cpp
+
+ tstOnce_TEMPLATE = VBoxR3TstExe
+ tstOnce_SOURCES = tstOnce.cpp
+
+ tstRTPath_TEMPLATE = VBoxR3TstExe
+ tstRTPath_SOURCES = tstRTPath.cpp
+
+ tstRTPathFindCommon_TEMPLATE = VBoxR3TstExe
+ tstRTPathFindCommon_SOURCES = tstRTPathFindCommon.cpp
+
+ tstRTPathGlob_TEMPLATE = VBoxR3TstExe
+ tstRTPathGlob_SOURCES = tstRTPathGlob.cpp
+
+ tstRTPathQueryInfo_TEMPLATE = VBoxR3TstExe
+ tstRTPathQueryInfo_SOURCES = tstRTPathQueryInfo.cpp
+
+ tstRTPipe_TEMPLATE = VBoxR3TstExe
+ tstRTPipe_SOURCES = tstRTPipe.cpp
+
+ tstRTPoll_TEMPLATE = VBoxR3TstExe
+ tstRTPoll_SOURCES = tstRTPoll.cpp
+
+ tstPrfRT_TEMPLATE = VBoxR3TstExe
+ tstPrfRT_SOURCES = tstPrfRT.cpp
+ tstPrfRT_SOURCES.x86 = tstRTPrfA.asm
+ tstPrfRT_SOURCES.amd64 = tstRTPrfA.asm
+
+ tstRTPrfIO_TEMPLATE = VBoxR3TstExe
+ tstRTPrfIO_SOURCES = tstRTPrfIO.cpp
+
+ tstRTProcCreateEx_TEMPLATE = VBoxR3TstExe
+ tstRTProcCreateEx_SOURCES = tstRTProcCreateEx.cpp
+
+ tstRTProcCreatePrf_TEMPLATE = VBoxR3TstExe
+ tstRTProcCreatePrf_SOURCES = tstRTProcCreatePrf.cpp
+
+ tstRTProcQueryUsername_TEMPLATE = VBoxR3TstExe
+ tstRTProcQueryUsername_SOURCES = tstRTProcQueryUsername.cpp
+
+ tstRTProcWait_TEMPLATE = VBoxR3TstExe
+ tstRTProcWait_SOURCES = tstRTProcWait.cpp
+
+ tstRTProcIsRunningByName_TEMPLATE = VBoxR3TstExe
+ tstRTProcIsRunningByName_SOURCES = tstRTProcIsRunningByName.cpp
+
+ tstRand_TEMPLATE = VBoxR3TstExe
+ tstRand_SOURCES = tstRand.cpp
+
+ tstRTReqPool_TEMPLATE = VBoxR3TstExe
+ tstRTReqPool_SOURCES = tstRTReqPool.cpp
+
+ tstSemMutex_TEMPLATE = VBoxR3TstExe
+ tstSemMutex_SOURCES = tstSemMutex.cpp
+
+ tstRTSemEvent_TEMPLATE = VBoxR3TstExe
+ tstRTSemEvent_SOURCES = tstRTSemEvent.cpp
+
+ tstRTSemEventMulti_TEMPLATE = VBoxR3TstExe
+ tstRTSemEventMulti_SOURCES = tstRTSemEventMulti.cpp
+
+ tstRTSemRW_TEMPLATE = VBoxR3TstExe
+ tstRTSemRW_SOURCES = tstRTSemRW.cpp
+
+ tstSemPingPong_TEMPLATE = VBoxR3TstExe
+ tstSemPingPong_SOURCES = tstSemPingPong.cpp
+
+ tstRTSemXRoads_TEMPLATE = VBoxR3TstExe
+ tstRTSemXRoads_SOURCES = tstRTSemXRoads.cpp
+
+ tstRTSort_TEMPLATE = VBoxR3TstExe
+ tstRTSort_SOURCES = tstRTSort.cpp
+
+ tstRTStrAlloc_TEMPLATE = VBoxR3TstExe
+ tstRTStrAlloc_SOURCES = tstRTStrAlloc.cpp
+
+ tstRTStrCache_TEMPLATE = VBoxR3TstExe
+ tstRTStrCache_SOURCES = tstRTStrCache.cpp
+
+ tstRTStrCatCopy_TEMPLATE = VBoxR3TstExe
+ tstRTStrCatCopy_SOURCES = tstRTStrCatCopy.cpp
+
+ tstRTStrFormat_TEMPLATE = VBoxR3TstExe
+ tstRTStrFormat_SOURCES = tstRTStrFormat.cpp
+
+ tstRTStrSplit_TEMPLATE = VBoxR3TstExe
+ tstRTStrSplit_SOURCES = tstRTStrSplit.cpp
+
+ tstRTStrSimplePattern_TEMPLATE = VBoxR3TstExe
+ tstRTStrSimplePattern_SOURCES = tstRTStrSimplePattern.cpp
+
+ tstStrToNum_TEMPLATE = VBoxR3TstExe
+ tstStrToNum_SOURCES = tstStrToNum.cpp
+
+ tstRTStrVersion_TEMPLATE = VBoxR3TstExe
+ tstRTStrVersion_SOURCES = tstRTStrVersion.cpp
+
+ tstRTSymlink_TEMPLATE = VBoxR3TstExe
+ tstRTSymlink_SOURCES = tstRTSymlink.cpp
+
+ tstRTSystemQueryDmi_TEMPLATE = VBoxR3TstExe
+ tstRTSystemQueryDmi_SOURCES = tstRTSystemQueryDmi.cpp
+
+ tstRTSystemQueryFirmware_TEMPLATE = VBoxR3TstExe
+ tstRTSystemQueryFirmware_SOURCES = tstRTSystemQueryFirmware.cpp
+
+ tstRTSystemQueryOsInfo_TEMPLATE = VBoxR3TstExe
+ tstRTSystemQueryOsInfo_SOURCES = tstRTSystemQueryOsInfo.cpp
+
+ tstRTTcp-1_TEMPLATE = VBoxR3TstExe
+ tstRTTcp-1_SOURCES = tstRTTcp-1.cpp
+
+ tstRTTemp_TEMPLATE = VBoxR3TstExe
+ tstRTTemp_SOURCES = tstRTTemp.cpp
+
+ tstRTDirCreateUniqueNumbered_TEMPLATE = VBoxR3TstExe
+ tstRTDirCreateUniqueNumbered_SOURCES = tstRTDirCreateUniqueNumbered.cpp
+
+ tstTermCallbacks_TEMPLATE = VBoxR3TstExe
+ tstTermCallbacks_SOURCES = tstTermCallbacks.cpp
+
+ tstThread-1_TEMPLATE = VBoxR3TstExe
+ tstThread-1_SOURCES = tstThread-1.cpp
+
+ tstRTThreadPoke_TEMPLATE = VBoxR3TstExe
+ tstRTThreadPoke_SOURCES = tstRTThreadPoke.cpp
+
+ tstRTThreadExecutionTime_TEMPLATE = VBoxR3TstExe
+ tstRTThreadExecutionTime_SOURCES = tstRTThreadExecutionTime.cpp
+
+ tstRTTime_TEMPLATE = VBoxR3TstExe
+ tstRTTime_SOURCES = tstRTTime.cpp
+
+ tstRTTls-1_TEMPLATE = VBoxR3TstExe
+ tstRTTls-1_SOURCES = tstRTTls-1.cpp
+
+ tstRTTraceLog_TEMPLATE = VBoxR3TstExe
+ tstRTTraceLog_SOURCES = tstRTTraceLog.cpp
+
+ tstTime-2_TEMPLATE = VBoxR3TstExe
+ tstTime-2_SOURCES = tstTime-2.cpp
+
+ tstTime-3_TEMPLATE = VBoxR3TstExe
+ tstTime-3_SOURCES = tstTime-3.cpp
+
+ tstTime-4_TEMPLATE = VBoxR3TstExe
+ tstTime-4_SOURCES = tstTime-4.cpp
+
+ tstTimer_TEMPLATE = VBoxR3TstExe
+ tstTimer_SOURCES = tstTimer.cpp
+
+ tstRTTimerLR_TEMPLATE = VBoxR3TstExe
+ tstRTTimerLR_SOURCES = tstRTTimerLR.cpp
+
+ tstRTTimeSpec_TEMPLATE = VBoxR3TstExe
+ tstRTTimeSpec_SOURCES = tstRTTimeSpec.cpp
+
+ tstTSC_SOURCES = tstTSC.cpp
+ tstTSC_CXXFLAGS.linux += -O3
+
+ tstRTUuid_TEMPLATE = VBoxR3TstExe
+ tstRTUuid_SOURCES = tstRTUuid.cpp
+
+ tstRTUdp-1_TEMPLATE = VBoxR3TstExe
+ tstRTUdp-1_SOURCES = tstRTUdp-1.cpp
+
+ tstUtf8_TEMPLATE = VBoxR3TstExe
+ tstUtf8_SOURCES = tstUtf8.cpp
+
+ tstRTCircBuf_TEMPLATE = VBoxR3TstExe
+ tstRTCircBuf_SOURCES = tstRTCircBuf.cpp
+
+ tstRTManifest_TEMPLATE = VBoxR3TstExe
+ tstRTManifest_SOURCES = tstRTManifest.cpp
+
+ tstRTMath_TEMPLATE = VBoxR3TstExe
+ tstRTMath_SOURCES = \
+ tstRTMath.cpp \
+ ../common/math/gcc/udivmoddi4.c
+
+ tstRTUri_TEMPLATE = VBoxR3TstExe
+ tstRTUri_SOURCES = tstRTUri.cpp
+
+ tstRTVfs_TEMPLATE = VBoxR3TstExe
+ tstRTVfs_SOURCES = tstRTVfs.cpp
+
+ tstRTCoreDump_TEMPLACE = VBoxR3TstExe
+ tstRTCoreDump_SOURCES = tstRTCoreDump.cpp
+
+ tstVector_TEMPLATE = VBoxR3TstExe
+ tstVector_SOURCES = tstVector.cpp
+
+
+ tstRTZip_TEMPLATE = VBoxR3TstExe
+ tstRTZip_SOURCES = tstRTZip.cpp
+
+ tstRTJson_TEMPLATE = VBoxR3TstExe
+ tstRTJson_SOURCES = tstRTJson.cpp
+
+ tstRTShMem_TEMPLATE = VBoxR3TstExe
+ tstRTShMem_SOURCES = tstRTShMem.cpp
+
+ #
+ # Ring-0 testcases.
+ #
+
+ ## @todo create a template for compiling the ring-0 part.
+ tstRTR0DbgKrnlInfo_TEMPLATE = VBoxR0
+ tstRTR0DbgKrnlInfo_INST = $(INST_TESTCASE)
+ tstRTR0DbgKrnlInfo_DEFS = IN_RT_R0
+ tstRTR0DbgKrnlInfo_SYSSUFF = .r0
+ tstRTR0DbgKrnlInfo_SOURCES = tstRTR0DbgKrnlInfo.cpp
+ tstRTR0DbgKrnlInfo_LIBS = \
+ $(PATH_STAGE_LIB)/RuntimeR0$(VBOX_SUFF_LIB) \
+ $(VBOX_LIB_SUPR0)
+ if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win"
+ tstRTR0DbgKrnlInfoDriverHardened_TEMPLATE = VBoxR3HardenedTstExe
+ tstRTR0DbgKrnlInfoDriverHardened_NAME = tstRTR0DbgKrnlInfoDriver
+ ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING
+ tstRTR0DbgKrnlInfoDriverHardened_DEFS = PROGRAM_NAME_STR="tstRTR0DbgKrnlInfoDriver"
+ else
+ tstRTR0DbgKrnlInfoDriverHardened_DEFS = PROGRAM_NAME_STR=\"tstRTR0DbgKrnlInfoDriver\"
+ endif
+ tstRTR0DbgKrnlInfoDriverHardened_SOURCES = ../../HostDrivers/Support/SUPR3HardenedMainTemplateTestcase.cpp
+ tstRTR0DbgKrnlInfoDriver_TEMPLATE = VBoxR3HardenedTstDll
+ else
+ tstRTR0DbgKrnlInfoDriver_TEMPLATE = VBoxR3TstExe
+ endif
+ tstRTR0DbgKrnlInfoDriver_TEMPLATE = VBoxR3TstExe
+ tstRTR0DbgKrnlInfoDriver_SOURCES = tstRTR0DbgKrnlInfoDriver.cpp
+
+
+ tstRTR0MemUserKernel_TEMPLATE = VBoxR0
+ tstRTR0MemUserKernel_INST = $(INST_TESTCASE)
+ tstRTR0MemUserKernel_DEFS = IN_RT_R0
+ tstRTR0MemUserKernel_SYSSUFF = .r0
+ tstRTR0MemUserKernel_SOURCES = tstRTR0MemUserKernel.cpp
+ tstRTR0MemUserKernel_LIBS = \
+ $(PATH_STAGE_LIB)/RuntimeR0$(VBOX_SUFF_LIB) \
+ $(VBOX_LIB_SUPR0)
+ if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win"
+ tstRTR0MemUserKernelDriverHardened_TEMPLATE = VBoxR3HardenedTstExe
+ tstRTR0MemUserKernelDriverHardened_NAME = tstRTR0MemUserKernelDriver
+ ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING
+ tstRTR0MemUserKernelDriverHardened_DEFS = PROGRAM_NAME_STR="tstRTR0MemUserKernelDriver"
+ else
+ tstRTR0MemUserKernelDriverHardened_DEFS = PROGRAM_NAME_STR=\"tstRTR0MemUserKernelDriver\"
+ endif
+ tstRTR0MemUserKernelDriverHardened_SOURCES = ../../HostDrivers/Support/SUPR3HardenedMainTemplateTestcase.cpp
+ tstRTR0MemUserKernelDriver_TEMPLATE = VBoxR3HardenedTstDll
+ else
+ tstRTR0MemUserKernelDriver_TEMPLATE = VBoxR3TstExe
+ endif
+ tstRTR0MemUserKernelDriver_SOURCES = tstRTR0MemUserKernelDriver.cpp
+
+
+ tstRTR0SemMutex_TEMPLATE = VBoxR0
+ tstRTR0SemMutex_INST = $(INST_TESTCASE)
+ tstRTR0SemMutex_DEFS = IN_RT_R0
+ tstRTR0SemMutex_SYSSUFF = .r0
+ tstRTR0SemMutex_SOURCES = tstRTR0SemMutex.cpp
+ tstRTR0SemMutex_LIBS = \
+ $(PATH_STAGE_LIB)/RuntimeR0$(VBOX_SUFF_LIB) \
+ $(VBOX_LIB_SUPR0)
+ if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win"
+ tstRTR0SemMutexDriverHardened_TEMPLATE = VBoxR3HardenedTstExe
+ tstRTR0SemMutexDriverHardened_NAME = tstRTR0SemMutexDriver
+ ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING
+ tstRTR0SemMutexDriverHardened_DEFS = PROGRAM_NAME_STR="tstRTR0SemMutexDriver"
+ else
+ tstRTR0SemMutexDriverHardened_DEFS = PROGRAM_NAME_STR=\"tstRTR0SemMutexDriver\"
+ endif
+ tstRTR0SemMutexDriverHardened_SOURCES = ../../HostDrivers/Support/SUPR3HardenedMainTemplateTestcase.cpp
+ tstRTR0SemMutexDriver_TEMPLATE = VBoxR3HardenedTstDll
+ else
+ tstRTR0SemMutexDriver_TEMPLATE = VBoxR3TstExe
+ endif
+ tstRTR0SemMutexDriver_SOURCES = tstRTR0SemMutexDriver.cpp
+
+
+ tstRTR0Thread_TEMPLATE = VBoxR0
+ tstRTR0Thread_INST = $(INST_TESTCASE)
+ tstRTR0Thread_DEFS = IN_RT_R0
+ tstRTR0Thread_SYSSUFF = .r0
+ tstRTR0Thread_SOURCES = tstRTR0Thread.cpp
+ tstRTR0Thread_LIBS = \
+ $(PATH_STAGE_LIB)/RuntimeR0$(VBOX_SUFF_LIB) \
+ $(VBOX_LIB_SUPR0)
+ if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win"
+ tstRTR0ThreadDriverHardened_TEMPLATE = VBoxR3HardenedTstExe
+ tstRTR0ThreadDriverHardened_NAME = tstRTR0ThreadDriver
+ ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING
+ tstRTR0ThreadDriverHardened_DEFS = PROGRAM_NAME_STR="tstRTR0ThreadDriver"
+ else
+ tstRTR0ThreadDriverHardened_DEFS = PROGRAM_NAME_STR=\"tstRTR0ThreadDriver\"
+ endif
+ tstRTR0ThreadDriverHardened_SOURCES = ../../HostDrivers/Support/SUPR3HardenedMainTemplateTestcase.cpp
+ tstRTR0ThreadDriver_TEMPLATE = VBoxR3HardenedTstDll
+ else
+ tstRTR0ThreadDriver_TEMPLATE = VBoxR3TstExe
+ endif
+ tstRTR0ThreadDriver_SOURCES = tstRTR0ThreadDriver.cpp
+
+
+ tstRTR0Timer_TEMPLATE = VBoxR0
+ tstRTR0Timer_INST = $(INST_TESTCASE)
+ tstRTR0Timer_DEFS = IN_RT_R0
+ tstRTR0Timer_SYSSUFF = .r0
+ tstRTR0Timer_SOURCES = tstRTR0Timer.cpp
+ tstRTR0Timer_LIBS = \
+ $(PATH_STAGE_LIB)/RuntimeR0$(VBOX_SUFF_LIB) \
+ $(VBOX_LIB_SUPR0)
+ if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win"
+ tstRTR0TimerDriverHardened_TEMPLATE = VBoxR3HardenedTstExe
+ tstRTR0TimerDriverHardened_NAME = tstRTR0TimerDriver
+ ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING
+ tstRTR0TimerDriverHardened_DEFS = PROGRAM_NAME_STR="tstRTR0TimerDriver"
+ else
+ tstRTR0TimerDriverHardened_DEFS = PROGRAM_NAME_STR=\"tstRTR0TimerDriver\"
+ endif
+ tstRTR0TimerDriverHardened_SOURCES = ../../HostDrivers/Support/SUPR3HardenedMainTemplateTestcase.cpp
+ tstRTR0TimerDriver_TEMPLATE = VBoxR3HardenedTstDll
+ else
+ tstRTR0TimerDriver_TEMPLATE = VBoxR3TstExe
+ endif
+ tstRTR0TimerDriver_SOURCES = tstRTR0TimerDriver.cpp
+
+
+ tstRTR0ThreadPreemption_TEMPLATE = VBoxR0
+ tstRTR0ThreadPreemption_INST = $(INST_TESTCASE)
+ tstRTR0ThreadPreemption_DEFS = IN_RT_R0
+ tstRTR0ThreadPreemption_SYSSUFF = .r0
+ tstRTR0ThreadPreemption_SOURCES = tstRTR0ThreadPreemption.cpp
+ tstRTR0ThreadPreemption_LIBS = \
+ $(PATH_STAGE_LIB)/RuntimeR0$(VBOX_SUFF_LIB) \
+ $(VBOX_LIB_SUPR0)
+ if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win"
+ tstRTR0ThreadPreemptionDriverHardened_TEMPLATE = VBoxR3HardenedTstExe
+ tstRTR0ThreadPreemptionDriverHardened_NAME = tstRTR0ThreadPreemptionDriver
+ ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING
+ tstRTR0ThreadPreemptionDriverHardened_DEFS = PROGRAM_NAME_STR="tstRTR0ThreadPreemptionDriver"
+ else
+ tstRTR0ThreadPreemptionDriverHardened_DEFS = PROGRAM_NAME_STR=\"tstRTR0ThreadPreemptionDriver\"
+ endif
+ tstRTR0ThreadPreemptionDriverHardened_SOURCES = ../../HostDrivers/Support/SUPR3HardenedMainTemplateTestcase.cpp
+ tstRTR0ThreadPreemptionDriver_TEMPLATE = VBoxR3HardenedTstDll
+ else
+ tstRTR0ThreadPreemptionDriver_TEMPLATE = VBoxR3TstExe
+ endif
+ tstRTR0ThreadPreemptionDriver_SOURCES = tstRTR0ThreadPreemptionDriver.cpp
+
+
+ #
+ # Odds and ends.
+ #
+
+ tstDarwinSched_TEMPLATE = VBoxR3TstExe
+ tstDarwinSched_SOURCES = tstDarwinSched.cpp
+
+ tstRTDarwinMachKernel_TEMPLATE = VBoxR3TstExe
+ tstRTDarwinMachKernel_INCS = ../include
+ tstRTDarwinMachKernel_SOURCES = \
+ tstRTDarwinMachKernel.cpp \
+ ../r0drv/darwin/dbgkrnlinfo-r0drv-darwin.cpp
+
+ ntGetTimerResolution_SOURCES = ntGetTimerResolution.cpp
+ ntGetTimerResolution_SDKS.win = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK) VBoxNtDll
+
+
+ #
+ # ValKit versions of selected tests.
+ #
+ ifdef VBOX_WITH_VALIDATIONKIT_UNITTESTS_PACKING
+ define def_valkit_unittest_iprt
+ PROGRAMS += $(unittest)-ValKit
+ $(unittest)-ValKit_TEMPLATE := VBoxValidationKitR3TstExe
+ $(unittest)-ValKit_EXTENDS := $(unittest)
+ $(unittest)-ValKit_NAME := $(unittest)
+ endef
+ $(foreach unittest, $(VALKIT_UNITTESTS_WHITELIST_IPRT) $($(VALKIT_UNITTESTS_WHITELIST_IPRT).$(KBUILD_TARGET)) \
+ ,$(evalcall2 def_valkit_unittest_iprt))
+ endif
+
+endif # VBOX_WITH_TESTCASES
+
+include $(FILE_KBUILD_SUB_FOOTER)