vndk-def: Code cleanup: Remove duplicated code

This commit extracts duplicated code between test cases in
tests/test_vndk.py.

Test: ./tests/test_vndk.py
Change-Id: I3b1a630bef5aeab61c5ac5861ff709f6418066e5
diff --git a/vndk/tools/definition-tool/tests/test_vndk.py b/vndk/tools/definition-tool/tests/test_vndk.py
index 4bc03df..36e9d3d 100755
--- a/vndk/tools/definition-tool/tests/test_vndk.py
+++ b/vndk/tools/definition-tool/tests/test_vndk.py
@@ -23,18 +23,37 @@
     def _get_paths_from_nodes(self, nodes):
         return sorted([node.path for node in nodes])
 
-    def test_compute_vndk(self):
-        input_dir = os.path.join(TESTDATA_DIR, 'pre_treble')
+    def _create_graph_gr(self, input_dir, generic_refs_dir):
+        if not generic_refs_dir:
+            generic_refs = None
+        else:
+            generic_refs_dir = os.path.join(TESTDATA_DIR, generic_refs_dir)
+            generic_refs = GenericRefs.create_from_dir(generic_refs_dir)
+
+        input_dir = os.path.join(TESTDATA_DIR, input_dir)
 
         graph = ELFLinker.create_from_dump(
                 system_dirs=[os.path.join(input_dir, 'system')],
-                vendor_dirs=[os.path.join(input_dir, 'vendor')])
+                vendor_dirs=[os.path.join(input_dir, 'vendor')],
+                generic_refs=generic_refs)
 
