Patch by Vasilis Kaoutsis (slightly edited):
* The POSIX test suite is copied to the image when the jam variable HAIKU_ADD_POSIX_TEST_SUITE_TO_IMAGE is defined (cf. UserBuildConfig.sample). * Added difftime and fork tests to the test suite run script. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22907 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -415,6 +415,36 @@ AddDirectoryToHaikuImage home config settings printers "Save as PDF"
|
||||
: home-config-settings-printers-save-as-pdf.rdef ;
|
||||
|
||||
|
||||
#pragma mark - Tests
|
||||
|
||||
# PosixTestSuite
|
||||
if $(HAIKU_ADD_POSIX_TEST_SUITE_TO_IMAGE) {
|
||||
# add run script
|
||||
AddFilesToHaikuImage home posixtestsuite : run_posix_tests ;
|
||||
|
||||
# add standard posix tests
|
||||
AddFilesToHaikuImage home posixtestsuite conformance interfaces difftime
|
||||
: difftime_1-1 ;
|
||||
AddFilesToHaikuImage home posixtestsuite conformance interfaces fork
|
||||
: fork_3-1 fork_4-1 fork_6-1 fork_8-1 fork_9-1 fork_12-1 ;
|
||||
|
||||
# add signal posix tests
|
||||
AddFilesToHaikuImage home posixtestsuite conformance interfaces kill
|
||||
: kill_2-1 ;
|
||||
AddFilesToHaikuImage home posixtestsuite conformance interfaces sighold
|
||||
: sighold_1-1 sighold_2-1 sighold_3-core-buildonly ;
|
||||
AddFilesToHaikuImage home posixtestsuite conformance interfaces sigignore
|
||||
: sigignore_1-1 sigignore_4-1 sigignore_5-core-buildonly
|
||||
sigignore_6-1 sigignore_6-2 ;
|
||||
AddFilesToHaikuImage home posixtestsuite conformance interfaces sigprocmask
|
||||
: sigprocmask_8-1 sigprocmask_8-2 sigprocmask_8-3 sigprocmask_12-1 ;
|
||||
AddFilesToHaikuImage home posixtestsuite conformance interfaces sigrelse
|
||||
: sigrelse_1-1 sigrelse_2-1 sigrelse_3-core-buildonly ;
|
||||
AddFilesToHaikuImage home posixtestsuite conformance interfaces signal
|
||||
: signal_1-1 signal_2-1 signal_3-1 signal_5-1 signal_6-1 signal_7-1 ;
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Optional Packages
|
||||
|
||||
|
||||
|
||||
+136
-132
@@ -1,132 +1,136 @@
|
||||
# UserBuildConfig can be used to customize the build according to your needs.
|
||||
# If existent it is included by the build system, but it is ignored by svn.
|
||||
# This file documents a few examples, what can be done.
|
||||
|
||||
# Adjusting Build Variables
|
||||
|
||||
# Turn off warnings in directory src/system/kernel. As fourth (scope) parameter
|
||||
# "local" is specified, which means, that this setting applies only to the
|
||||
# given directory, but not any of its subdirectories.
|
||||
SetConfigVar WARNINGS : HAIKU_TOP src system kernel : 0 : local ;
|
||||
|
||||
# Add "RUN_WITHOUT_REGISTRAR" to the DEFINES for the directory src/kits and
|
||||
# all its subdirectories (scope is "global").
|
||||
AppendToConfigVar DEFINES : HAIKU_TOP src kits : RUN_WITHOUT_REGISTRAR
|
||||
: global ;
|
||||
|
||||
# Set the debug level for file src/bin/gdb/gdb/haiku-nat.c (note, that
|
||||
# the object file must be specified) to 1. It is worth mentioning, that the
|
||||
# executable the object file is linked into (gdb), will still be placed in
|
||||
# generated/objects/.../release/... Only when setting DEBUG for the executable,
|
||||
# too, it will be placed in .../debug_1/...
|
||||
DEBUG on <src!bin!gdb!gdb!>haiku-nat.o = 1 ;
|
||||
|
||||
|
||||
# Haiku Image Related Modifications
|
||||
|
||||
# Create a 100 MB image at /tmp/walter.image.
|
||||
HAIKU_IMAGE_NAME = walter.image ;
|
||||
HAIKU_IMAGE_DIR = /tmp ;
|
||||
HAIKU_IMAGE_SIZE = 100 ;
|
||||
|
||||
# Name the VMWare image walter.vmdk (in directory $(HAIKU_IMAGE_DIR)).
|
||||
HAIKU_VMWARE_IMAGE_NAME = walter.vmdk ;
|
||||
|
||||
# Install Haiku in directory /Haiku.
|
||||
HAIKU_INSTALL_DIR = /Haiku ;
|
||||
|
||||
# If the image does already exist it won't be zeroed out. It will nevertheless
|
||||
# freshly be initialized with BFS. Useful when installing Haiku on a partition.
|
||||
HAIKU_DONT_CLEAR_IMAGE = 1 ;
|
||||
|
||||
|
||||
# Affects the haiku-image, haiku-vmware-image, and install-haiku targets. Only
|
||||
# targets on which the HAIKU_INCLUDE_IN_IMAGE variable has been set will be
|
||||
# updated in the image file/installation directory.
|
||||
# The update-image, update-vmware-image, and update-install targets always invoke
|
||||
# this rule, so one likely doesn't ever need to do it manually.
|
||||
SetUpdateHaikuImageOnly 1 ;
|
||||
|
||||
# libbe.so and the kernel will be updated on image updates. Note that this
|
||||
# generally doesn't work for pseudo targets (it does where special support
|
||||
# has been added, like for "kernel").
|
||||
HAIKU_INCLUDE_IN_IMAGE on libbe.so kernel = 1 ;
|
||||
|
||||
# Add "crashing_app" to the beos/bin directory of the Haiku image/installation.
|
||||
# Note, that this also makes the image depend on the target, i.e. it is
|
||||
# automatically updated when the image is built.
|
||||
AddFilesToHaikuImage beos bin : crashing_app ;
|
||||
|
||||
# Make a symlink to home/config/bin/crash.
|
||||
AddSymlinkToHaikuImage home config bin : /beos/bin/crashing_app : crash ;
|
||||
|
||||
# Adds the source directories src/kits/storage and src/tests/servers/debug
|
||||
# (recursively) to the image (as /boot/home/HaikuSources/src/kits/storage
|
||||
# and /boot/home/HaikuSources/src/tests/servers/debug respectively).
|
||||
# Note that the second directory will also be copied, if the image will only
|
||||
# be updated; the first one won't in that case.
|
||||
AddSourceDirectoryToHaikuImage src/kits/storage ;
|
||||
AddSourceDirectoryToHaikuImage src/tests/servers/debug : 1 ;
|
||||
|
||||
# Unzips the given zip archive onto the image under /boot/develop/tools.
|
||||
UnzipArchiveToHaikuImage develop tools
|
||||
: /home/bonefish/develop/haiku/misc/gcc-2.95.3-beos-070218/gcc-2.95.3_binutils-2.17_rel-070218.zip ;
|
||||
|
||||
# Adds the optional package WonderBrush to the image. The package is downloaded
|
||||
# via wget (i.e. wget must be installed).
|
||||
AddOptionalHaikuImagePackages WonderBrush ;
|
||||
|
||||
# Adds the optional package Vision to the image. See above.
|
||||
AddOptionalHaikuImagePackages Vision ;
|
||||
|
||||
# Add all available optional packages.
|
||||
HAIKU_ADD_ALL_OPTIONAL_PACKAGES = 1 ;
|
||||
|
||||
# Specify scripts that shall be run when populating the image/installation
|
||||
# directory. The "early" script is run before anything has been copied onto
|
||||
# the image/into the installation directory. The "late" script is run after
|
||||
# everything has been copied, but before the MIME database is installed.
|
||||
HAIKU_IMAGE_EARLY_USER_SCRIPTS = $(HAIKU_TOP)/../early-image-script.sh ;
|
||||
HAIKU_IMAGE_LATE_USER_SCRIPTS = $(HAIKU_TOP)/../late-image-script.sh ;
|
||||
|
||||
|
||||
# Creating Sourceable Shell Scripts
|
||||
|
||||
# If you use shell scripts (e.g. for testing) that need to access targets or
|
||||
# build system properties, you can tell the build system to generate a
|
||||
# variables defining shell script you can source from your shell script.
|
||||
|
||||
# General setup for the shell script to generate. Name is test.inc, located
|
||||
# in the output directory.
|
||||
MakeLocate test.inc : $(HAIKU_OUTPUT_DIR) ;
|
||||
Always test.inc ;
|
||||
|
||||
# Define variable "outputDir" in the shell script, with the value of
|
||||
# HAIKU_OUTPUT_DIR.
|
||||
AddVariableToScript test.inc : outputDir : $(HAIKU_OUTPUT_DIR) ;
|
||||
|
||||
# Define variables "bfsShell" and "fsShellCommand" referring to the
|
||||
# generated bfs_shell and fs_shell_command respectively.
|
||||
AddTargetVariableToScript test.inc : bfs_shell : bfsShell ;
|
||||
AddTargetVariableToScript test.inc : fs_shell_command : fsShellCommand ;
|
||||
|
||||
# If no variable name is given, the name (without grist) of the target is
|
||||
# used, i.e. a variable "rc" referring to the rc command built for the host
|
||||
# platform is defined in the script.
|
||||
AddTargetVariableToScript test.inc : <build>rc ;
|
||||
|
||||
|
||||
# Optimizing Jamfile Parsing Times
|
||||
|
||||
# Setting this variable will prevent the root Jamfile to include the Jamfile
|
||||
# in the src directory. Instead only the directories required for building the
|
||||
# build tools are included. Only useful in combination with DeferredSubInclude.
|
||||
HAIKU_DONT_INCLUDE_SRC = 1 ;
|
||||
|
||||
# Schedule the given subdirectory for inclusion at the end of the root
|
||||
# Jamfile (directly using SubInclude here is not possible). Using this
|
||||
# feature together with HAIKU_DONT_INCLUDE_SRC allows developers working
|
||||
# only on a subproject to reduce Jamfile parsing times considerably.
|
||||
DeferredSubInclude HAIKU_TOP src tests add-ons kernel file_systems
|
||||
userlandfs ;
|
||||
|
||||
# UserBuildConfig can be used to customize the build according to your needs.
|
||||
# If existent it is included by the build system, but it is ignored by svn.
|
||||
# This file documents a few examples, what can be done.
|
||||
|
||||
# Adjusting Build Variables
|
||||
|
||||
# Turn off warnings in directory src/system/kernel. As fourth (scope) parameter
|
||||
# "local" is specified, which means, that this setting applies only to the
|
||||
# given directory, but not any of its subdirectories.
|
||||
SetConfigVar WARNINGS : HAIKU_TOP src system kernel : 0 : local ;
|
||||
|
||||
# Add "RUN_WITHOUT_REGISTRAR" to the DEFINES for the directory src/kits and
|
||||
# all its subdirectories (scope is "global").
|
||||
AppendToConfigVar DEFINES : HAIKU_TOP src kits : RUN_WITHOUT_REGISTRAR
|
||||
: global ;
|
||||
|
||||
# Set the debug level for file src/bin/gdb/gdb/haiku-nat.c (note, that
|
||||
# the object file must be specified) to 1. It is worth mentioning, that the
|
||||
# executable the object file is linked into (gdb), will still be placed in
|
||||
# generated/objects/.../release/... Only when setting DEBUG for the executable,
|
||||
# too, it will be placed in .../debug_1/...
|
||||
DEBUG on <src!bin!gdb!gdb!>haiku-nat.o = 1 ;
|
||||
|
||||
|
||||
# Haiku Image Related Modifications
|
||||
|
||||
# Create a 100 MB image at /tmp/walter.image.
|
||||
HAIKU_IMAGE_NAME = walter.image ;
|
||||
HAIKU_IMAGE_DIR = /tmp ;
|
||||
HAIKU_IMAGE_SIZE = 100 ;
|
||||
|
||||
# Name the VMWare image walter.vmdk (in directory $(HAIKU_IMAGE_DIR)).
|
||||
HAIKU_VMWARE_IMAGE_NAME = walter.vmdk ;
|
||||
|
||||
# Install Haiku in directory /Haiku.
|
||||
HAIKU_INSTALL_DIR = /Haiku ;
|
||||
|
||||
# If the image does already exist it won't be zeroed out. It will nevertheless
|
||||
# freshly be initialized with BFS. Useful when installing Haiku on a partition.
|
||||
HAIKU_DONT_CLEAR_IMAGE = 1 ;
|
||||
|
||||
|
||||
# Affects the haiku-image, haiku-vmware-image, and install-haiku targets. Only
|
||||
# targets on which the HAIKU_INCLUDE_IN_IMAGE variable has been set will be
|
||||
# updated in the image file/installation directory.
|
||||
# The update-image, update-vmware-image, and update-install targets always invoke
|
||||
# this rule, so one likely doesn't ever need to do it manually.
|
||||
SetUpdateHaikuImageOnly 1 ;
|
||||
|
||||
# libbe.so and the kernel will be updated on image updates. Note that this
|
||||
# generally doesn't work for pseudo targets (it does where special support
|
||||
# has been added, like for "kernel").
|
||||
HAIKU_INCLUDE_IN_IMAGE on libbe.so kernel = 1 ;
|
||||
|
||||
# Add "crashing_app" to the beos/bin directory of the Haiku image/installation.
|
||||
# Note, that this also makes the image depend on the target, i.e. it is
|
||||
# automatically updated when the image is built.
|
||||
AddFilesToHaikuImage beos bin : crashing_app ;
|
||||
|
||||
# Make a symlink to home/config/bin/crash.
|
||||
AddSymlinkToHaikuImage home config bin : /beos/bin/crashing_app : crash ;
|
||||
|
||||
# Adds the source directories src/kits/storage and src/tests/servers/debug
|
||||
# (recursively) to the image (as /boot/home/HaikuSources/src/kits/storage
|
||||
# and /boot/home/HaikuSources/src/tests/servers/debug respectively).
|
||||
# Note that the second directory will also be copied, if the image will only
|
||||
# be updated; the first one won't in that case.
|
||||
AddSourceDirectoryToHaikuImage src/kits/storage ;
|
||||
AddSourceDirectoryToHaikuImage src/tests/servers/debug : 1 ;
|
||||
|
||||
# Unzips the given zip archive onto the image under /boot/develop/tools.
|
||||
UnzipArchiveToHaikuImage develop tools
|
||||
: /home/bonefish/develop/haiku/misc/gcc-2.95.3-beos-070218/gcc-2.95.3_binutils-2.17_rel-070218.zip ;
|
||||
|
||||
# Adds the optional package WonderBrush to the image. The package is downloaded
|
||||
# via wget (i.e. wget must be installed).
|
||||
AddOptionalHaikuImagePackages WonderBrush ;
|
||||
|
||||
# Adds the optional package Vision to the image. See above.
|
||||
AddOptionalHaikuImagePackages Vision ;
|
||||
|
||||
# Add all available optional packages.
|
||||
HAIKU_ADD_ALL_OPTIONAL_PACKAGES = 1 ;
|
||||
|
||||
# Specify scripts that shall be run when populating the image/installation
|
||||
# directory. The "early" script is run before anything has been copied onto
|
||||
# the image/into the installation directory. The "late" script is run after
|
||||
# everything has been copied, but before the MIME database is installed.
|
||||
HAIKU_IMAGE_EARLY_USER_SCRIPTS = $(HAIKU_TOP)/../early-image-script.sh ;
|
||||
HAIKU_IMAGE_LATE_USER_SCRIPTS = $(HAIKU_TOP)/../late-image-script.sh ;
|
||||
|
||||
|
||||
# Creating Sourceable Shell Scripts
|
||||
|
||||
# If you use shell scripts (e.g. for testing) that need to access targets or
|
||||
# build system properties, you can tell the build system to generate a
|
||||
# variables defining shell script you can source from your shell script.
|
||||
|
||||
# General setup for the shell script to generate. Name is test.inc, located
|
||||
# in the output directory.
|
||||
MakeLocate test.inc : $(HAIKU_OUTPUT_DIR) ;
|
||||
Always test.inc ;
|
||||
|
||||
# Define variable "outputDir" in the shell script, with the value of
|
||||
# HAIKU_OUTPUT_DIR.
|
||||
AddVariableToScript test.inc : outputDir : $(HAIKU_OUTPUT_DIR) ;
|
||||
|
||||
# Define variables "bfsShell" and "fsShellCommand" referring to the
|
||||
# generated bfs_shell and fs_shell_command respectively.
|
||||
AddTargetVariableToScript test.inc : bfs_shell : bfsShell ;
|
||||
AddTargetVariableToScript test.inc : fs_shell_command : fsShellCommand ;
|
||||
|
||||
# If no variable name is given, the name (without grist) of the target is
|
||||
# used, i.e. a variable "rc" referring to the rc command built for the host
|
||||
# platform is defined in the script.
|
||||
AddTargetVariableToScript test.inc : <build>rc ;
|
||||
|
||||
|
||||
# Optimizing Jamfile Parsing Times
|
||||
|
||||
# Setting this variable will prevent the root Jamfile to include the Jamfile
|
||||
# in the src directory. Instead only the directories required for building the
|
||||
# build tools are included. Only useful in combination with DeferredSubInclude.
|
||||
HAIKU_DONT_INCLUDE_SRC = 1 ;
|
||||
|
||||
# Schedule the given subdirectory for inclusion at the end of the root
|
||||
# Jamfile (directly using SubInclude here is not possible). Using this
|
||||
# feature together with HAIKU_DONT_INCLUDE_SRC allows developers working
|
||||
# only on a subproject to reduce Jamfile parsing times considerably.
|
||||
DeferredSubInclude HAIKU_TOP src tests add-ons kernel file_systems
|
||||
userlandfs ;
|
||||
|
||||
|
||||
# Copy the posix test suite onto the image (or on the installation) into
|
||||
# "home/posixtestsuite" directory, including the run script.
|
||||
HAIKU_ADD_POSIX_TEST_SUITE_TO_IMAGE = 1 ;
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
SubDir HAIKU_TOP src tests system libroot posix posixtestsuite ;
|
||||
|
||||
MakeLocatePlatform run_posix_tests ;
|
||||
Shell run_posix_tests : run_posix_tests.sh ;
|
||||
|
||||
SubInclude HAIKU_TOP src tests system libroot posix posixtestsuite conformance ;
|
||||
|
||||
@@ -3,14 +3,17 @@
|
||||
usage()
|
||||
{
|
||||
cat <<EOF
|
||||
Usage: $0 [AIO|MEM|MSG|SEM|SIG|THR|TMR|TPS]
|
||||
Run the tests for POSIX area specified by the 3 letter tag
|
||||
in the POSIX spec
|
||||
Usage: $0 all
|
||||
to run all the available tests
|
||||
|
||||
$0 standard
|
||||
to run all the standard tests
|
||||
or
|
||||
$0 all
|
||||
to run all the available tests.
|
||||
|
||||
you can run the tests for optional Posix
|
||||
functionality areas as specified by the
|
||||
letter tag in the posix spec
|
||||
$0 [AIO|MEM|MSG|SEM|SIG|THR|TMR|TPS]
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
@@ -21,6 +24,21 @@ targets()
|
||||
}
|
||||
|
||||
|
||||
standard_tests()
|
||||
{
|
||||
echo "difftime()"
|
||||
conformance/interfaces/difftime/difftime_1-1
|
||||
echo ""
|
||||
echo "fork()"
|
||||
conformance/interfaces/fork/fork_3-1
|
||||
conformance/interfaces/fork/fork_4-1
|
||||
conformance/interfaces/fork/fork_6-1
|
||||
conformance/interfaces/fork/fork_8-1
|
||||
conformance/interfaces/fork/fork_9-1
|
||||
conformance/interfaces/fork/fork_12-1
|
||||
}
|
||||
|
||||
|
||||
asynchronous_input_output_tests()
|
||||
{
|
||||
echo "asynchronous_input_output_tests: Not yet implemented."
|
||||
@@ -79,6 +97,7 @@ signals_tests()
|
||||
|
||||
all_tests()
|
||||
{
|
||||
standard_tests
|
||||
asynchronous_input_output_tests
|
||||
signals_tests
|
||||
}
|
||||
@@ -91,6 +110,9 @@ sleep 1
|
||||
all) echo "Executing all tests:"
|
||||
all_tests
|
||||
;;
|
||||
standard) echo "Executing standard tests:"
|
||||
standard_tests
|
||||
;;
|
||||
AIO) echo "Executing asynchronous I/O tests"
|
||||
asynchronous_input_output_tests
|
||||
;;
|
||||
|
||||
Reference in New Issue
Block a user