# This file defines the optional packages containing tests of all kinds that can
# be added to the Haiku image. It is directly included from HaikuImage -- all
# variables defined there can be used

# Available Optional Test Packages:
#	libMicro
#	PosixTestSuite


# libMicro
if [ IsOptionalHaikuImagePackageAdded libMicro ] {
	# add scripts, tattle executable and README
	SEARCH on <libmicro>bench <libmicro>multiview <libmicro>README
		= [ FDirName $(HAIKU_TOP) src tests system benchmarks libMicro ] ;

	AddFilesToHaikuImage home benchmarks libmicro
		: <libmicro>bench <libmicro>multiview <libmicro>README ;
	AddFilesToHaikuImage home benchmarks libmicro bin-BePC : tattle ;

	# add libmicro benchmarks
	AddFilesToHaikuImage home benchmarks libmicro bin-BePC :
		atomic <libmicro>bind cachetocache cascade_cond cascade_fcntl
		cascade_flock cascade_lockf cascade_mutex chdir close close_tcp
		connection dup exec exec_bin exit exp fcntl fcntl_ndelay file_lock fork
		getcontext getenv <libmicro>getpeername getpid getrusage getsockname
		gettimeofday isatty listen localtime_r <libmicro>log longjmp lrand48
		lseek malloc memcpy memmove memrand memset mktime mmap mprotect msync
		munmap mutex nop <libmicro>open pipe poll pread pthread_create pwrite
		read realpath recurse select semop setcontext setsockopt sigaction
		siglongjmp signal sigprocmask <libmicro>socket socketpair <libmicro>stat
		strcasecmp strchr strcmp strcpy strftime strlen strtol system time times
		write writev ;

	AddSymlinkToHaikuImage home benchmarks libmicro : bin-BePC : bin ;

	AddOptionalPackageDescriptionToHaikuImage
		<libmicro>.OptionalPackageDescription
		: $(HAIKU_TOP) src tests system benchmarks libMicro ;
	AddLicenseToHaikuImage <libmicro>OPENSOLARIS.LICENSE : OpenSolaris
		: $(HAIKU_TOP) src tests system benchmarks libMicro ;
}


# PosixTestSuite
if [ IsOptionalHaikuImagePackageAdded PosixTestSuite ] {
	# 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 ;
	AddFilesToHaikuImage home posixtestsuite conformance interfaces sigset
		: sigset_1-1 sigset_2-1 sigset_3-1 sigset_4-1 sigset_5-1 sigset_6-1
		  sigset_7-1 sigset_8-1 sigset_9-1 sigset_10-1 ;
	AddFilesToHaikuImage home posixtestsuite conformance interfaces sigsuspend
		: sigsuspend_6-1 ;

	# add pthreads tests
	local interfacesDir = home posixtestsuite conformance interfaces ;
	AddFilesToHaikuImage $(interfacesDir) pthread_getspecific
		: pthread_getspecific_1-1 pthread_getspecific_3-1 ;
	AddFilesToHaikuImage $(interfacesDir) pthread_key_create
		: pthread_key_create_1-1 pthread_key_create_1-2 pthread_key_create_2-1
		  pthread_key_create_3-1 ;
	AddFilesToHaikuImage $(interfacesDir) pthread_key_delete
		: pthread_key_delete_1-1 pthread_key_delete_1-2 pthread_key_delete_2-1 ;
	AddFilesToHaikuImage $(interfacesDir) pthread_once
		: pthread_once_1-1 pthread_once_1-2 pthread_once_1-3 pthread_once_2-1 ;
	AddFilesToHaikuImage $(interfacesDir) pthread_setspecific
		: pthread_setspecific_1-1 pthread_setspecific_1-2 ;
}
