aboutsummaryrefslogtreecommitdiff
path: root/tests/memctl.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/memctl.c')
-rw-r--r--tests/memctl.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/memctl.c b/tests/memctl.c
new file mode 100644
index 0000000..1614442
--- /dev/null
+++ b/tests/memctl.c
@@ -0,0 +1,42 @@
+#include <ungrateful.h>
+
+#define SIZE UN_KB(1)
+
+u8 buffer_a[SIZE];
+u8 buffer_b[SIZE];
+
+int main(void) {
+ u64 i;
+ for (i = 0; i < SIZE; i++) {
+ buffer_a[i] += i << 2;
+ }
+
+ {
+ un_memory_copy(buffer_b, buffer_a, SIZE);
+
+ for (i = 0; i < SIZE; i++) {
+ assert(buffer_b[i] == buffer_a[i]);
+ }
+
+ assert(un_memory_compare(buffer_a, buffer_b, SIZE) == 0);
+
+ buffer_b[SIZE - 10] = 0;
+ assert(un_memory_compare(buffer_a, buffer_b, SIZE) == 1);
+ }
+
+ {
+ un_memory_move(buffer_a + SIZE / 4, buffer_a, SIZE / 2);
+
+ assert(un_memory_compare(buffer_b, buffer_a + SIZE / 4, SIZE / 2) == 0);
+ }
+
+ {
+ un_memory_set(buffer_a, 0, SIZE);
+
+ for (i = 0; i < SIZE; i++) {
+ assert(buffer_a[i] == 0);
+ }
+ }
+
+ return 0;
+}