aboutsummaryrefslogtreecommitdiff
path: root/nearby/presence/np_cpp_ffi/shared/shared_test_util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'nearby/presence/np_cpp_ffi/shared/shared_test_util.cc')
-rw-r--r--nearby/presence/np_cpp_ffi/shared/shared_test_util.cc50
1 files changed, 50 insertions, 0 deletions
diff --git a/nearby/presence/np_cpp_ffi/shared/shared_test_util.cc b/nearby/presence/np_cpp_ffi/shared/shared_test_util.cc
new file mode 100644
index 0000000..27e98a6
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/shared/shared_test_util.cc
@@ -0,0 +1,50 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "nearby_protocol.h"
+
+std::string PanicReasonToString(nearby_protocol::PanicReason reason) {
+ switch (reason) {
+ case nearby_protocol::PanicReason::EnumCastFailed: {
+ return "EnumCastFailed";
+ }
+ case nearby_protocol::PanicReason::AssertFailed: {
+ return "AssertFailed";
+ }
+ case np_ffi::internal::PanicReason::InvalidActionBits: {
+ return "InvalidActionBits";
+ }
+ }
+}
+
+void test_panic_handler(nearby_protocol::PanicReason reason) {
+ std::cout << "Panicking! Reason: " << PanicReasonToString(reason);
+ std::abort();
+}
+
+std::string generate_hex_string(const size_t length) {
+ char *str = new char[length];
+
+ // hexadecimal characters
+ char hex_characters[] = {'0', '1', '2', '3', '4', '5', '6', '7',
+ '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
+ size_t i;
+ for (i = 0; i < length; i++) {
+ str[i] = hex_characters[rand() % 16]; // NOLINT(cert-msc50-cpp)
+ }
+ str[length] = 0;
+ std::string result(str, length);
+ delete[] str;
+ return result;
+} \ No newline at end of file