summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/017/glob-carray.expected4
-rw-r--r--tests/017/glob-carray.tl21
-rw-r--r--tests/017/glob-zarray.expected3
-rw-r--r--tests/017/glob-zarray.tl17
4 files changed, 45 insertions, 0 deletions
diff --git a/tests/017/glob-carray.expected b/tests/017/glob-carray.expected
new file mode 100644
index 00000000..ac1290e3
--- /dev/null
+++ b/tests/017/glob-carray.expected
@@ -0,0 +1,4 @@
+0
+#S(glob-t pathc 4 pathv #<carray 4 #<ffi-type str-d>> reserve 0)
+#("tests/001/query-1.txr" "tests/001/query-2.txr" "tests/001/query-3.txr"
+ "tests/001/query-4.txr")
diff --git a/tests/017/glob-carray.tl b/tests/017/glob-carray.tl
new file mode 100644
index 00000000..3c68ac1a
--- /dev/null
+++ b/tests/017/glob-carray.tl
@@ -0,0 +1,21 @@
+(load "../common")
+
+(defstruct glob-t nil
+ pathc pathv reserve)
+
+(deffi-type glob-t (struct glob-t
+ (pathc size-t)
+ (pathv (carray str-d))
+ (reserve size-t)))
+
+(with-dyn-lib nil
+ (deffi globb "glob" int (str int closure (ptr-out glob-t)))
+ (deffi globfree "globfree" void ((ptr-in glob-t)))
+ (deffi-cb glob-cb int (str int) -1))
+
+(let* ((g (new glob-t)))
+ (prinl (globb "tests/001/*.txr" 0 (glob-cb (lambda (path err))) g))
+ (carray-set-length g.pathv g.pathc)
+ (prinl g)
+ (prinl (vec-carray g.pathv))
+ (globfree g))
diff --git a/tests/017/glob-zarray.expected b/tests/017/glob-zarray.expected
new file mode 100644
index 00000000..4bfc0810
--- /dev/null
+++ b/tests/017/glob-zarray.expected
@@ -0,0 +1,3 @@
+0
+#S(glob-t pathc 4 pathv #("tests/001/query-1.txr" "tests/001/query-2.txr" "tests/001/query-3.txr"
+ "tests/001/query-4.txr") reserve 0)
diff --git a/tests/017/glob-zarray.tl b/tests/017/glob-zarray.tl
new file mode 100644
index 00000000..b6e16d13
--- /dev/null
+++ b/tests/017/glob-zarray.tl
@@ -0,0 +1,17 @@
+(load "../common")
+
+(defstruct glob-t nil
+ pathc pathv reserve)
+
+(deffi-type glob-t (struct glob-t
+ (pathc size-t)
+ (pathv (ptr-out-d (zarray str-d)))
+ (reserve size-t)))
+
+(with-dyn-lib (libc)
+ (deffi globb "glob" int (str int closure (ptr-out glob-t)))
+ (deffi-cb glob-cb int (str int) -1))
+
+(let* ((g (new glob-t)))
+ (prinl (globb "tests/001/*.txr" 0 (glob-cb (lambda (path err))) g))
+ (prinl g))