mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-14 15:56:13 +03:00
67 lines
1.8 KiB
Zig
67 lines
1.8 KiB
Zig
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);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|