summaryrefslogtreecommitdiffstats
path: root/winpr/libwinpr/file/test/CMakeLists.txt
blob: 3999271105c859a5950872a47b3c1710443b2ce4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
if (NOT WIN32)
	set(MODULE_NAME "TestFile")
	set(MODULE_PREFIX "TEST_FILE")

	set(${MODULE_PREFIX}_DRIVER ${MODULE_NAME}.c)

	set(${MODULE_PREFIX}_TESTS
		TestFileCreateFile.c
		TestFileDeleteFile.c
		TestFileReadFile.c
		TestSetFileAttributes.c
		TestFileWriteFile.c
		TestFilePatternMatch.c
		TestFileFindFirstFile.c
		TestFileFindFirstFileEx.c
		TestFileFindNextFile.c
		TestFileGetStdHandle.c
		)

	create_test_sourcelist(${MODULE_PREFIX}_SRCS
		${${MODULE_PREFIX}_DRIVER}
		${${MODULE_PREFIX}_TESTS})

	add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})

	target_link_libraries(${MODULE_NAME} winpr)

	set_target_properties(${MODULE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}")

	if(NOT MSVC)
		set(TEST_AREA "${TESTING_OUTPUT_DIRECTORY}/${MODULE_NAME}Area")
	else()
		set(TEST_AREA "${TESTING_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/${MODULE_NAME}Area")
	endif()

	file(MAKE_DIRECTORY "${TEST_AREA}")
	file(WRITE "${TEST_AREA}/TestFile1" "TestFile1")
	file(WRITE "${TEST_AREA}/TestFile2" "TestFile2")
	file(WRITE "${TEST_AREA}/TestFile3" "TestFile3")
	file(MAKE_DIRECTORY "${TEST_AREA}/TestDirectory1")
	file(WRITE "${TEST_AREA}/TestDirectory1/TestDirectory1File1" "TestDirectory1File1")
	file(MAKE_DIRECTORY "${TEST_AREA}/TestDirectory2")
	file(WRITE "${TEST_AREA}/TestDirectory2/TestDirectory2File1" "TestDirectory2File1")
	file(WRITE "${TEST_AREA}/TestDirectory2/TestDirectory2File2" "TestDirectory2File2")
	file(MAKE_DIRECTORY "${TEST_AREA}/TestDirectory3")
	file(WRITE "${TEST_AREA}/TestDirectory3/TestDirectory3File1" "TestDirectory3File1")
	file(WRITE "${TEST_AREA}/TestDirectory3/TestDirectory3File2" "TestDirectory3File2")
	file(WRITE "${TEST_AREA}/TestDirectory3/TestDirectory3File3" "TestDirectory3File3")

	foreach(test ${${MODULE_PREFIX}_TESTS})
		get_filename_component(TestName ${test} NAME_WE)
		add_test(${TestName} ${TESTING_OUTPUT_DIRECTORY}/${MODULE_NAME} ${TestName} ${TEST_AREA})
	endforeach()

	set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR/Test")

endif()