py$(PYV): remove tox env folder $(@D)/.tox/py$(PYV)
py$(PYV): commands[0]> python -c 'import greenlet._greenlet as G; assert G.GREENLET_USE_STANDARD_THREADING'
py$(PYV): commands[1]> python -m unittest discover -v greenlet.tests
test_break_ctxvars (greenlet.tests.test_contextvars.ContextVarsTests) ... ok
test_context_assignment_different_thread (greenlet.tests.test_contextvars.ContextVarsTests) ... ok
test_context_assignment_while_running (greenlet.tests.test_contextvars.ContextVarsTests) ... ok
test_context_assignment_wrong_type (greenlet.tests.test_contextvars.ContextVarsTests) ... ok
test_context_not_propagated (greenlet.tests.test_contextvars.ContextVarsTests) ... ok
test_context_propagated_by_context_run (greenlet.tests.test_contextvars.ContextVarsTests) ... ok
test_context_propagated_by_setting_attribute (greenlet.tests.test_contextvars.ContextVarsTests) ... ok
test_context_shared (greenlet.tests.test_contextvars.ContextVarsTests) ... ok
test_not_broken_if_using_attribute_instead_of_context_run (greenlet.tests.test_contextvars.ContextVarsTests) ... ok
test_contextvars_errors (greenlet.tests.test_contextvars.NoContextVarsTests) ... skipped 'ContextVar supported'
test_exception_switch (greenlet.tests.test_cpp.CPPTests) ... ok
test_unhandled_exception_in_greenlet_aborts (greenlet.tests.test_cpp.CPPTests) ... ok
test_unhandled_nonstd_exception_aborts (greenlet.tests.test_cpp.CPPTests) ... ok
test_unhandled_std_exception_aborts (greenlet.tests.test_cpp.CPPTests) ... ok
test_unhandled_std_exception_as_greenlet_function_aborts (greenlet.tests.test_cpp.CPPTests) ... ok
test_getcurrent (greenlet.tests.test_extension_interface.CAPITests) ... ok
test_instance_of_wrong_type (greenlet.tests.test_extension_interface.CAPITests) ... ok
test_new_greenlet (greenlet.tests.test_extension_interface.CAPITests) ... ok
test_non_traceback_param (greenlet.tests.test_extension_interface.CAPITests) ... ok
test_not_throwable (greenlet.tests.test_extension_interface.CAPITests) ... ok
test_raise_greenlet_dead (greenlet.tests.test_extension_interface.CAPITests) ... ok
test_raise_greenlet_error (greenlet.tests.test_extension_interface.CAPITests) ... ok
test_setparent (greenlet.tests.test_extension_interface.CAPITests) ... ok
test_switch (greenlet.tests.test_extension_interface.CAPITests) ... ok
test_switch_kwargs (greenlet.tests.test_extension_interface.CAPITests) ... ok
test_throw (greenlet.tests.test_extension_interface.CAPITests) ... ok
test_circular_greenlet (greenlet.tests.test_gc.GCTests) ... ok
test_dead_circular_ref (greenlet.tests.test_gc.GCTests) ... ok
test_finalizer_crash (greenlet.tests.test_gc.GCTests) ... ok
test_inactive_ref (greenlet.tests.test_gc.GCTests) ... ok
test_generator (greenlet.tests.test_generator.GeneratorTests) ... ok
test_genlet_bad (greenlet.tests.test_generator_nested.NestedGeneratorTests) ... ok
test_genlet_simple (greenlet.tests.test_generator_nested.NestedGeneratorTests) ... ok
test_layered_genlets (greenlet.tests.test_generator_nested.NestedGeneratorTests) ... ok
test_nested_genlets (greenlet.tests.test_generator_nested.NestedGeneratorTests) ... ok
test_permutations (greenlet.tests.test_generator_nested.NestedGeneratorTests) ... ok
test_failed_to_initialstub (greenlet.tests.test_greenlet.TestBrokenGreenlets) ... ok
test_failed_to_slp_switch_into_running (greenlet.tests.test_greenlet.TestBrokenGreenlets) ... ok
test_failed_to_switch_into_running (greenlet.tests.test_greenlet.TestBrokenGreenlets) ... ok
test_reentrant_switch_GreenletAlreadyStartedInPython (greenlet.tests.test_greenlet.TestBrokenGreenlets) ... ok
test_reentrant_switch_run_callable_has_del (greenlet.tests.test_greenlet.TestBrokenGreenlets) ... ok
test_reentrant_switch_three_greenlets (greenlet.tests.test_greenlet.TestBrokenGreenlets) ... ok
test_reentrant_switch_three_greenlets2 (greenlet.tests.test_greenlet.TestBrokenGreenlets) ... ok
test_reentrant_switch_two_greenlets (greenlet.tests.test_greenlet.TestBrokenGreenlets) ... ok
test_abstract_subclasses (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_can_access_f_back_of_suspended_greenlet (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_dealloc (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_dealloc_catches_GreenletExit_throws_other (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_dealloc_other_thread (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_dealloc_switch_args_not_lost (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_deepcopy (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_exc_state (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_exception (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_falling_off_end_switches_to_unstarted_parent_raises_error (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_falling_off_end_switches_to_unstarted_parent_works (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_frame (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_frames_always_exposed (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_get_stack_with_nested_c_calls (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_implicit_parent_with_threads (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_instance_dict (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_issue_245_reference_counting_subclass_no_threads (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_issue_245_reference_counting_subclass_threads (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_parent_equals_None (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_parent_restored_on_kill (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_parent_return_failure (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_recursive_startup (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_run_equals_None (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_running_greenlet_has_no_run (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_send_exception (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_simple (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_switch_kwargs (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_switch_kwargs_to_parent (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_switch_no_run_raises_AttributeError (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_switch_to_another_thread (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_switch_to_dead_greenlet_reparent (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_switch_to_dead_greenlet_with_unstarted_perverse_parent (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_thread_bug (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_threaded_updatecurrent (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_threads (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_throw_exception_not_lost (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_throw_no_run_raises_AttributeError (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_throw_to_dead_thread_doesnt_crash (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_throw_to_dead_thread_doesnt_crash_wait (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_tuple_subclass (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_two_children (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_two_recursive_children (greenlet.tests.test_greenlet.TestGreenlet) ... ok
test_cannot_delete_parent (greenlet.tests.test_greenlet.TestGreenletSetParentErrors) ... ok
test_cannot_delete_parent_of_main (greenlet.tests.test_greenlet.TestGreenletSetParentErrors) ... ok
test_deeper_cycle (greenlet.tests.test_greenlet.TestGreenletSetParentErrors) ... ok
test_main_greenlet_parent_is_none (greenlet.tests.test_greenlet.TestGreenletSetParentErrors) ... ok
test_set_parent_wrong_types (greenlet.tests.test_greenlet.TestGreenletSetParentErrors) ... ok
test_threaded_reparent (greenlet.tests.test_greenlet.TestGreenletSetParentErrors) ... ok
test_trivial_cycle (greenlet.tests.test_greenlet.TestGreenletSetParentErrors) ... ok
test_trivial_cycle_main (greenlet.tests.test_greenlet.TestGreenletSetParentErrors) ... ok
test_unexpected_reparenting (greenlet.tests.test_greenlet.TestGreenletSetParentErrors) ... ok
test_unexpected_reparenting_thread_running (greenlet.tests.test_greenlet.TestGreenletSetParentErrors) ... ok
test_main_greenlet_is_greenlet (greenlet.tests.test_greenlet.TestMainGreenlet) ... ok
test_main_greenlet_type_can_be_subclassed (greenlet.tests.test_greenlet.TestMainGreenlet) ... ok
test_dead (greenlet.tests.test_greenlet.TestRepr) ... ok
test_formatting_produces_native_str (greenlet.tests.test_greenlet.TestRepr) ... ok
test_initial (greenlet.tests.test_greenlet.TestRepr) ... ok
test_main_from_other_thread (greenlet.tests.test_greenlet.TestRepr) ... ok
test_main_in_background (greenlet.tests.test_greenlet.TestRepr) ... ok
test_main_while_running (greenlet.tests.test_greenlet.TestRepr) ... ok
test_it (greenlet.tests.test_greenlet_trash.TestTrashCanReEnter) ... ok
test_arg_refs (greenlet.tests.test_leaks.TestLeaks) ... ok
test_issue251_issue252_explicit_reference_not_collectable (greenlet.tests.test_leaks.TestLeaks) ... ok
test_issue251_issue252_need_to_collect_in_background (greenlet.tests.test_leaks.TestLeaks) ... ok
test_issue251_issue252_need_to_collect_in_background_cleanup_disabled (greenlet.tests.test_leaks.TestLeaks) ... ok
test_issue251_killing_cross_thread_leaks_list (greenlet.tests.test_leaks.TestLeaks) ... ok
test_issue251_with_cleanup_disabled (greenlet.tests.test_leaks.TestLeaks) ... ok
test_kwarg_refs (greenlet.tests.test_leaks.TestLeaks) ... ok
test_threaded_adv_leak (greenlet.tests.test_leaks.TestLeaks) ... ok
test_threaded_leak (greenlet.tests.test_leaks.TestLeaks) ... ok
test_untracked_memory_doesnt_increase (greenlet.tests.test_leaks.TestLeaks) ... skipped 'uss not supported'
test_untracked_memory_doesnt_increase_unfinished_thread_dealloc_in_main (greenlet.tests.test_leaks.TestLeaks) ... Exception in thread Thread-250:
Traceback (most recent call last):
  File "$(PROTO_DIR)$(PYTHON_DIR)/vendor-packages/greenlet/tests/__init__.py", line 204, in get_process_uss
    return psutil.Process().memory_full_info().uss
AttributeError: 'pmem' object has no attribute 'uss'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "$(PYTHON_DIR)/threading.py", line 980, in _bootstrap_inner
    self.run()
  File "$(PYTHON_DIR)/threading.py", line 917, in run
    self._target(*self._args, **self._kwargs)
  File "$(PROTO_DIR)$(PYTHON_DIR)/vendor-packages/greenlet/tests/test_leaks.py", line 386, in __call__
    self.uss_before = test.get_process_uss()
  File "$(PROTO_DIR)$(PYTHON_DIR)/vendor-packages/greenlet/tests/__init__.py", line 206, in get_process_uss
    raise unittest.SkipTest("uss not supported") from e
unittest.case.SkipTest: uss not supported
skipped 'uss not supported'
test_untracked_memory_doesnt_increase_unfinished_thread_dealloc_in_thread (greenlet.tests.test_leaks.TestLeaks) ... skipped 'Always fails: https://github.com/python-greenlet/greenlet/issues/379'
test_stack_saved (greenlet.tests.test_stack_saved.Test) ... ok
test_class (greenlet.tests.test_throw.ThrowTests) ... ok
test_instance_of_wrong_type (greenlet.tests.test_throw.ThrowTests) ... ok
test_kill (greenlet.tests.test_throw.ThrowTests) ... ok
test_non_traceback_param (greenlet.tests.test_throw.ThrowTests) ... ok
test_not_throwable (greenlet.tests.test_throw.ThrowTests) ... ok
test_throw_goes_to_original_parent (greenlet.tests.test_throw.ThrowTests) ... ok
test_val (greenlet.tests.test_throw.ThrowTests) ... ok
test_a_greenlet_tracing (greenlet.tests.test_tracing.TestGreenletTracing) ... ok
test_b_exception_disables_tracing (greenlet.tests.test_tracing.TestGreenletTracing) ... ok
test_set_same_tracer_twice (greenlet.tests.test_tracing.TestGreenletTracing) ... ok
test_trace_events_from_greenlet_func_sets_profiler (greenlet.tests.test_tracing.TestPythonTracing) ... ok
test_trace_events_from_greenlet_subclass_sets_profiler (greenlet.tests.test_tracing.TestPythonTracing) ... ok
test_trace_events_into_greenlet_func_already_set (greenlet.tests.test_tracing.TestPythonTracing) ... ok
test_trace_events_into_greenlet_subclass_already_set (greenlet.tests.test_tracing.TestPythonTracing) ... ok
test_trace_events_multiple_greenlets_switching (greenlet.tests.test_tracing.TestPythonTracing) ... ok
test_trace_events_multiple_greenlets_switching_siblings (greenlet.tests.test_tracing.TestPythonTracing) ... ok
test_trace_events_trivial (greenlet.tests.test_tracing.TestPythonTracing) ... ok
test_version (greenlet.tests.test_version.VersionTests) ... ok
test_dead_weakref (greenlet.tests.test_weakref.WeakRefTests) ... ok
test_dealloc_weakref (greenlet.tests.test_weakref.WeakRefTests) ... ok
test_inactive_weakref (greenlet.tests.test_weakref.WeakRefTests) ... ok

----------------------------------------------------------------------
Ran 139 tests

OK (skipped=4)
Time limit exceeded.
Threads: Waiting for only 1 --> 1
MGlets : Waiting for only 2 --> 3
py$(PYV): commands[2]> python -m sphinx.cmd.build -b doctest -d docs/_build/doctrees-py$(PYV) docs docs/_build/doctest-py$(PYV)
Running Sphinx v7.4.7
loading translations [en]... done
making output directory... done
Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`.
loading intersphinx inventory 'python' from https://docs.python.org/objects.inv...
loading intersphinx inventory 'gevent' from https://www.gevent.org/objects.inv...
intersphinx inventory has moved: https://docs.python.org/objects.inv -> https://docs.python.org/3/objects.inv
building [mo]: targets for 0 po files that are out of date
writing output... 
building [doctest]: targets for 15 source files that are out of date
updating environment: [new config] 15 added, 0 changed, 0 removed
reading sources... [  7%] api
reading sources... [ 13%] c_api
reading sources... [ 20%] caveats
reading sources... [ 27%] changes
reading sources... [ 33%] contextvars
reading sources... [ 40%] creating_executing_greenlets
reading sources... [ 47%] development
reading sources... [ 53%] greenlet
reading sources... [ 60%] greenlet_gc
reading sources... [ 67%] gui_example
reading sources... [ 73%] history
reading sources... [ 80%] index
reading sources... [ 87%] python_threads
reading sources... [ 93%] switching
reading sources... [100%] tracing

CHANGES.rst:3: WARNING: Duplicate explicit target name: "pr".
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
running tests...

Document: contextvars
---------------------
1 items passed all tests:
  18 tests in default
18 tests in 1 items.
18 passed and 0 failed.
Test passed.

Document: creating_executing_greenlets
--------------------------------------
1 items passed all tests:
  38 tests in default
38 tests in 1 items.
38 passed and 0 failed.
Test passed.

Document: greenlet_gc
---------------------
1 items passed all tests:
  30 tests in default
30 tests in 1 items.
30 passed and 0 failed.
Test passed.

Document: greenlet
------------------
1 items passed all tests:
  17 tests in default
17 tests in 1 items.
17 passed and 0 failed.
Test passed.

Document: gui_example
---------------------
1 items passed all tests:
  14 tests in default
14 tests in 1 items.
14 passed and 0 failed.
Test passed.

Document: python_threads
------------------------
1 items passed all tests:
  16 tests in default
16 tests in 1 items.
16 passed and 0 failed.
Test passed.

Document: switching
-------------------
1 items passed all tests:
  16 tests in default
16 tests in 1 items.
16 passed and 0 failed.
Test passed.

Document: tracing
-----------------
1 items passed all tests:
   9 tests in default
9 tests in 1 items.
9 passed and 0 failed.
Test passed.

Doctest summary
===============
  158 tests
    0 failures in tests
    0 failures in setup code
    0 failures in cleanup code
build succeeded, 1 warning.

Testing of doctests in the sources finished, look at the results in docs/_build/doctest-py$(PYV)/output.txt.
  py$(PYV): OK
  congratulations :)