Issue #15494: test.support is now a package rather than a module

Also including this change in 3.3 to help avoid spurious conflicts
between the two most active branches.

(Initial patch by Indra Talip)
diff --git a/Lib/test/support.py b/Lib/test/support/__init__.py
similarity index 98%
rename from Lib/test/support.py
rename to Lib/test/support/__init__.py
index 7ab5ff7..3ebc49d 100644
--- a/Lib/test/support.py
+++ b/Lib/test/support/__init__.py
@@ -787,9 +787,12 @@
         finally:
             os.umask(oldmask)
 
+# TEST_HOME refers to the top level directory of the "test" package
+# that contains Python's regression test suite
+TEST_HOME = os.path.dirname(os.path.abspath(__file__))
 
-def findfile(file, here=__file__, subdir=None):
-    """Try to find a file on sys.path and the working directory.  If it is not
+def findfile(file, here=TEST_HOME, subdir=None):
+    """Try to find a file on sys.path or in the test directory.  If it is not
     found the argument passed to the function is returned (this does not
     necessarily signal failure; could still be the legitimate path)."""
     if os.path.isabs(file):
diff --git a/Lib/test/test_linecache.py b/Lib/test/test_linecache.py
index 7d14534..5fe0554 100644
--- a/Lib/test/test_linecache.py
+++ b/Lib/test/test_linecache.py
@@ -11,7 +11,7 @@
 EMPTY = ''
 TESTS = 'inspect_fodder inspect_fodder2 mapping_tests'
 TESTS = TESTS.split()
-TEST_PATH = os.path.dirname(support.__file__)
+TEST_PATH = os.path.dirname(__file__)
 MODULES = "linecache abc".split()
 MODULE_PATH = os.path.dirname(FILENAME)