build: Introduce test image with haiku_unittests package

* Currently there is no dependency between haiku_unittests.hpkg
  and unittests target. unittests needs to be built before building
  test image.

Change-Id: I7c729095db74687b154a4880fde7f15b474c3590
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2080
Reviewed-by: Kacper Kasper <[email protected]>
Tested-by: Commit checker robot <[email protected]>
This commit is contained in:
Alexander von Gluck IV
2026-01-22 17:27:44 +00:00
committed by Kacper Kasper
parent f6829b6ccf
commit cbb8d73dc9
9 changed files with 94 additions and 17 deletions
+23
View File
@@ -20,6 +20,14 @@ switch $(HAIKU_BUILD_PROFILE) {
TARGET_DEFINES += HAIKU_MINIMUM_BUILD ;
}
case "test-*" : {
HAIKU_BUILD_TYPE = test ;
EnableBuildFeatures minimum_image ;
HAIKU_DEFINES += HAIKU_MINIMUM_BUILD ;
TARGET_DEFINES += HAIKU_MINIMUM_BUILD ;
}
case "*" : {
HAIKU_BUILD_TYPE = regular ;
EnableBuildFeatures regular_image ;
@@ -64,6 +72,9 @@ rule DefineDefaultBuildProfiles
DefineBuildProfile minimum-anyboot : anyboot-image
: "haiku-minimum-anyboot.iso" ;
# test profiles
DefineBuildProfile test-raw : image : "haiku-test.image" ;
switch $(HAIKU_BUILD_PROFILE) {
case "release-*" : {
Echo Building Haiku R1/development preview ;
@@ -176,6 +187,18 @@ rule DefineDefaultBuildProfiles
;
}
case "test-*" : {
Echo Building Haiku UnitTest Target ;
HAIKU_IMAGE_HOST_NAME ?= shredder ;
if $(DEBUG) != 0 {
HAIKU_IMAGE_SIZE ?= 450 ;
}
AddHaikuImageSystemPackages
openssl3
;
}
case "bootstrap-*" : {
Echo Building Haiku Bootstrap ;
HAIKU_IMAGE_HOST_NAME ?= shredder ;
+4
View File
@@ -18,6 +18,10 @@ if $(HAIKU_BUILD_TYPE) = bootstrap {
packages += Haiku ;
}
if $(HAIKU_BUILD_TYPE) = test {
packages += HaikuUnitTests ;
}
local archDependentPackages =
HaikuCrossDevel
WebPositive
+6
View File
@@ -7,6 +7,8 @@ if $(HAIKU_BUILD_TYPE) = bootstrap {
include [ FDirName $(HAIKU_BUILD_RULES_DIR) images definitions bootstrap ] ;
} else if $(HAIKU_BUILD_TYPE) = minimum {
include [ FDirName $(HAIKU_BUILD_RULES_DIR) images definitions minimum ] ;
} else if $(HAIKU_BUILD_TYPE) = test {
include [ FDirName $(HAIKU_BUILD_RULES_DIR) images definitions minimum ] ;
} else {
include [ FDirName $(HAIKU_BUILD_RULES_DIR) images definitions regular ] ;
}
@@ -23,5 +25,9 @@ AddPackageFilesToHaikuImage system packages :
nameFromMetaInfo
;
if $(HAIKU_BUILD_TYPE) = test {
AddPackageFilesToHaikuImage system packages : haiku_unittests.hpkg ;
}
# import what is shared by all images
include [ FDirName $(HAIKU_BUILD_RULES_DIR) images definitions common-tail ] ;
+9
View File
@@ -0,0 +1,9 @@
local haikuUnitTestsPackage = haiku_unittests.hpkg ;
HaikuPackage $(haikuUnitTestsPackage) ;
CopyDirectoryToPackage add-ons
:
$(TARGET_UNIT_TEST_DIR)
;
BuildHaikuPackage $(haikuUnitTestsPackage) : haiku_unittests ;
+4
View File
@@ -30,6 +30,10 @@ if $(HAIKU_IS_BOOTSTRAP) != 1 && $(HAIKU_BUILD_TYPE) != minimum {
}
}
if $(HAIKU_BUILD_TYPE) = test {
packages += haiku_unittests ;
}
local webPositiveIsAvailable ;
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {