aboutsummaryrefslogtreecommitdiff
path: root/vendor/libghostty-vt/pkg/fontconfig/test.zig
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-04-04 19:22:04 +0300
committerCan Celik <ogulcancelik@gmail.com>2026-04-05 01:23:06 +0300
commit41dd733ca7123c9ac4bfc6c781697a660e95b052 (patch)
tree3fc91815ca139ef2e0b281bba0abda4ef15175f4 /vendor/libghostty-vt/pkg/fontconfig/test.zig
parent55c138263e190a1e79d4b997bfb9397306c0ec1f (diff)
feat: finish ghostty pane backend integration
Diffstat (limited to 'vendor/libghostty-vt/pkg/fontconfig/test.zig')
-rw-r--r--vendor/libghostty-vt/pkg/fontconfig/test.zig66
1 files changed, 66 insertions, 0 deletions
diff --git a/vendor/libghostty-vt/pkg/fontconfig/test.zig b/vendor/libghostty-vt/pkg/fontconfig/test.zig
new file mode 100644
index 00000000..bd121c1b
--- /dev/null
+++ b/vendor/libghostty-vt/pkg/fontconfig/test.zig
@@ -0,0 +1,66 @@
+const std = @import("std");
+const fontconfig = @import("main.zig");
+
+test "fc-list" {
+ const testing = std.testing;
+
+ var cfg = fontconfig.initLoadConfigAndFonts();
+ defer cfg.destroy();
+
+ var pat = fontconfig.Pattern.create();
+ defer pat.destroy();
+
+ var os = fontconfig.ObjectSet.create();
+ defer os.destroy();
+
+ var fs = cfg.fontList(pat, os);
+ defer fs.destroy();
+
+ // Note: this is environmental, but in general we expect all our
+ // testing environments to have at least one font.
+ try testing.expect(fs.fonts().len > 0);
+}
+
+test "fc-match" {
+ const testing = std.testing;
+
+ var cfg = fontconfig.initLoadConfigAndFonts();
+ defer cfg.destroy();
+
+ var pat = fontconfig.Pattern.create();
+ errdefer pat.destroy();
+ try testing.expect(cfg.substituteWithPat(pat, .pattern));
+ pat.defaultSubstitute();
+
+ const result = cfg.fontSort(pat, false, null);
+ errdefer result.fs.destroy();
+
+ var fs = fontconfig.FontSet.create();
+ defer fs.destroy();
+ defer for (fs.fonts()) |font| font.destroy();
+
+ {
+ const fonts = result.fs.fonts();
+ try testing.expect(fonts.len > 0);
+ for (fonts) |font| {
+ const pat_prep = try cfg.fontRenderPrepare(pat, font);
+ try testing.expect(fs.add(pat_prep));
+ }
+ result.fs.destroy();
+ pat.destroy();
+ }
+
+ {
+ for (fs.fonts()) |font| {
+ var it = font.objectIterator();
+ while (it.next()) {
+ try testing.expect(it.object().len > 0);
+ try testing.expect(it.valueLen() > 0);
+ var value_it = it.valueIterator();
+ while (value_it.next()) |entry| {
+ try testing.expect(entry.value != .unknown);
+ }
+ }
+ }
+ }
+}