summaryrefslogtreecommitdiff
path: root/libobj/tests
diff options
context:
space:
mode:
authorLuke T. Shumaker <lukeshu@lukeshu.com>2025-04-26 19:51:52 -0600
committerLuke T. Shumaker <lukeshu@lukeshu.com>2025-05-06 11:50:46 -0600
commit1cf085ae086a43f18af550fdcfd4d3e57ccb0918 (patch)
tree42abde5f3b34b239bb95e84200ea16ad4a4c562d /libobj/tests
parent0fec22d4106ff6f80296d1511eec7a82160c2245 (diff)
parenta83c95e9f46ef695a55fc7a6911e11846da9903c (diff)
Merge branch 'lukeshu/misc'
Diffstat (limited to 'libobj/tests')
l---------libobj/tests/test.h1
-rw-r--r--libobj/tests/test_nest.c73
-rw-r--r--libobj/tests/test_obj.c61
3 files changed, 0 insertions, 135 deletions
diff --git a/libobj/tests/test.h b/libobj/tests/test.h
deleted file mode 120000
index 2fb1bd5..0000000
--- a/libobj/tests/test.h
+++ /dev/null
@@ -1 +0,0 @@
-../../libmisc/tests/test.h \ No newline at end of file
diff --git a/libobj/tests/test_nest.c b/libobj/tests/test_nest.c
deleted file mode 100644
index f18b018..0000000
--- a/libobj/tests/test_nest.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* libobj/tests/test_nest.c - Tests for <libobj/obj.h>
- *
- * Copyright (C) 2025 Luke T. Shumaker <lukeshu@lukeshu.com>
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
-
-#include <string.h> /* for memcpy() */
-
-#include <libobj/obj.h>
-
-#include "test.h"
-
-/* interfaces *****************************************************************/
-
-#define reader_LO_IFACE \
- LO_FUNC(ssize_t, read, void *, size_t)
-LO_INTERFACE(reader);
-
-#define writer_LO_IFACE \
- LO_FUNC(ssize_t, write, void *, size_t)
-LO_INTERFACE(writer);
-
-#define read_writer_LO_IFACE \
- LO_NEST(reader) \
- LO_NEST(writer)
-LO_INTERFACE(read_writer);
-
-/* implementation header ******************************************************/
-
-struct myclass {
- size_t len;
- char buf[512];
-};
-LO_IMPLEMENTATION_H(reader, struct myclass, myclass);
-LO_IMPLEMENTATION_H(writer, struct myclass, myclass);
-LO_IMPLEMENTATION_H(read_writer, struct myclass, myclass);
-
-/* implementation main ********************************************************/
-
-LO_IMPLEMENTATION_C(reader, struct myclass, myclass, static);
-LO_IMPLEMENTATION_C(writer, struct myclass, myclass, static);
-LO_IMPLEMENTATION_C(read_writer, struct myclass, myclass, static);
-
-static ssize_t myclass_read(struct myclass *self, void *buf, size_t count) {
- test_assert(self);
- if (count > self->len)
- count = self->len;
- memcpy(buf, self->buf, count);
- return count;
-}
-
-static ssize_t myclass_write(struct myclass *self, void *buf, size_t count) {
- test_assert(self);
- if (self->len)
- return -1;
- if (count > sizeof(self->buf))
- count = sizeof(self->buf);
- memcpy(self->buf, buf, count);
- self->len = count;
- return count;
-}
-
-/* main test body *************************************************************/
-
-int main() {
- struct myclass _obj = {0};
- lo_interface read_writer obj = lo_box_myclass_as_read_writer(&_obj);
- test_assert(LO_CALL(obj, write, "Hello", 6) == 6);
- char buf[6] = {0};
- test_assert(LO_CALL(obj, read, buf, 3) == 3);
- test_assert(memcmp(buf, "Hel\0\0\0", 6) == 0);
- return 0;
-}
diff --git a/libobj/tests/test_obj.c b/libobj/tests/test_obj.c
deleted file mode 100644
index d6861dc..0000000
--- a/libobj/tests/test_obj.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* libobj/tests/test_obj.c - Tests for <libobj/obj.h>
- *
- * Copyright (C) 2024-2025 Luke T. Shumaker <lukeshu@lukeshu.com>
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
-
-#include <libobj/obj.h>
-
-#include "test.h"
-
-/* `lo_inteface frobber` header ***********************************************/
-
-#define frobber_LO_IFACE \
- /** Basic function. */ \
- LO_FUNC(int, frob) \
- /** Function that takes 1 argument. */ \
- LO_FUNC(int, frob1, int) \
- /** Function that returns nothing. */ \
- LO_FUNC(void, frob0)
-LO_INTERFACE(frobber);
-
-/* `struct myclass` header ****************************************************/
-
-struct myclass {
- int a;
-};
-LO_IMPLEMENTATION_H(frobber, struct myclass, myclass);
-
-/* `struct myclass` implementation ********************************************/
-
-LO_IMPLEMENTATION_C(frobber, struct myclass, myclass, static);
-
-static int myclass_frob(struct myclass *self) {
- test_assert(self);
- return self->a;
-}
-
-static int myclass_frob1(struct myclass *self, int arg) {
- test_assert(self);
- return arg;
-}
-
-static void myclass_frob0(struct myclass *self) {
- test_assert(self);
-}
-
-/* main test body *************************************************************/
-
-#define MAGIC1 909837
-#define MAGIC2 657441
-
-int main() {
- struct myclass obj = {
- .a = MAGIC1,
- };
- lo_interface frobber iface = lo_box_myclass_as_frobber(&obj);
- test_assert(LO_CALL(iface, frob) == MAGIC1);
- test_assert(LO_CALL(iface, frob1, MAGIC2) == MAGIC2);
- LO_CALL(iface, frob0);
- return 0;
-}