---
- hosts: facthost1
  gather_facts: no
  tasks:
    - name: install test local facts
      copy:
        src: uuid.fact
        dest: /etc/ansible/facts.d/
        mode: 0755

- hosts: facthost1,facthost2
  gather_facts: yes
  run_once: yes
  tasks:
    - block:
      - name: 'Check the same host is used'
        assert:
          that: 'hostvars.facthost1.ansible_fqdn == hostvars.facthost2.ansible_fqdn'
          msg: 'This test requires 2 inventory hosts referring to the same host.'
      - name: "Check that run_once doesn't prevent fact gathering (#39453)"
        assert:
          that: 'hostvars.facthost1.ansible_local.uuid != hostvars.facthost2.ansible_local.uuid'
          msg: "{{ 'Same value for ansible_local.uuid on both hosts: ' ~ hostvars.facthost1.ansible_local.uuid }}"
      always:
        - name: remove test local facts
          file:
            path: /etc/ansible/facts.d/uuid.fact
            state: absent