aboutsummaryrefslogtreecommitdiff
path: root/src/core/errors_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/errors_test.c')
-rw-r--r--src/core/errors_test.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/core/errors_test.c b/src/core/errors_test.c
new file mode 100644
index 00000000..4e50467c
--- /dev/null
+++ b/src/core/errors_test.c
@@ -0,0 +1,46 @@
+//
+// Copyright 2020 Staysail Systems, Inc. <info@staysail.tech>
+//
+// This software is supplied under the terms of the MIT License, a
+// copy of which should be located in the distribution where this
+// file was obtained (LICENSE.txt). A copy of the license may also be
+// found online at https://opensource.org/licenses/MIT.
+//
+
+#include <errno.h>
+#include <string.h>
+
+#include <nng/nng.h>
+
+#include <acutest.h>
+#include <testutil.h>
+
+static void
+test_known_errors(void)
+{
+
+ TEST_STREQUAL(nng_strerror(NNG_ECLOSED), "Object closed");
+ TEST_STREQUAL(nng_strerror(NNG_ETIMEDOUT), "Timed out");
+}
+
+static void
+test_unknown_errors(void)
+{
+ for (unsigned i = 1; i < 0x1000000; i = i * 2 + 100) {
+ TEST_CHECK(nng_strerror(i) != NULL);
+ }
+}
+
+static void
+test_system_errors(void)
+{
+ TEST_STREQUAL(nng_strerror(NNG_ESYSERR + ENOENT), strerror(ENOENT));
+ TEST_STREQUAL(nng_strerror(NNG_ESYSERR + EINVAL), strerror(EINVAL));
+}
+
+TEST_LIST = {
+ { "known errors", test_known_errors },
+ { "unknown errors", test_unknown_errors },
+ { "system errors", test_system_errors },
+ { NULL, NULL },
+};