add api test
diff --git a/test/api/fonts/AdobeVFPrototype.WA.gpos.otf b/test/api/fonts/AdobeVFPrototype.WA.gpos.otf
new file mode 100644
index 0000000..967ef25
--- /dev/null
+++ b/test/api/fonts/AdobeVFPrototype.WA.gpos.otf
Binary files differ
diff --git a/test/api/fonts/AdobeVFPrototype.WAV.gpos.otf b/test/api/fonts/AdobeVFPrototype.WAV.gpos.otf
new file mode 100644
index 0000000..c9da07b
--- /dev/null
+++ b/test/api/fonts/AdobeVFPrototype.WAV.gpos.otf
Binary files differ
diff --git a/test/api/test-subset-gpos.c b/test/api/test-subset-gpos.c
index ac460b3..5546bf2 100644
--- a/test/api/test-subset-gpos.c
+++ b/test/api/test-subset-gpos.c
@@ -54,12 +54,39 @@
   hb_face_destroy (face_wa);
 }
 
+/* TODO: Once GDEF subsetting is implemented, this test may fail & expected result need update. */
+static void
+test_subset_gpos_pairpos1_vf (void)
+{
+  hb_face_t *face_wav = hb_test_open_font_file ("fonts/AdobeVFPrototype.WAV.gpos.otf");
+  hb_face_t *face_wa = hb_test_open_font_file ("fonts/AdobeVFPrototype.WA.gpos.otf");
+
+  hb_set_t *codepoints = hb_set_create ();
+  hb_face_t *face_wav_subset;
+  hb_set_add (codepoints, 'W');
+  hb_set_add (codepoints, 'A');
+
+  hb_subset_input_t *input = hb_subset_test_create_input (codepoints);
+
+  hb_set_del (hb_subset_input_drop_tables_set (input), HB_TAG ('G', 'P', 'O', 'S'));
+
+  face_wav_subset = hb_subset_test_create_subset (face_wav, input);
+  hb_set_destroy (codepoints);
+
+  hb_subset_test_check (face_wa, face_wav_subset, HB_TAG ('G','P','O','S'));
+
+  hb_face_destroy (face_wav_subset);
+  hb_face_destroy (face_wav);
+  hb_face_destroy (face_wa);
+}
+
 int
 main (int argc, char **argv)
 {
   hb_test_init (&argc, &argv);
 
   hb_test_add (test_subset_gpos_lookup_subtable);
+  hb_test_add (test_subset_gpos_pairpos1_vf);
 
   return hb_test_run ();
 }