
- name: integration/async/result_shell_echo_hi.yml
  gather_facts: true
  hosts: test-targets
  any_errors_fatal: true
  tasks:

  - shell: echo hi; echo there >&2
    async: 100
    poll: 0
    register: job

  - shell: sleep 1

  - slurp:
      src: "{{ansible_user_dir}}/.ansible_async/{{job.ansible_job_id}}"
    register: result

  #- debug: msg="{{result.content|b64decode|from_json}}"

  - assert:
      that:
        - async_out.changed == True
        - async_out.cmd == "echo hi; echo there >&2"
        - 'async_out.delta.startswith("0:00:")'
        - async_out.end.startswith("20")
        - async_out.invocation.module_args._raw_params == "echo hi; echo there >&2"
        - async_out.invocation.module_args._uses_shell == True
        - async_out.invocation.module_args.chdir == None
        - async_out.invocation.module_args.creates == None
        - async_out.invocation.module_args.executable == None
        - async_out.invocation.module_args.removes == None
        - async_out.invocation.module_args.warn == True
        - async_out.rc == 0
        - async_out.start.startswith("20")
        - async_out.stderr == "there"
        - async_out.stdout == "hi"
    vars:
      async_out: "{{result.content|b64decode|from_json}}"

  - assert:
      that:
        - async_out.invocation.module_args.stdin == None
    when: ansible_version.full > '2.4'
    vars:
      async_out: "{{result.content|b64decode|from_json}}"
