diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage index 1dcb6821ca..b3071130f2 100644 --- a/build/jam/HaikuImage +++ b/build/jam/HaikuImage @@ -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 diff --git a/build/jam/UserBuildConfig.sample b/build/jam/UserBuildConfig.sample index ba36a6e83b..8673a86bb4 100644 --- a/build/jam/UserBuildConfig.sample +++ b/build/jam/UserBuildConfig.sample @@ -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 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 : 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 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 : 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 ; diff --git a/src/tests/system/libroot/posix/posixtestsuite/Jamfile b/src/tests/system/libroot/posix/posixtestsuite/Jamfile index 9a9b52a9ea..a244a5b17a 100644 --- a/src/tests/system/libroot/posix/posixtestsuite/Jamfile +++ b/src/tests/system/libroot/posix/posixtestsuite/Jamfile @@ -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 ; diff --git a/src/tests/system/libroot/posix/posixtestsuite/run_posix_tests.sh b/src/tests/system/libroot/posix/posixtestsuite/run_posix_tests.sh index 301d2f10ea..4de5361cf3 100644 --- a/src/tests/system/libroot/posix/posixtestsuite/run_posix_tests.sh +++ b/src/tests/system/libroot/posix/posixtestsuite/run_posix_tests.sh @@ -3,14 +3,17 @@ usage() { cat <