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_PRIORITY) == Os::TaskStatus::T::INVALID_PRIORITY,
79  "Task status and FPP shadow enum do not match");
80 static_assert(static_cast<Os::TaskStatus::T>(Os::Task::Status::INVALID_STACK) == Os::TaskStatus::T::INVALID_STACK,
81  "Task status and FPP shadow enum do not match");
82 static_assert(static_cast<Os::TaskStatus::T>(Os::Task::Status::UNKNOWN_ERROR) == Os::TaskStatus::T::UNKNOWN_ERROR,
83  "Task status and FPP shadow enum do not match");
84 static_assert(static_cast<Os::TaskStatus::T>(Os::Task::Status::INVALID_AFFINITY) == Os::TaskStatus::T::INVALID_AFFINITY,
85  "Task status and FPP shadow enum do not match");
86 static_assert(static_cast<Os::TaskStatus::T>(Os::Task::Status::DELAY_ERROR) == Os::TaskStatus::T::DELAY_ERROR,
87  "Task status and FPP shadow enum do not match");
88 static_assert(static_cast<Os::TaskStatus::T>(Os::Task::Status::JOIN_ERROR) == Os::TaskStatus::T::JOIN_ERROR,
89  "Task status and FPP shadow enum do not match");
90 static_assert(static_cast<Os::TaskStatus::T>(Os::Task::Status::ERROR_RESOURCES) == Os::TaskStatus::T::ERROR_RESOURCES,
91  "Task status and FPP shadow enum do not match");
92 static_assert(static_cast<Os::TaskStatus::T>(Os::Task::Status::ERROR_PERMISSION) == Os::TaskStatus::T::ERROR_PERMISSION,
93  "Task status and FPP shadow enum do not match");
94 static_assert(static_cast<Os::TaskStatus::T>(Os::Task::Status::INVALID_STATE) == Os::TaskStatus::T::INVALID_STATE,
95  "Task status and FPP shadow enum do not match");
96 
97 static_assert(static_cast<Os::MutexStatus::T>(Os::Mutex::Status::OP_OK) == Os::MutexStatus::T::OP_OK,
98  "Mutex status and FPP shadow enum do not match");
99 static_assert(static_cast<Os::MutexStatus::T>(Os::Mutex::Status::ERROR_BUSY) == Os::MutexStatus::T::ERROR_BUSY,
100  "Mutex status and FPP shadow enum do not match");
101 static_assert(static_cast<Os::MutexStatus::T>(Os::Mutex::Status::ERROR_DEADLOCK) == Os::MutexStatus::T::ERROR_DEADLOCK,
102  "Mutex status and FPP shadow enum do not match");
103 static_assert(static_cast<Os::MutexStatus::T>(Os::Mutex::Status::ERROR_OTHER) == Os::MutexStatus::T::ERROR_OTHER,
104  "Mutex status and FPP shadow enum do not match");
105 
106 // Check consistency of every constant in the Os::Directory::Status enum
107 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::OP_OK) == Os::DirectoryStatus::T::OP_OK,
108  "Directory status and FPP shadow enum do not match");
109 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::DOESNT_EXIST) ==
110  Os::DirectoryStatus::T::DOESNT_EXIST,
111  "Directory status and FPP shadow enum do not match");
112 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::NO_PERMISSION) ==
113  Os::DirectoryStatus::T::NO_PERMISSION,
114  "Directory status and FPP shadow enum do not match");
115 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::NOT_OPENED) ==
116  Os::DirectoryStatus::T::NOT_OPENED,
117  "Directory status and FPP shadow enum do not match");
118 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::NOT_DIR) == Os::DirectoryStatus::T::NOT_DIR,
119  "Directory status and FPP shadow enum do not match");
120 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::NO_MORE_FILES) ==
121  Os::DirectoryStatus::T::NO_MORE_FILES,
122  "Directory status and FPP shadow enum do not match");
123 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::FILE_LIMIT) ==
124  Os::DirectoryStatus::T::FILE_LIMIT,
125  "Directory status and FPP shadow enum do not match");
126 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::BAD_DESCRIPTOR) ==
127  Os::DirectoryStatus::T::BAD_DESCRIPTOR,
128  "Directory status and FPP shadow enum do not match");
129 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::ALREADY_EXISTS) ==
130  Os::DirectoryStatus::T::ALREADY_EXISTS,
131  "Directory status and FPP shadow enum do not match");
132 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::NOT_SUPPORTED) ==
133  Os::DirectoryStatus::T::NOT_SUPPORTED,
134  "Directory status and FPP shadow enum do not match");
135 static_assert(static_cast<Os::DirectoryStatus::T>(Os::Directory::Status::OTHER_ERROR) ==
137  "Directory status and FPP shadow enum do not match");
138 
139 // Check consistency of every constant in the Os::Directory::Mode enum
140 static_assert(static_cast<FwIndexType>(Os::Directory::OpenMode::MAX_OPEN_MODE) ==
141  static_cast<FwIndexType>(Os::DirectoryOpenMode::NUM_CONSTANTS),
142  "File mode and FPP shadow enum have inconsistent number of values");
143 static_assert(static_cast<Os::DirectoryOpenMode::T>(Os::Directory::OpenMode::READ) == Os::DirectoryOpenMode::T::READ,
144  "Directory mode and FPP shadow enum do not match");
145 static_assert(static_cast<Os::DirectoryOpenMode::T>(Os::Directory::OpenMode::CREATE_IF_MISSING) ==
146  Os::DirectoryOpenMode::T::CREATE_IF_MISSING,
147  "Directory mode and FPP shadow enum do not match");
148 static_assert(static_cast<Os::DirectoryOpenMode::T>(Os::Directory::OpenMode::CREATE_EXCLUSIVE) ==
149  Os::DirectoryOpenMode::T::CREATE_EXCLUSIVE,
150  "Directory mode and FPP shadow enum do not match");
151 
152 // Check consistency of every constant in the Os::FileSystem::Status enum
153 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::OP_OK) == Os::FileSystemStatus::T::OP_OK,
154  "FileSystem status and FPP shadow enum do not match");
155 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::ALREADY_EXISTS) ==
156  Os::FileSystemStatus::T::ALREADY_EXISTS,
157  "FileSystem status and FPP shadow enum do not match");
158 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::NO_SPACE) ==
160  "FileSystem status and FPP shadow enum do not match");
161 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::NO_PERMISSION) ==
162  Os::FileSystemStatus::T::NO_PERMISSION,
163  "FileSystem status and FPP shadow enum do not match");
164 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::NOT_DIR) == Os::FileSystemStatus::T::NOT_DIR,
165  "FileSystem status and FPP shadow enum do not match");
166 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::IS_DIR) == Os::FileSystemStatus::T::IS_DIR,
167  "FileSystem status and FPP shadow enum do not match");
168 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::NOT_EMPTY) ==
169  Os::FileSystemStatus::T::NOT_EMPTY,
170  "FileSystem status and FPP shadow enum do not match");
171 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::INVALID_PATH) ==
172  Os::FileSystemStatus::T::INVALID_PATH,
173  "FileSystem status and FPP shadow enum do not match");
174 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::DOESNT_EXIST) ==
175  Os::FileSystemStatus::T::DOESNT_EXIST,
176  "FileSystem status and FPP shadow enum do not match");
177 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::FILE_LIMIT) ==
178  Os::FileSystemStatus::T::FILE_LIMIT,
179  "FileSystem status and FPP shadow enum do not match");
180 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::BUSY) == Os::FileSystemStatus::T::BUSY,
181  "FileSystem status and FPP shadow enum do not match");
182 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::NO_MORE_FILES) ==
183  Os::FileSystemStatus::T::NO_MORE_FILES,
184  "FileSystem status and FPP shadow enum do not match");
185 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::BUFFER_TOO_SMALL) ==
186  Os::FileSystemStatus::T::BUFFER_TOO_SMALL,
187  "FileSystem status and FPP shadow enum do not match");
188 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::EXDEV_ERROR) ==
189  Os::FileSystemStatus::T::EXDEV_ERROR,
190  "FileSystem status and FPP shadow enum do not match");
191 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::OVERFLOW_ERROR) ==
192  Os::FileSystemStatus::T::OVERFLOW_ERROR,
193  "FileSystem status and FPP shadow enum do not match");
194 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::NOT_SUPPORTED) ==
195  Os::FileSystemStatus::T::NOT_SUPPORTED,
196  "FileSystem status and FPP shadow enum do not match");
197 static_assert(static_cast<Os::FileSystemStatus::T>(Os::FileSystem::Status::OTHER_ERROR) ==
199  "FileSystem status and FPP shadow enum do not match");
200 
201 // Check consistency of every constant in the Os::RawTime::Status enum
202 static_assert(static_cast<Os::RawTimeStatus::T>(Os::RawTime::Status::OP_OK) == Os::RawTimeStatus::T::OP_OK,
203  "RawTime status enums do not match");
204 static_assert(static_cast<Os::RawTimeStatus::T>(Os::RawTime::Status::OP_OVERFLOW) == Os::RawTimeStatus::T::OP_OVERFLOW,
205  "RawTime status enums do not match");
206 static_assert(static_cast<Os::RawTimeStatus::T>(Os::RawTime::Status::INVALID_PARAMS) ==
207  Os::RawTimeStatus::T::INVALID_PARAMS,
208  "RawTime status enums do not match");
209 static_assert(static_cast<Os::RawTimeStatus::T>(Os::RawTime::Status::OTHER_ERROR) == Os::RawTimeStatus::T::OTHER_ERROR,
210  "Generic status enums do not match");
211 
212 // Check consistency of every constant in the Os::Queue::Status enum
213 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::OP_OK) == Os::QueueStatus::T::OP_OK,
214  "Queue status enums do not match");
215 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::ALREADY_CREATED) ==
216  Os::QueueStatus::T::ALREADY_CREATED,
217  "Queue status enums do not match");
218 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::EMPTY) == Os::QueueStatus::T::EMPTY,
219  "Queue status enums do not match");
220 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::UNINITIALIZED) == Os::QueueStatus::T::UNINITIALIZED,
221  "Queue status enums do not match");
222 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::SIZE_MISMATCH) == Os::QueueStatus::T::SIZE_MISMATCH,
223  "Queue status enums do not match");
224 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::SEND_ERROR) == Os::QueueStatus::T::SEND_ERROR,
225  "Queue status enums do not match");
226 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::RECEIVE_ERROR) == Os::QueueStatus::T::RECEIVE_ERROR,
227  "Queue status enums do not match");
228 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::INVALID_PRIORITY) ==
229  Os::QueueStatus::T::INVALID_PRIORITY,
230  "Queue status enums do not match");
231 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::FULL) == Os::QueueStatus::T::FULL,
232  "Queue status enums do not match");
233 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::UNKNOWN_ERROR) == Os::QueueStatus::T::UNKNOWN_ERROR,
234  "Queue status enums do not match");
235 static_assert(static_cast<Os::QueueStatus::T>(Os::Queue::Status::ALLOCATION_FAILED) ==
236  Os::QueueStatus::T::ALLOCATION_FAILED,
237  "Queue status enums do not match");
238 
239 // Check consistency of every constant in the Os::Queue::BlockingType enum
240 static_assert(static_cast<Os::QueueBlockingType::T>(Os::Queue::BlockingType::BLOCKING) ==
241  Os::QueueBlockingType::T::BLOCKING,
242  "Queue BlockingType enums do not match");
243 static_assert(static_cast<Os::QueueBlockingType::T>(Os::Queue::BlockingType::NONBLOCKING) ==
244  Os::QueueBlockingType::T::NONBLOCKING,
245  "Queue BlockingType enums do not match");
246 
247 // Check Generic mappings
248 static_assert(static_cast<Os::GenericStatus::T>(Os::Generic::Status::OP_OK) == Os::GenericStatus::T::OP_OK,
249  "Generic status enums do not match");
250 static_assert(static_cast<Os::GenericStatus::T>(Os::Generic::Status::ERROR) == Os::GenericStatus::T::ERROR,
251  "Generic status enums do not match");
Operation succeeded.
Definition: Os.hpp:26
The number of enumerated constants.
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.
No space left on the device for writing.