• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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()19 int 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