- name: integration/runner/forking_correct_parent.yml hosts: test-targets tasks: - include_tasks: ../_mitogen_only.yml # Verify mitogen_task_isolation=fork forks from "virginal fork parent", not # shared interpreter, but only if forking is enabled (e.g. that's never true # on Python 2.4). - mitogen_action_script: script: | self._connection._connect() result['uses_fork'] = ( self._connection.init_child_result['fork_context'] is not None ) register: forkmode - name: get regular process ID. custom_python_detect_environment: register: regular_proc - name: get force-forked process ID again. custom_python_detect_environment: register: fork_proc vars: mitogen_task_isolation: fork - assert: that: - fork_proc.pid != regular_proc.pid fail_msg: fork_proc={{fork_proc}} regular_proc={{regular_proc}} - assert: that: fork_proc.ppid != regular_proc.pid fail_msg: fork_proc={{fork_proc}} regular_proc={{regular_proc}} when: - forkmode.uses_fork - assert: that: fork_proc.ppid == regular_proc.pid fail_msg: fork_proc={{fork_proc}} regular_proc={{regular_proc}} when: - not forkmode.uses_fork tags: - forking_correct_parent - mitogen_only