1*2d1272b8SAndroid Build Coastguard Worker #include "hb-benchmark.hh"
2*2d1272b8SAndroid Build Coastguard Worker
BM_hb_ot_tags_from_script_and_language(benchmark::State & state,hb_script_t script,const char * language_str)3*2d1272b8SAndroid Build Coastguard Worker static void BM_hb_ot_tags_from_script_and_language (benchmark::State& state,
4*2d1272b8SAndroid Build Coastguard Worker hb_script_t script,
5*2d1272b8SAndroid Build Coastguard Worker const char *language_str) {
6*2d1272b8SAndroid Build Coastguard Worker
7*2d1272b8SAndroid Build Coastguard Worker hb_language_t language = hb_language_from_string (language_str, -1);
8*2d1272b8SAndroid Build Coastguard Worker
9*2d1272b8SAndroid Build Coastguard Worker for (auto _ : state)
10*2d1272b8SAndroid Build Coastguard Worker {
11*2d1272b8SAndroid Build Coastguard Worker hb_tag_t script_tags[HB_OT_MAX_TAGS_PER_SCRIPT];
12*2d1272b8SAndroid Build Coastguard Worker unsigned script_count = HB_OT_MAX_TAGS_PER_SCRIPT;
13*2d1272b8SAndroid Build Coastguard Worker
14*2d1272b8SAndroid Build Coastguard Worker hb_tag_t language_tags[HB_OT_MAX_TAGS_PER_LANGUAGE];
15*2d1272b8SAndroid Build Coastguard Worker unsigned language_count = HB_OT_MAX_TAGS_PER_LANGUAGE;
16*2d1272b8SAndroid Build Coastguard Worker
17*2d1272b8SAndroid Build Coastguard Worker hb_ot_tags_from_script_and_language (script,
18*2d1272b8SAndroid Build Coastguard Worker language,
19*2d1272b8SAndroid Build Coastguard Worker &script_count /* IN/OUT */,
20*2d1272b8SAndroid Build Coastguard Worker script_tags /* OUT */,
21*2d1272b8SAndroid Build Coastguard Worker &language_count /* IN/OUT */,
22*2d1272b8SAndroid Build Coastguard Worker language_tags /* OUT */);
23*2d1272b8SAndroid Build Coastguard Worker }
24*2d1272b8SAndroid Build Coastguard Worker }
25*2d1272b8SAndroid Build Coastguard Worker BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON zh_abcd, HB_SCRIPT_COMMON, "zh_abcd");
26*2d1272b8SAndroid Build Coastguard Worker BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON zh_hans, HB_SCRIPT_COMMON, "zh_hans");
27*2d1272b8SAndroid Build Coastguard Worker BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON ab_abcd, HB_SCRIPT_COMMON, "ab_abcd");
28*2d1272b8SAndroid Build Coastguard Worker BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON ab_abc, HB_SCRIPT_COMMON, "ab_abc");
29*2d1272b8SAndroid Build Coastguard Worker BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON abcdef_XY, HB_SCRIPT_COMMON, "abcdef_XY");
30*2d1272b8SAndroid Build Coastguard Worker BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON abcd_XY, HB_SCRIPT_COMMON, "abcd_XY");
31*2d1272b8SAndroid Build Coastguard Worker BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON cxy_CN, HB_SCRIPT_COMMON, "cxy_CN");
32*2d1272b8SAndroid Build Coastguard Worker BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON exy_CN, HB_SCRIPT_COMMON, "exy_CN");
33*2d1272b8SAndroid Build Coastguard Worker BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON zh_CN, HB_SCRIPT_COMMON, "zh_CN");
34*2d1272b8SAndroid Build Coastguard Worker BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON en_US, HB_SCRIPT_COMMON, "en_US");
35*2d1272b8SAndroid Build Coastguard Worker BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, LATIN en_US, HB_SCRIPT_LATIN, "en_US");
36*2d1272b8SAndroid Build Coastguard Worker BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON none, HB_SCRIPT_LATIN, nullptr);
37*2d1272b8SAndroid Build Coastguard Worker BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, LATIN none, HB_SCRIPT_LATIN, nullptr);
38*2d1272b8SAndroid Build Coastguard Worker
39*2d1272b8SAndroid Build Coastguard Worker BENCHMARK_MAIN();
40