-        vndk = graph.compute_vndk(sp_hals=set(), vndk_stable=set(),
-                                  vndk_customized_for_system=set(),
-                                  vndk_customized_for_vendor=set(),
-                                  generic_refs=None,
-                                  banned_libs=MockBannedLibs())
+        return (graph, generic_refs)
+
+    def _create_graph_vndk(self, input_dir, generic_refs_dir):
+        graph, generic_refs = self._create_graph_gr(input_dir, generic_refs_dir)
+
+        vndk = graph.compute_vndk(
+                sp_hals=set(),
+                vndk_stable=set(),
+                vndk_customized_for_system=set(),
+                vndk_customized_for_vendor=set(),
+                generic_refs=generic_refs,
+                banned_libs=MockBannedLibs())
+
+        return (graph, vndk)
+
+    def test_compute_vndk(self):
+        graph, vndk = self._create_graph_vndk('pre_treble', None)
 
         self.assertEqual(['/system/lib/libcutils.so',
                           '/system/lib64/libcutils.so'],
@@ -43,22 +62,7 @@
         self.assertEqual([], self._get_paths_from_nodes(vndk.vndk_vnd_ext))
 
     def test_compute_vndk_fwk_ext(self):
-        generic_refs_dir = os.path.join(TESTDATA_DIR, 'vndk_gr')
-
-        generic_refs = GenericRefs.create_from_dir(generic_refs_dir)
-
-        input_dir = os.path.join(TESTDATA_DIR, 'vndk_fwk_ext')
-
-        graph = ELFLinker.create_from_dump(
-                system_dirs=[os.path.join(input_dir, 'system')],
-                vendor_dirs=[os.path.join(input_dir, 'vendor')],
-                generic_refs=generic_refs)
-
-        vndk = graph.compute_vndk(sp_hals=set(), vndk_stable=set(),
-                                  vndk_customized_for_system=set(),
-                                  vndk_customized_for_vendor=set(),
-                                  generic_refs=generic_refs,
-                                  banned_libs=MockBannedLibs())
+        graph, vndk = self._create_graph_vndk('vndk_fwk_ext', 'vndk_gr')
 
         self.assertEqual(['/system/lib/vndk/libRS.so',
                           '/system/lib/vndk/libcutils.so',
@@ -71,22 +75,7 @@
         self.assertEqual([], self._get_paths_from_nodes(vndk.vndk_vnd_ext))
 
     def test_compute_vndk_vnd_ext(self):
-        generic_refs_dir = os.path.join(TESTDATA_DIR, 'vndk_gr')
-
-        generic_refs = GenericRefs.create_from_dir(generic_refs_dir)
-
-        input_dir = os.path.join(TESTDATA_DIR, 'vndk_vnd_ext')
-
-        graph = ELFLinker.create_from_dump(
-                system_dirs=[os.path.join(input_dir, 'system')],
-                vendor_dirs=[os.path.join(input_dir, 'vendor')],
-                generic_refs=generic_refs)
-
-        vndk = graph.compute_vndk(sp_hals=set(), vndk_stable=set(),
-                                  vndk_customized_for_system=set(),
-                                  vndk_customized_for_vendor=set(),
-                                  generic_refs=generic_refs,
-                                  banned_libs=MockBannedLibs())
+        graph, vndk = self._create_graph_vndk('vndk_vnd_ext', 'vndk_gr')
 
         self.assertEqual(['/system/lib/vndk/libRS.so',
                           '/system/lib/vndk/libcutils.so',
@@ -99,16 +88,8 @@
                          self._get_paths_from_nodes(vndk.vndk_vnd_ext))
 
     def test_compute_vndk_inward_customization(self):
-        generic_refs_dir = os.path.join(TESTDATA_DIR, 'vndk_gr')
-
-        generic_refs = GenericRefs.create_from_dir(generic_refs_dir)
-
-        input_dir = os.path.join(TESTDATA_DIR, 'vndk_inward_customization')
-
-        graph = ELFLinker.create_from_dump(
-                system_dirs=[os.path.join(input_dir, 'system')],
-                vendor_dirs=[os.path.join(input_dir, 'vendor')],
-                generic_refs=generic_refs)
+        graph, generic_refs = self._create_graph_gr(
+                'vndk_inward_customization', 'vndk_gr')
 
         # Make sure libjpeg.so was loaded from the input dir.
         libjpeg_32 = graph.get_lib('/system/lib/libjpeg.so')
@@ -117,11 +98,13 @@
         self.assertIsNotNone(libjpeg_64)
 
         # Compute vndk sets and move libraries to the correct directories.
-        vndk = graph.compute_vndk(sp_hals=set(), vndk_stable=set(),
-                                  vndk_customized_for_system=set(),
-                                  vndk_customized_for_vendor=set(),
-                                  generic_refs=generic_refs,
-                                  banned_libs=MockBannedLibs())
+        vndk = graph.compute_vndk(
+                sp_hals=set(),
+                vndk_stable=set(),
+                vndk_customized_for_system=set(),
+                vndk_customized_for_vendor=set(),
+                generic_refs=generic_refs,
+                banned_libs=MockBannedLibs())
 
         # Check vndk-core libraries.
         self.assertEqual(['/system/lib/vndk/libRS.so',
@@ -161,22 +144,8 @@
         # will break the vndk-indirect computation because libC is not in
         # generic references.
 
-        generic_refs_dir = os.path.join(TESTDATA_DIR, 'vndk_indirect_ext_gr')
-
-        generic_refs = GenericRefs.create_from_dir(generic_refs_dir)
-
-        input_dir = os.path.join(TESTDATA_DIR, 'vndk_indirect_ext')
-
-        graph = ELFLinker.create_from_dump(
-                system_dirs=[os.path.join(input_dir, 'system')],
-                vendor_dirs=[os.path.join(input_dir, 'vendor')],
-                generic_refs=generic_refs)
-
-        vndk = graph.compute_vndk(sp_hals=set(), vndk_stable=set(),
-                                  vndk_customized_for_system=set(),
-                                  vndk_customized_for_vendor=set(),
-                                  generic_refs=generic_refs,
-                                  banned_libs=MockBannedLibs())
+        graph, vndk = self._create_graph_vndk('vndk_indirect_ext',
+                                              'vndk_indirect_ext_gr')
 
         self.assertEqual(['/system/lib/vndk/libRS.so',
                           '/system/lib/vndk/libcutils.so',
@@ -198,22 +167,7 @@
         # vndk-vnd-ext in the first round, libA depends libC, libC depends
         # libB.
 
-        generic_refs_dir = os.path.join(TESTDATA_DIR, 'vndk_ext_dep_gr')
-
-        generic_refs = GenericRefs.create_from_dir(generic_refs_dir)
-
-        input_dir = os.path.join(TESTDATA_DIR, 'vndk_ext_dep')
-
-        graph = ELFLinker.create_from_dump(
-                system_dirs=[os.path.join(input_dir, 'system')],
-                vendor_dirs=[os.path.join(input_dir, 'vendor')],
-                generic_refs=generic_refs)
-
-        vndk = graph.compute_vndk(sp_hals=set(), vndk_stable=set(),
-                                  vndk_customized_for_system=set(),
-                                  vndk_customized_for_vendor=set(),
-                                  generic_refs=generic_refs,
-                                  banned_libs=MockBannedLibs())
+        graph, vndk = self._create_graph_vndk('vndk_ext_dep', 'vndk_ext_dep_gr')
 
         self.assertEqual(['/system/lib/vndk/libA.so',
                           '/system/lib/vndk/libB.so',