F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
Models.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title Os/Models/Models.cpp
3 // \brief test used to validate Os/Models before use
4 // ======================================================================
5 #include "Os/Directory.hpp"
6 #include "Os/File.hpp"
7 #include "Os/FileSystem.hpp"
19 #include "Os/Mutex.hpp"
20 #include "Os/Os.hpp"
21 #include "Os/Queue.hpp"
22 #include "Os/RawTime.hpp"
23 #include "Os/Task.hpp"
24 
25 // Check consistency of every constant in the Os::File::Status enum
26 static_assert(static_cast<FwIndexType>(Os::File::Status::MAX_STATUS) ==
27  static_cast<FwIndexType>(Os::FileStatus::NUM_CONSTANTS),
28  "File status and FPP shadow enum have inconsistent number of values");
29 static_assert(static_cast<Os::FileStatus::T>(Os::File::Status::OP_OK) == Os::FileStatus::T::OP_OK,
30  "File status and FPP shadow enum do not match");
31 static_assert(static_cast<Os::FileStatus::T>(Os::File::Status::DOESNT_EXIST) == Os::FileStatus::T::DOESNT_EXIST,
32  "File status and FPP shadow enum do not match");
33 static_assert(static_cast<Os::FileStatus::T>(Os::File::Status::NO_SPACE) == Os::FileStatus::T::NO_SPACE,
34  "File status and FPP shadow enum do not match");
35 static_assert(static_cast<Os::FileStatus::T>(Os::File::Status::NO_PERMISSION) == Os::FileStatus::T::NO_PERMISSION,
36  "File status and FPP shadow enum do not match");
37 static_assert(static_cast<Os::FileStatus::T>(Os::File::Status::BAD_SIZE) == Os::FileStatus::T::BAD_SIZE,
38  "File status and FPP shadow enum do not match");
39 static_assert(static_cast<Os::FileStatus::T>(Os::File::Status::NOT_OPENED) == Os::FileStatus::T::NOT_OPENED,
40  "File status and FPP shadow enum do not match");
41 static_assert(static_cast<Os::FileStatus::T>(Os::File::Status::FILE_EXISTS) == Os::FileStatus::T::FILE_EXISTS,
42  "File status and FPP shadow enum do not match");
43 static_assert(static_cast<Os::FileStatus::T>(Os::File::Status::NOT_SUPPORTED) == Os::FileStatus::T::NOT_SUPPORTED,
44  "File status and FPP shadow enum do not match");
45 static_assert(static_cast<Os::FileStatus::T>(Os::File::Status::INVALID_MODE) == Os::FileStatus::T::INVALID_MODE,
46  "File status and FPP shadow enum do not match");
47 static_assert(static_cast<Os::FileStatus::T>(Os::File::Status::INVALID_ARGUMENT) == Os::FileStatus::T::INVALID_ARGUMENT,
48  "File status and FPP shadow enum do not match");
49 static_assert(static_cast<Os::FileStatus::T>(Os::File::Status::NO_MORE_RESOURCES) ==
50  Os::FileStatus::T::NO_MORE_RESOURCES,
51  "File status and FPP shadow enum do not match");
52 static_assert(static_cast<Os::FileStatus::T>(Os::File::Status::OTHER_ERROR) == Os::FileStatus::T::OTHER_ERROR,
53  "File status and FPP shadow enum do not match");
54 
55 // Check consistency of every constant in the Os::File::Mode enum
56 static_assert(static_cast<FwIndexType>(Os::File::Mode::MAX_OPEN_MODE) ==
57  static_cast<FwIndexType>(Os::FileMode::NUM_CONSTANTS),
58  "File mode and FPP shadow enum have inconsistent number of values");
59 static_assert(static_cast<Os::FileMode::T>(Os::File::Mode::OPEN_NO_MODE) == Os::FileMode::T::OPEN_NO_MODE,
60  "File mode and FPP shadow enum do not match");
61 static_assert(static_cast<Os::FileMode::T>(Os::File::Mode::OPEN_READ) == Os::FileMode::T::OPEN_READ,
62  "File mode and FPP shadow enum do not match");
63 static_assert(static_cast<Os::FileMode::T>(Os::File::Mode::OPEN_CREATE) == Os::FileMode::T::OPEN_CREATE,
64  "File mode and FPP shadow enum do not match");
65 static_assert(static_cast<Os::FileMode::T>(Os::File::Mode::OPEN_WRITE) == Os::FileMode::T::OPEN_WRITE,
66  "File mode and FPP shadow enum do not match");
67 static_assert(static_cast<Os::FileMode::T>(Os::File::Mode::OPEN_SYNC_WRITE) == Os::FileMode::T::OPEN_SYNC_WRITE,
68  "File mode and FPP shadow enum do not match");
69 static_assert(static_cast<Os::FileMode::T>(Os::File::Mode::OPEN_APPEND) == Os::FileMode::T::OPEN_APPEND,
70  "File mode and FPP shadow enum do not Mode");
71 
72 static_assert(static_cast<Os::TaskStatus::T>(Os::Task::Status::OP_OK) == Os::TaskStatus::T::OP_OK,
73  "Task status and FPP shadow enum do not match");
74 static_assert(static_cast<Os::TaskStatus::T>(Os::Task::Status::INVALID_HANDLE) == Os::TaskStatus::T::INVALID_HANDLE,
75  "Task status and FPP shadow enum do not match");
76 static_assert(static_cast<Os::TaskStatus::T>(Os::Task::Status::INVALID_PARAMS) == Os::TaskStatus::T::INVALID_PARAMS,
77  "Task status and FPP shadow enum do not match");
78 static_assert(static_cast<Os::TaskStatus::T>(Os::Task::Status::INVALID_STACK) == Os::TaskStatus::T::INVALID_STACK,
79  "Task status and FPP shadow enum do not match");
80 static_assert(static_cast<Os::TaskStatus::T>(Os::Task::Status::UNKNOWN_ERROR) == Os::TaskStatus::T::UNKNOWN_ERROR,
81  "Task status and FPP shadow enum do not match");
82 static_assert(static_cast<Os::TaskStatus::T>(Os::Task::Status::INVALID_AFFINITY) == Os::TaskStatus::T::INVALID_AFFINITY,
83  "Task status and FPP shadow enum do not match");
84 static_assert(static_cast<Os::TaskStatus::T>(Os::Task::Status::DELAY_ERROR) == Os::TaskStatus::T::DELAY_ERROR,
85  "Task status and FPP shadow enum do not match");
86 static_assert(static_cast<Os::TaskStatus::T>(Os::Task::Status::JOIN_ERROR) == Os::TaskStatus::T::JOIN_ERROR,
87  "Task status and FPP shadow enum do not match");
88 static_assert(static_cast<Os::TaskStatus::T>(Os::Task::Status::ERROR_RESOURCES) == Os::TaskStatus::T::ERROR_RESOURCES,
89  "Task status and FPP shadow enum do not match");
90 static_assert(static_cast<Os::TaskStatus::T>(Os::Task::Status::ERROR_PERMISSION) == Os::TaskStatus::T::ERROR_PERMISSION,
91  "Task status and FPP shadow enum do not match");
92 static_assert(static_cast<Os::TaskStatus::T>(Os::Task::Status::INVALID_STATE) == Os::TaskStatus::T::INVALID_STATE,
93  "Task status and FPP shadow enum do not match");
94 
95 static_assert(static_cast<Os::MutexStatus::T>(Os::Mutex::Status::OP_OK) == Os::MutexStatus::T::OP_OK,
96  "Mutex status and FPP shadow enum do not match");
97 static_assert(static_cast<Os::MutexStatus::T>(Os::Mutex::Status::ERROR_BUSY) == Os::MutexStatus::T::ERROR_BUSY,
98  "Mutex status and FPP shadow enum do not match");
99 static_assert(static_cast<Os::MutexStatus::T>(Os::Mutex::Status::ERROR_DEADLOCK) == Os::MutexStatus::T::ERROR_DEADLOCK,
100  "Mutex status and FPP shadow enum do not match");
101 static_assert(static_cast<Os::MutexStatus::T>(Os::Mutex::Status::ERROR_OTHER) == Os::MutexStatus::T::ERROR_OTHER,
102  "Mutex status and FPP shadow enum do not match");
103 
104 // Check consistency of every constant in the Os::Directory::Status enum
105 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::OP_OK) == Os::DirectoryStatus::T::OP_OK,
106  "Directory status and FPP shadow enum do not match");
107 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::DOESNT_EXIST) ==
108  Os::DirectoryStatus::T::DOESNT_EXIST,
109  "Directory status and FPP shadow enum do not match");
110 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::NO_PERMISSION) ==
111  Os::DirectoryStatus::T::NO_PERMISSION,
112  "Directory status and FPP shadow enum do not match");
113 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::NOT_OPENED) ==
114  Os::DirectoryStatus::T::NOT_OPENED,
115  "Directory status and FPP shadow enum do not match");
116 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::NOT_DIR) == Os::DirectoryStatus::T::NOT_DIR,
117  "Directory status and FPP shadow enum do not match");
118 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::NO_MORE_FILES) ==
119  Os::DirectoryStatus::T::NO_MORE_FILES,
120  "Directory status and FPP shadow enum do not match");
121 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::FILE_LIMIT) ==
122  Os::DirectoryStatus::T::FILE_LIMIT,
123  "Directory status and FPP shadow enum do not match");
124 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::BAD_DESCRIPTOR) ==
125  Os::DirectoryStatus::T::BAD_DESCRIPTOR,
126  "Directory status and FPP shadow enum do not match");
127 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::ALREADY_EXISTS) ==
128  Os::DirectoryStatus::T::ALREADY_EXISTS,
129  "Directory status and FPP shadow enum do not match");
130 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::NOT_SUPPORTED) ==
131  Os::DirectoryStatus::T::NOT_SUPPORTED,
132  "Directory status and FPP shadow enum do not match");
133 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::OTHER_ERROR) ==
135  "Directory status and FPP shadow enum do not match");
136 
137 // Check consistency of every constant in the Os::Directory::Mode enum
138 static_assert(static_cast<FwIndexType>(Os::Directory::OpenMode::MAX_OPEN_MODE) ==
139  static_cast<FwIndexType>(Os::DirectoryOpenMode::NUM_CONSTANTS),
140  "File mode and FPP shadow enum have inconsistent number of values");
141 static_assert(static_cast<Os::DirectoryOpenMode::T>(Os::Directory::OpenMode::READ) == Os::DirectoryOpenMode::T::READ,
142  "Directory mode and FPP shadow enum do not match");
143 static_assert(static_cast<Os::DirectoryOpenMode::T>(Os::Directory::OpenMode::CREATE_IF_MISSING) ==
144  Os::DirectoryOpenMode::T::CREATE_IF_MISSING,
145  "Directory mode and FPP shadow enum do not match");
146 static_assert(static_cast<Os::DirectoryOpenMode::T>(Os::Directory::OpenMode::CREATE_EXCLUSIVE) ==
147  Os::DirectoryOpenMode::T::CREATE_EXCLUSIVE,
148  "Directory mode and FPP shadow enum do not match");
149 
150 // Check consistency of every constant in the Os::FileSystem::Status enum
151 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::OP_OK) == Os::FileSystemStatus::T::OP_OK,
152  "FileSystem status and FPP shadow enum do not match");
153 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::ALREADY_EXISTS) ==
154  Os::FileSystemStatus::T::ALREADY_EXISTS,
155  "FileSystem status and FPP shadow enum do not match");
156 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::NO_SPACE) ==
158  "FileSystem status and FPP shadow enum do not match");
159 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::NO_PERMISSION) ==
160  Os::FileSystemStatus::T::NO_PERMISSION,
161  "FileSystem status and FPP shadow enum do not match");
162 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::NOT_DIR) == Os::FileSystemStatus::T::NOT_DIR,
163  "FileSystem status and FPP shadow enum do not match");
164 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::IS_DIR) == Os::FileSystemStatus::T::IS_DIR,
165  "FileSystem status and FPP shadow enum do not match");
166 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::NOT_EMPTY) ==
167  Os::FileSystemStatus::T::NOT_EMPTY,
168  "FileSystem status and FPP shadow enum do not match");
169 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::INVALID_PATH) ==
170  Os::FileSystemStatus::T::INVALID_PATH,
171  "FileSystem status and FPP shadow enum do not match");
172 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::DOESNT_EXIST) ==
173  Os::FileSystemStatus::T::DOESNT_EXIST,
174  "FileSystem status and FPP shadow enum do not match");
175 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::FILE_LIMIT) ==
176  Os::FileSystemStatus::T::FILE_LIMIT,
177  "FileSystem status and FPP shadow enum do not match");
178 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::BUSY) == Os::FileSystemStatus::T::BUSY,
179  "FileSystem status and FPP shadow enum do not match");
180 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::NO_MORE_FILES) ==
181  Os::FileSystemStatus::T::NO_MORE_FILES,
182  "FileSystem status and FPP shadow enum do not match");
183 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::BUFFER_TOO_SMALL) ==
184  Os::FileSystemStatus::T::BUFFER_TOO_SMALL,
185  "FileSystem status and FPP shadow enum do not match");
186 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::EXDEV_ERROR) ==
187  Os::FileSystemStatus::T::EXDEV_ERROR,
188  "FileSystem status and FPP shadow enum do not match");
189 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::OVERFLOW_ERROR) ==
190  Os::FileSystemStatus::T::OVERFLOW_ERROR,
191  "FileSystem status and FPP shadow enum do not match");
192 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::NOT_SUPPORTED) ==
193  Os::FileSystemStatus::T::NOT_SUPPORTED,
194  "FileSystem status and FPP shadow enum do not match");
195 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::OTHER_ERROR) ==
197  "FileSystem status and FPP shadow enum do not match");
198 
199 // Check consistency of every constant in the Os::RawTime::Status enum
200 static_assert(static_cast<Os::RawTimeStatus::T>(Os::RawTime::Status::OP_OK) == Os::RawTimeStatus::T::OP_OK,
201  "RawTime status enums do not match");
202 static_assert(static_cast<Os::RawTimeStatus::T>(Os::RawTime::Status::OP_OVERFLOW) == Os::RawTimeStatus::T::OP_OVERFLOW,
203  "RawTime status enums do not match");
204 static_assert(static_cast<Os::RawTimeStatus::T>(Os::RawTime::Status::INVALID_PARAMS) ==
205  Os::RawTimeStatus::T::INVALID_PARAMS,
206  "RawTime status enums do not match");
207 static_assert(static_cast<Os::RawTimeStatus::T>(Os::RawTime::Status::OTHER_ERROR) == Os::RawTimeStatus::T::OTHER_ERROR,
208  "Generic status enums do not match");
209 
210 // Check consistency of every constant in the Os::Queue::Status enum
211 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::OP_OK) == Os::QueueStatus::T::OP_OK,
212  "Queue status enums do not match");
213 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::ALREADY_CREATED) ==
214  Os::QueueStatus::T::ALREADY_CREATED,
215  "Queue status enums do not match");
216 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::EMPTY) == Os::QueueStatus::T::EMPTY,
217  "Queue status enums do not match");
218 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::UNINITIALIZED) == Os::QueueStatus::T::UNINITIALIZED,
219  "Queue status enums do not match");
220 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::SIZE_MISMATCH) == Os::QueueStatus::T::SIZE_MISMATCH,
221  "Queue status enums do not match");
222 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::SEND_ERROR) == Os::QueueStatus::T::SEND_ERROR,
223  "Queue status enums do not match");
224 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::RECEIVE_ERROR) == Os::QueueStatus::T::RECEIVE_ERROR,
225  "Queue status enums do not match");
226 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::INVALID_PRIORITY) ==
227  Os::QueueStatus::T::INVALID_PRIORITY,
228  "Queue status enums do not match");
229 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::FULL) == Os::QueueStatus::T::FULL,
230  "Queue status enums do not match");
231 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::UNKNOWN_ERROR) == Os::QueueStatus::T::UNKNOWN_ERROR,
232  "Queue status enums do not match");
233 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::ALLOCATION_FAILED) ==
234  Os::QueueStatus::T::ALLOCATION_FAILED,
235  "Queue status enums do not match");
236 
237 // Check consistency of every constant in the Os::Queue::BlockingType enum
238 static_assert(static_cast<Os::QueueBlockingType::T>(Os::Queue::BlockingType::BLOCKING) ==
239  Os::QueueBlockingType::T::BLOCKING,
240  "Queue BlockingType enums do not match");
241 static_assert(static_cast<Os::QueueBlockingType::T>(Os::Queue::BlockingType::NONBLOCKING) ==
242  Os::QueueBlockingType::T::NONBLOCKING,
243  "Queue BlockingType enums do not match");
244 
245 // Check Generic mappings
246 static_assert(static_cast<Os::GenericStatus::T>(Os::Generic::Status::OP_OK) == Os::GenericStatus::T::OP_OK,
247  "Generic status enums do not match");
248 static_assert(static_cast<Os::GenericStatus::T>(Os::Generic::Status::ERROR) == Os::GenericStatus::T::ERROR,
249  "Generic status enums do not match");
Operation succeeded.
Definition: Os.hpp:26
A catch-all for other errors. Have to look in implementation-specific code.
Operation failed.
Definition: Os.hpp:27
The number of enumerated constants.
The number of enumerated constants.
The number of enumerated constants.
No space left on the device for writing.