1 /* 2 * Copyright Andrey Semashev 2018. 3 * Distributed under the Boost Software License, Version 1.0. 4 * (See accompanying file LICENSE_1_0.txt or copy at 5 * http://www.boost.org/LICENSE_1_0.txt) 6 */ 7 /*! 8 * \file file_management_abi.cpp 9 * \author Andrey Semashev 10 * \date 10.03.2018 11 * 12 * \brief This file contains ABI test for file_management.hpp 13 */ 14 15 #include <boost/winapi/file_management.hpp> 16 #include <windows.h> 17 #include "abi_test_tools.hpp" 18 main()19int main() 20 { 21 BOOST_WINAPI_TEST_CONSTANT(INVALID_FILE_SIZE); 22 BOOST_WINAPI_TEST_CONSTANT(INVALID_SET_FILE_POINTER); 23 BOOST_WINAPI_TEST_CONSTANT(INVALID_FILE_ATTRIBUTES); 24 25 BOOST_WINAPI_TEST_CONSTANT(FILE_ATTRIBUTE_READONLY); 26 BOOST_WINAPI_TEST_CONSTANT(FILE_ATTRIBUTE_HIDDEN); 27 BOOST_WINAPI_TEST_CONSTANT(FILE_ATTRIBUTE_SYSTEM); 28 BOOST_WINAPI_TEST_CONSTANT(FILE_ATTRIBUTE_DIRECTORY); 29 BOOST_WINAPI_TEST_CONSTANT(FILE_ATTRIBUTE_ARCHIVE); 30 BOOST_WINAPI_TEST_CONSTANT(FILE_ATTRIBUTE_DEVICE); 31 BOOST_WINAPI_TEST_CONSTANT(FILE_ATTRIBUTE_NORMAL); 32 BOOST_WINAPI_TEST_CONSTANT(FILE_ATTRIBUTE_TEMPORARY); 33 BOOST_WINAPI_TEST_CONSTANT(FILE_ATTRIBUTE_SPARSE_FILE); 34 BOOST_WINAPI_TEST_CONSTANT(FILE_ATTRIBUTE_REPARSE_POINT); 35 BOOST_WINAPI_TEST_CONSTANT(FILE_ATTRIBUTE_COMPRESSED); 36 BOOST_WINAPI_TEST_CONSTANT(FILE_ATTRIBUTE_OFFLINE); 37 BOOST_WINAPI_TEST_CONSTANT(FILE_ATTRIBUTE_NOT_CONTENT_INDEXED); 38 BOOST_WINAPI_TEST_CONSTANT(FILE_ATTRIBUTE_ENCRYPTED); 39 40 BOOST_WINAPI_TEST_CONSTANT(CREATE_NEW); 41 BOOST_WINAPI_TEST_CONSTANT(CREATE_ALWAYS); 42 BOOST_WINAPI_TEST_CONSTANT(OPEN_EXISTING); 43 BOOST_WINAPI_TEST_CONSTANT(OPEN_ALWAYS); 44 BOOST_WINAPI_TEST_CONSTANT(TRUNCATE_EXISTING); 45 46 BOOST_WINAPI_TEST_CONSTANT(FILE_SHARE_READ); 47 BOOST_WINAPI_TEST_CONSTANT(FILE_SHARE_WRITE); 48 BOOST_WINAPI_TEST_CONSTANT(FILE_SHARE_DELETE); 49 50 BOOST_WINAPI_TEST_CONSTANT(FILE_BEGIN); 51 BOOST_WINAPI_TEST_CONSTANT(FILE_CURRENT); 52 BOOST_WINAPI_TEST_CONSTANT(FILE_END); 53 54 #if BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM 55 #if !defined(BOOST_NO_ANSI_APIS) 56 BOOST_WINAPI_TEST_STRUCT(WIN32_FIND_DATAA, (dwFileAttributes)(ftCreationTime)(ftLastAccessTime)(ftLastWriteTime)(nFileSizeHigh)(nFileSizeLow)(cFileName)(cAlternateFileName)); 57 #endif 58 59 BOOST_WINAPI_TEST_STRUCT(WIN32_FIND_DATAW, (dwFileAttributes)(ftCreationTime)(ftLastAccessTime)(ftLastWriteTime)(nFileSizeHigh)(nFileSizeLow)(cFileName)(cAlternateFileName)); 60 BOOST_WINAPI_TEST_STRUCT(BY_HANDLE_FILE_INFORMATION, (dwFileAttributes)(ftCreationTime)(ftLastAccessTime)(ftLastWriteTime)(dwVolumeSerialNumber)(nFileSizeHigh)(nFileSizeLow)(nNumberOfLinks)(nFileIndexHigh)(nFileIndexLow)); 61 62 #if !defined(BOOST_NO_ANSI_APIS) 63 BOOST_WINAPI_TEST_FUNCTION_SIGNATURE(AreFileApisANSI); 64 #endif 65 66 #if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WINXP 67 BOOST_WINAPI_TEST_FUNCTION_SIGNATURE(SetFileValidData); 68 #endif 69 BOOST_WINAPI_TEST_FUNCTION_SIGNATURE(LockFile); 70 BOOST_WINAPI_TEST_FUNCTION_SIGNATURE(UnlockFile); 71 #endif // BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM 72 73 #if BOOST_WINAPI_PARTITION_APP || BOOST_WINAPI_PARTITION_SYSTEM 74 #if !defined(BOOST_NO_ANSI_APIS) 75 BOOST_WINAPI_TEST_FUNCTION_SIGNATURE(DeleteFileA); 76 BOOST_WINAPI_TEST_FUNCTION_SIGNATURE(MoveFileExA); 77 #endif 78 BOOST_WINAPI_TEST_FUNCTION_SIGNATURE(DeleteFileW); 79 BOOST_WINAPI_TEST_FUNCTION_SIGNATURE(MoveFileExW); 80 BOOST_WINAPI_TEST_FUNCTION_SIGNATURE(FindClose); 81 BOOST_WINAPI_TEST_FUNCTION_SIGNATURE(SetEndOfFile); 82 #endif // BOOST_WINAPI_PARTITION_APP || BOOST_WINAPI_PARTITION_SYSTEM 83 84 #if BOOST_WINAPI_PARTITION_APP_SYSTEM 85 #if !defined(BOOST_NO_ANSI_APIS) 86 BOOST_WINAPI_TEST_FUNCTION_SIGNATURE(GetFileAttributesA); 87 #endif 88 BOOST_WINAPI_TEST_FUNCTION_SIGNATURE(GetFileAttributesW); 89 BOOST_WINAPI_TEST_FUNCTION_SIGNATURE(SetFilePointer); 90 #endif // BOOST_WINAPI_PARTITION_APP_SYSTEM 91 92 return boost::report_errors(); 93 } 94