Fix test for socket.getfqdn() to also include the name returned by
socket.gethostname() in the check for a valid return.

Also clarified docs (official and docstring) that the value from gethostname()
is returned if gethostbyaddr() doesn't do the job.
diff --git a/Doc/lib/libsocket.tex b/Doc/lib/libsocket.tex
index db0b767..1f5bcaa 100644
--- a/Doc/lib/libsocket.tex
+++ b/Doc/lib/libsocket.tex
@@ -202,8 +202,8 @@
 host.  To find the fully qualified name, the hostname returned by
 \function{gethostbyaddr()} is checked, then aliases for the host, if
 available.  The first name which includes a period is selected.  In
-case no fully qualified domain name is available, the hostname is
-returned.
+case no fully qualified domain name is available, the hostname as
+returned by \function{gethostname()} is returned.
 \versionadded{2.0}
 \end{funcdesc}
 
diff --git a/Lib/socket.py b/Lib/socket.py
index f96a146..ee2457f 100644
--- a/Lib/socket.py
+++ b/Lib/socket.py
@@ -102,7 +102,7 @@
 
     First the hostname returned by gethostbyaddr() is checked, then
     possibly existing aliases. In case no FQDN is available, hostname
-    is returned.
+    from gethostname() is returned.
     """
     name = name.strip()
     if not name or name == '0.0.0.0':
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index e6cdb8b..bf2ecae 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -267,7 +267,7 @@
         except socket.error:
             # Probably a similar problem as above; skip this test
             return
-        all_host_names = [hname] + aliases
+        all_host_names = [hostname, hname] + aliases
         fqhn = socket.getfqdn()
         if not fqhn in all_host_names:
             self.fail("Error testing host resolution mechanisms.")