PANGO_VARIANT_SMALL_CAPS does nothing
Neither of these actually makes small capitals work:
pango_font_description_set_variant(desc, PANGO_VARIANT_SMALL_CAPS)
pango_layout_set_font_description(layout, desc);
PangoAttrList *list = pango_attr_list_new();
pango_attr_list_insert(list, pango_attr_variant_new(PANGO_VARIANT_SMALL_CAPS));
pango_layout_set_attributes(layout, list);
Creating an attribute pango_attr_font_features_new("'smcp' 1")
works, but only for fonts that have that OpenType feature.
I think Pango should make PANGO_VARIANT_SMALL_CAPS work out of the box.