--- # Test playbook for BSD IPv6 address selection # Run with: ansible-playbook tests/test_bsd_ipv6.yml -e algo_debug=true - name: Test BSD IPv6 address selection logic hosts: localhost gather_facts: no vars: # Simulate BSD system facts with link-local as default ansible_default_ipv6: address: "fe80::1%em0" interface: "em0" prefix: "64" gateway: "fe80::1" # Simulate interface facts with multiple IPv6 addresses ansible_facts: em0: ipv6: - address: "fe80::1%em0" prefix: "64" - address: "2001:db8::1" prefix: "64" - address: "2001:db8::2" prefix: "64" # Simulate all_ipv6_addresses fact ansible_all_ipv6_addresses: - "fe80::1%em0" - "2001:db8::1" - "2001:db8::2" ipv6_support: true algo_debug: true tasks: - name: Show initial IPv6 facts debug: msg: "Initial ansible_default_ipv6: {{ ansible_default_ipv6 }}" - name: Include BSD IPv6 fix tasks include_tasks: ../roles/common/tasks/bsd_ipv6_facts.yml - name: Show fixed IPv6 facts debug: msg: | Fixed ansible_default_ipv6: {{ ansible_default_ipv6 }} Global IPv6 address: {{ global_ipv6_address | default('not found') }} Global IPv6 prefix: {{ global_ipv6_prefix | default('not found') }} - name: Verify fix worked assert: that: - ansible_default_ipv6.address == "2001:db8::1" - global_ipv6_address == "2001:db8::1" - "'%' not in ansible_default_ipv6.address" - not ansible_default_ipv6.address.startswith('fe80:') fail_msg: "BSD IPv6 address selection failed" success_msg: "BSD IPv6 address selection successful"