ctypes.util.find_library() does not require the "lib" prefix, and may
throw an exception depending on the environment, so drop the prefix
when finding it.
Split test/requirements.txt into two different lists, one for py2, and the other for py3; update package versions in py3 list as needed to support py3.10.
Fix usage of deprecated threading functions getName(), setName(), isDaemon(), and currentThread().
Refactor test_invalid_breakpoints to be more declarative to handle Python version differences more easily and clearly, and fix it for py3.10.
Disable Django tests on py3.10 (#689).
Disable gevent tests on py3.10 (#688).
Starting with Python 3.3, MutableMapping and MutableSet are part
of collections.abc module rather than collections. Importing them
from the old module is deprecated and no longer works in Python 3.10.
Support both modules conditionally for best compatibility.
In the launcher, use "python" instead of sys.executable to spawn the debuggee.
Update test for "python" / "pythonPath" / "pythonArgs" to use a helper script to assert the use of a custom Python binary; and test -B instead of -v to minimize test log size and run time.
Don't use inspect.getargspec on Python 2.
Close log file objects on exit.
Close os.devnull file objects on exit.
Close the listener socket used to get endpoints info from adapter.
Fix invalid escape sequences.
Run tests with Python warnings treated as errors.
Fix Django deprecation warning in test web app.
Work around pytest issues caused spaces in test names.
On Windows, run the debuggee in a separate Win32 job, and terminate the job when launcher exits.
On POSIX, run the debuggee in a separate process group (PGID), and kill the entire group when launcher exits.
Improve process tree autokill tests to actually check whether the child process has exited.
Expose "pythonArgs" to clients.
Make "python" usable in tests in lieu of "pythonPath", and make the runners use it.
Add tests for all combinations of "python"/"pythonPath" and "pythonArgs".