SubDir OBOS_TOP src tests kits storage ;

CommonUnitTest StorageKitTester
	: StorageKitTester.cpp
		BasicTest.cpp
		DirectoryTest.cpp
		EntryTest.cpp
		FileTest.cpp
		FindDirectoryTest.cpp
		MimeTypeTest.cpp
		NodeTest.cpp
		PathTest.cpp
		QueryTest.cpp
		ResourcesTest.cpp
		ResourceStringsTest.cpp
		StatableTest.cpp
		SymLinkTest.cpp
		TestApp.cpp
		TestUtils.cpp
	: kits storage
	: libstorage.so be stdc++.r4
	: be stdc++.r4
	: [ FDirName os storage ]
;

# To run the tests the libraries must be around.
{
	local libdir = [ on StorageKitTester FDirName $(LOCATE[1]) lib ] ;
	MakeLocate <$(SOURCE_GRIST)>libstorage.so : $(libdir) ;
	MakeLocate <$(SOURCE_GRIST)>libbeadapter.so : $(libdir) ;
	local splitLibdir = [ SplitPath $(libdir) ] ;
	SymLink <$(SOURCE_GRIST)>libstorage.so
		: [ FRelPath $(splitLibdir)
			: [ on libstorage.so SplitPath $(LOCATE[1]) ] libstorage.so ] ;
	SymLink <$(SOURCE_GRIST)>libbeadapter.so
		: [ FRelPath $(splitLibdir)
			: [ on libbeadapter.so SplitPath $(LOCATE[1]) ] libbeadapter.so ] ;
	DEPENDS StorageKitTester StorageKitTester_r5
		: <$(SOURCE_GRIST)>libstorage.so <$(SOURCE_GRIST)>libbeadapter.so ;
}

# To run the tests some test files must be around.
{
	local resdir = [ on StorageKitTester FDirName $(LOCATE[1]) resources ] ;
	resdir = $(resdir:G=<storage!kit!test!files>) ;
	SymLink $(resdir) : [ FRelPath [ SplitPath $(resdir:D) ]
									: [ SplitPath $(SUBDIR) ] resources ] ;
	NOUPDATE $(resdir) ;
	DEPENDS StorageKitTester StorageKitTester_r5 : $(resdir) ;
}

