Skip to content

linode: Modernize record conversion#4560

Open
TomOnTime wants to merge 8 commits into
release_candidate_v5from
mod_linode
Open

linode: Modernize record conversion#4560
TomOnTime wants to merge 8 commits into
release_candidate_v5from
mod_linode

Conversation

@TomOnTime

Copy link
Copy Markdown
Collaborator

Dear @koesie10. I could use your help. I'm doing upgrades to the code base and I have no way to test your provider. Please run the integration test and let me know the result. How to run integration tests is here: https://docs.dnscontrol.org/developer-info/integration-tests

Summary

  • replace legacy record construction with current domain-aware factories
  • remove the legacy DNS name utility dependency
  • preserve Linode's split MX, SRV, and CAA fields
  • add focused conversion regression tests

Validation

  • ../../bin/is_modern.sh (Steps 1-7 clean)
  • go test ./providers/linode
  • bin/generate-all.sh
  • go test ./...

@TomOnTime

Copy link
Copy Markdown
Collaborator Author

Dear @koesie10, GitHub could not add you as a reviewer, so I sent you an invitation for triage access to this repository. Please accept the invitation when convenient, then take a look at this PR and run the provider integration test. Thank you!

@TomOnTime
TomOnTime marked this pull request as ready for review July 24, 2026 01:37
@koesie10

Copy link
Copy Markdown
Contributor

@TomOnTime Sorry for the late response. To make the integration tests run, I've had to make one change:

diff --git a/providers/linode/linodeProvider.go b/providers/linode/linodeProvider.go
index f474864c..99de1ddf 100644
--- a/providers/linode/linodeProvider.go
+++ b/providers/linode/linodeProvider.go
@@ -216,6 +216,7 @@ func (api *linodeProvider) GetZoneRecordsCorrections(dc *models.DomainConfig, ex
                case diff2.CHANGE:
                        id := change.Old[0].Original.(*domainRecord).ID
                        if id == 0 { // Skip ID 0, these are the default nameservers always present
+                               actualChangeCount--
                                continue
                        }
                        req, err := toReq(dc, change.New[0])

After that change, these are the failing tests:

--- FAIL: TestDNSProviders (231.66s)                                                                                                                                               
    --- FAIL: TestDNSProviders/dnscontroltest-linode.com (231.41s)                                                                                                                 
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty (0.50s)                                                                                             
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/00:A:Create_A (0.85s)                                                                                                 
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/00:A:Change_A_target (0.70s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#01 (0.38s)                                                                                          
        --- FAIL: TestDNSProviders/dnscontroltest-linode.com/01:Apex:Create_A (0.87s)                                                                                              
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#02 (0.37s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/02:Protocol-Wildcard:Create_wildcard (1.45s)                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/02:Protocol-Wildcard:Delete_wildcard (0.63s)                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#03 (0.38s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/03:AAAA:Create_AAAA (0.86s)                                                                                           
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/03:AAAA:Change_AAAA_target (0.59s)                                                                                    
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#04 (0.75s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/04:CNAME:Create_a_CNAME (0.86s)                                                                                       
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/04:CNAME:Change_CNAME_target (0.63s)                                                                                  
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#05 (0.44s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/05:CNAME-short:Create_a_CNAME (1.32s)                                                                                 
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#06 (0.58s)                                                                                          
        --- FAIL: TestDNSProviders/dnscontroltest-linode.com/06:MX:Create_MX_apex (0.82s)                                                                                          
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/07:RP_***SKIPPED(CanUseRP_not_supported)***:Empty (0.00s)                                                             
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/08:RP_***SKIPPED(CanUseRP_not_supported)***:Empty (0.00s)                                                             
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#07 (0.39s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/09:TXT:Create_TXT (0.78s)                                                                                             
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/09:TXT:Change_TXT_target (0.69s)                                                                                      
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#08 (0.45s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/10:ManyAtOnce:CreateManyAtLabel (1.97s)                                                                               
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/10:ManyAtOnce:Empty (0.94s)                                                                                           
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/10:ManyAtOnce:Create_an_A_record (0.85s)                                                                              
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/10:ManyAtOnce:Add_at_label1 (0.92s)                                                                                   
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/10:ManyAtOnce:Add_at_label2 (0.80s)                                                                                   
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#09 (0.98s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/11:manyTypesAtOnce:CreateManyTypesAtLabel (2.15s)                                                                     
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/11:manyTypesAtOnce:Empty (0.82s)                                                                                      
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/11:manyTypesAtOnce:Create_an_A_record (0.91s)                                                                         
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/11:manyTypesAtOnce:Add_Type_At_Label (1.07s)                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/11:manyTypesAtOnce:Add_Type_At_Label#01 (0.76s)                                                                       
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/12:Attl_***SKIPPED(excluded_by_not("LINODE"))***:Empty (0.00s)                                                        
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/13:TTL_***SKIPPED(excluded_by_not("LINODE"))***:Empty (0.00s)                                                         
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#10 (0.84s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/14:add_to_label_and_change_orig_ttl:Setup (0.84s)                                                                     
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/14:add_to_label_and_change_orig_ttl:Add_at_same_label,_new_ttl (0.78s)                                                
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#11 (0.66s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/15:TypeChange:Create_A (0.80s)                                                                                        
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/15:TypeChange:Change_to_MX (1.13s)                                                                                    
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/15:TypeChange:Change_back_to_A (1.13s)                                                                                
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#12 (0.38s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/16:TypeChangeHard:Create_a_CNAME (0.74s)                                                                              
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/16:TypeChangeHard:Change_to_A_record (1.09s)                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/16:TypeChangeHard:Change_back_to_CNAME (0.98s)                                                                        
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/17:HTTPS_***SKIPPED(CanUseHTTPS_not_supported)***:Empty (0.00s)                                                       
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/18:HTTPS-Ech_***SKIPPED(CanUseHTTPS_not_supported)***:Empty (0.00s)                                                   
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/19:SVCB_***SKIPPED(CanUseSVCB_not_supported)***:Empty (0.00s)                                                         
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/20:SVCB-Ech_***SKIPPED(CanUseSVCB_not_supported)***:Empty (0.00s)                                                     
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#13 (0.40s)                                                                                          
        --- FAIL: TestDNSProviders/dnscontroltest-linode.com/21:CNAME:Record_pointing_to_@ (1.25s)                                                                                 
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#14 (0.60s)                                                                                          
        --- FAIL: TestDNSProviders/dnscontroltest-linode.com/22:ApexMX:Record_pointing_to_@ (1.47s)                                                                                
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#15 (0.59s)                                                                                          
        --- FAIL: TestDNSProviders/dnscontroltest-linode.com/23:NullMX:create (0.80s)                                                                                              
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#16 (0.56s)                                                                                          
        --- FAIL: TestDNSProviders/dnscontroltest-linode.com/24:NullMXApex:create (1.92s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#17 (0.95s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/25:NS:NS_for_subdomain (0.85s)                                                                                        
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/25:NS:Dual_NS_for_subdomain (0.89s)                                                                                   
        --- FAIL: TestDNSProviders/dnscontroltest-linode.com/25:NS:NS_Record_pointing_to_@ (2.06s)                                                                                 
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#18 (0.60s)                                                                                          
        --- FAIL: TestDNSProviders/dnscontroltest-linode.com/26:NS_only_APEX:Single_NS_at_apex (0.84s)                                                                             
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#19 (0.36s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:a_0-byte_TXT (1.03s)                                                                                   
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:a_254-byte_TXT (1.22s)                                                                                 
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:a_255-byte_TXT (1.32s)                                                                                 
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:a_256-byte_TXT (1.43s)                                                                                 
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:a_509-byte_TXT (1.21s)                                                                                 
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:a_510-byte_TXT (1.35s)                                                                                 
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:a_511-byte_TXT (1.16s)                                                                                 
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:a_764-byte_TXT (0.96s)                                                                                 
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:a_765-byte_TXT (1.10s)                                                                                 
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:a_766-byte_TXT (1.28s)                                                                                 
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:TXT_with_1_single-quote (1.09s)                                                                        
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:TXT_with_1_backtick (1.21s)                                                                            
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:TXT_with_1_dq-1interior (1.15s)                                                                        
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:TXT_with_2_dq-2interior (1.17s)                                                                        
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:TXT_with_1_dq-left (0.62s)                                                                             
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:TXT_with_1_dq-right (0.69s)                                                                            
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:TXT_with_semicolon (1.27s)                                                                             
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:TXT_with_semicolon_ws (1.06s)                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:TXT_interior_ws (0.96s)                                                                                
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:TXT_trailing_ws (1.20s)                                                                                
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/27:complex_TXT:Create_a_TXT/SPF (1.41s)                                                                               
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#20 (0.35s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/28:TXT_backslashes:TXT_with_backslashs (2.27s)                                                                        
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#21 (1.32s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/29:Case_Sensitivity:Create_CAPS (0.98s)                                                                               
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/29:Case_Sensitivity:Downcase_label (0.82s)                                                                            
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/29:Case_Sensitivity:Downcase_target (0.58s)                                                                           
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/29:Case_Sensitivity:Upcase_both (0.66s)                                                                               
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#22 (0.63s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/30:testByLabel:initial (1.88s)                                                                                        
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/30:testByLabel:changeOne (0.79s)                                                                                      
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/30:testByLabel:deleteOne (0.66s)                                                                                      
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/30:testByLabel:addOne (0.82s)                                                                                         
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#23 (0.62s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/31:testByRecordSet:initial (2.52s)                                                                                    
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/31:testByRecordSet:changeOne (0.57s)                                                                                  
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/31:testByRecordSet:deleteOne (0.60s)                                                                                  
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/31:testByRecordSet:addOne (0.80s)                                                                                     
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#24 (1.38s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/32:IDNA:Internationalized_name (0.90s)                                                                                
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/32:IDNA:Change_IDN (0.59s)                                                                                            
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/32:IDNA:Chinese_label (1.05s)                                                                                         
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/32:IDNA:Internationalized_CNAME_Target (0.97s)                                                                        
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#25 (0.45s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/33:IDNAs_in_CNAME_targets:IDN_CNAME_AND_Target (0.86s)                                                                
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#26 (0.36s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/34:pager101:99_records (46.49s)                                                                                       
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/34:pager101:100_records (0.90s)                                                                                       
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/34:pager101:101_records (1.15s)                                                                                       
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/35:pager601_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                                             
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/36:pager1201_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                                            
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/37:batchRecordswithOthers_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                               
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#27 (25.43s)                                                                                         
        --- FAIL: TestDNSProviders/dnscontroltest-linode.com/38:CAA:CAA_record (0.81s)                                                                                             
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/39:LOC_***SKIPPED(CanUseLOC_not_supported)***:Empty (0.00s)                                                           
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/40:NAPTR_***SKIPPED(CanUseNAPTR_not_supported)***:Empty (0.00s)                                                       
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/41:PTR_***SKIPPED(CanUsePTR_not_supported)***:Empty (0.00s)                                                           
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/42:SOA_***SKIPPED(CanUseSOA_not_supported)***:Empty (0.00s)                                                           
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#28 (0.44s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/43:SRV:SRV_record (0.93s)                                                                                             
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/43:SRV:Second_SRV_record,_same_prio (1.00s)                                                                           
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/43:SRV:3_SRV (0.91s)                                                                                                  
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/43:SRV:Delete_one (0.56s)                                                                                             
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/43:SRV:Change_Target (0.69s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/43:SRV:Change_Priority (0.59s)                                                                                        
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/43:SRV:Change_Weight (0.60s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/43:SRV:Change_Port (0.58s)                                                                                            
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/43:SRV:Empty (0.75s)                                                                                                  
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/43:SRV:Null_Target (0.86s)                                                                                            
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#29 (0.42s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/44:SRV:Create_SRV333 (0.94s)                                                                                          
        --- FAIL: TestDNSProviders/dnscontroltest-linode.com/44:SRV:Change_TTL999 (0.28s)                                                                                          
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/45:SSHFP_***SKIPPED(CanUseSSHFP_not_supported)***:Empty (0.00s)                                                       
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/46:TLSA_***SKIPPED(CanUseTLSA_not_supported)***:Empty (0.00s)                                                         
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/47:DS_***SKIPPED(CanUseDS_not_supported)***:Empty (0.00s)                                                             
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/48:DS_(children_only)_***SKIPPED(CanUseDSForChildren_not_supported)***:Empty (0.00s)                                  
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/49:DS_(children_only)_CLOUDNS_***SKIPPED(CanUseDSForChildren_not_supported)***:Empty (0.00s)                          
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/50:DHCID_***SKIPPED(CanUseDHCID_not_supported)***:Empty (0.00s)                                                       
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/51:DNAME_***SKIPPED(CanUseDNAME_not_supported)***:Empty (0.00s)                                                       
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/52:DNSKEY_***SKIPPED(CanUseDNSKEY_not_supported)***:Empty (0.00s)                                                     
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/53:ALIAS_on_apex_***SKIPPED(CanUseAlias_not_supported)***:Empty (0.00s)                                               
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/54:ALIAS_to_nonfqdn_***SKIPPED(CanUseAlias_not_supported)***:Empty (0.00s)                                            
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/55:ALIAS_on_subdomain_***SKIPPED(CanUseAlias_not_supported)***:Empty (0.00s)                                          
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/56:AZURE_ALIAS_A_***SKIPPED(CanUseAzureAlias_not_supported)***:Empty (0.00s)                                          
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/57:AZURE_ALIAS_CNAME_***SKIPPED(CanUseAzureAlias_not_supported)***:Empty (0.00s)                                      
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/58:R53_ALIAS2_***SKIPPED(CanUseRoute53Alias_not_supported)***:Empty (0.00s)                                           
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/59:R53_ALIAS_ORDER_***SKIPPED(CanUseRoute53Alias_not_supported)***:Empty (0.00s)                                      
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/60:R53_ALIAS_CNAME_***SKIPPED(CanUseRoute53Alias_not_supported)***:Empty (0.00s)                                      
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/61:R53_ALIAS_Loop_***SKIPPED(CanUseRoute53Alias_not_supported)***:Empty (0.00s)                                       
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/62:R53_alias_pre-existing_***SKIPPED(CanUseRoute53Alias_not_supported)***:Empty (0.00s)                               
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/63:R53_alias_evaluate_target_health_***SKIPPED(CanUseRoute53Alias_not_supported)***:Empty (0.00s)                     
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/64:R53_B3493_***SKIPPED(CanUseRoute53Alias_not_supported)***:Empty (0.00s)                                            
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/65:R53_B3493_REV_***SKIPPED(CanUseRoute53Alias_not_supported)***:Empty (0.00s)                                        
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/66:R53_WEIGHT_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                                           
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/67:R53_WEIGHT_CNAME_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                                     
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/68:R53_WEIGHT_MIXED_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                                     
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/69:TENCENTDNS_LINE_WEIGHT_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                               
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/70:CLOUDFLAREAPI_SINGLE_REDIRECT_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                        
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/71:CF_PROXY_A_create_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                                    
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/72:CF_PROXY_A_off_to_on_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                                 
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/73:CF_PROXY_A_on_to_off_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                                 
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/74:CF_PROXY_CNAME_create_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                                
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/75:CF_PROXY_CNAME_off_to_on_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                             
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/76:CF_PROXY_CNAME_on_to_off_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                             
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/77:CF_CNAME_FLATTEN_create_***SKIPPED(excluded_by_alltrue([false]))***:Empty (0.00s)                                  
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/78:CF_CNAME_FLATTEN_off_to_on_***SKIPPED(excluded_by_alltrue([false]))***:Empty (0.00s)                               
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/79:CF_CNAME_FLATTEN_on_to_off_***SKIPPED(excluded_by_alltrue([false]))***:Empty (0.00s)                               
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/80:CF_COMMENT_create_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                                    
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/81:CF_TAGS_create_***SKIPPED(excluded_by_alltrue([false]))***:Empty (0.00s)                                           
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/82:CF_WORKER_ROUTE_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                                      
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/83:ADGUARDHOME_A_PASSTHROUGH_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                            
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/84:ADGUARDHOME_AAAA_PASSTHROUGH_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                         
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/85:MIKROTIK_FWD_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                                         
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/86:MIKROTIK_NXDOMAIN_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                                    
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/87:MIKROTIK_METADATA_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                                    
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/88:VERCEL_CAA_whitespace_-_cansignhttpexchanges_***SKIPPED(disabled_by_only)***:Empty (0.00s)                         
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#30 (0.37s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/89:IGNORE_main:Create_some_records (2.65s)                                                                            
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/89:IGNORE_main:ignore_label (0.35s)                                                                                   
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/89:IGNORE_main:VERIFY_PREVIOUS (0.32s)                                                                                
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/89:IGNORE_main:ignore_label,type (0.41s)                                                                              
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/89:IGNORE_main:VERIFY_PREVIOUS#01 (0.61s)                                                                             
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/89:IGNORE_main:ignore_label,type,target (0.34s)                                                                       
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/89:IGNORE_main:VERIFY_PREVIOUS#02 (0.38s)                                                                             
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/89:IGNORE_main:ignore_type (0.41s)                                                                                    
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/89:IGNORE_main:VERIFY_PREVIOUS#03 (0.40s)                                                                             
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/89:IGNORE_main:ignore_type,target (0.37s)                                                                             
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/89:IGNORE_main:VERIFY_PREVIOUS#04 (0.39s)                                                                             
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/89:IGNORE_main:ignore_target (0.39s)                                                                                  
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/89:IGNORE_main:VERIFY_PREVIOUS#05 (0.73s)                                                                             
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/89:IGNORE_main:ignore_manytypes (0.38s)                                                                               
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/89:IGNORE_main:VERIFY_PREVIOUS#06 (0.35s)                                                                             
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/89:IGNORE_main:ignore_label,type,target=* (0.32s)                                                                     
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/89:IGNORE_main:VERIFY_PREVIOUS#07 (0.35s)                                                                             
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#31 (1.46s)                                                                                          
        --- FAIL: TestDNSProviders/dnscontroltest-linode.com/90:IGNORE_apex:Create_some_records (2.65s)                                                                            
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#32 (1.44s)                                                                                          
        --- FAIL: TestDNSProviders/dnscontroltest-linode.com/91:IGNORE_unsafe:Create_some_records (2.08s)                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#33 (0.95s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/92:IGNORE_wilds:Create_some_records (2.63s)                                                                           
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/92:IGNORE_wilds:ignore_label=foo.* (0.38s)                                                                            
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/92:IGNORE_wilds:VERIFY_PREVIOUS (0.43s)                                                                               
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/92:IGNORE_wilds:ignore_label=foo.bat,type (0.38s)                                                                     
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/92:IGNORE_wilds:VERIFY_PREVIOUS#01 (0.37s)                                                                            
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/92:IGNORE_wilds:ignore_target=*.domain (0.40s)                                                                        
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/92:IGNORE_wilds:VERIFY_PREVIOUS#02 (0.36s)                                                                            
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#34 (1.46s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/93:IGNORE_with_modify:Create_some_records (4.02s)                                                                     
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/93:IGNORE_with_modify:IGNORE_change_ByZone (0.53s)                                                                    
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/93:IGNORE_with_modify:VERIFY_PREVIOUS (0.34s)                                                                         
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/93:IGNORE_with_modify:IGNORE_change_ByLabel (0.67s)                                                                   
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/93:IGNORE_with_modify:VERIFY_PREVIOUS#01 (0.48s)                                                                      
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/93:IGNORE_with_modify:IGNORE_change_ByRecordSet (0.56s)                                                               
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/93:IGNORE_with_modify:VERIFY_PREVIOUS#02 (0.38s)                                                                      
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/93:IGNORE_with_modify:IGNORE_change_ByRecord (0.70s)                                                                  
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/93:IGNORE_with_modify:VERIFY_PREVIOUS#03 (0.46s)                                                                      
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#35 (2.20s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/94:IGNORE_TARGET_b2285:Create_some_records (1.57s)                                                                    
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/94:IGNORE_TARGET_b2285:Add_a_new_record_-_ignoring_test.foo.com. (0.25s)                                              
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/94:IGNORE_TARGET_b2285:VERIFY_PREVIOUS (0.44s)                                                                        
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#36 (0.65s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/95:IGNORE_everything_b2822:Create_some_records (2.29s)                                                                
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/95:IGNORE_everything_b2822:ignore_them_all (0.38s)                                                                    
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/95:IGNORE_everything_b2822:VERIFY_PREVIOUS (0.34s)                                                                    
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#37 (1.04s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/96:IGNORE_w/change_b3227:Create_some_records (1.32s)                                                                  
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/96:IGNORE_w/change_b3227:ignore (0.53s)                                                                               
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/96:IGNORE_w/change_b3227:VERIFY_PREVIOUS (0.38s)                                                                      
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/96:IGNORE_w/change_b3227:Verify_nothing_changed (0.32s)                                                               
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/96:IGNORE_w/change_b3227:VERIFY_PREVIOUS#01 (0.34s)                                                                   
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/96:IGNORE_w/change_b3227:ignore_with_change (0.59s)                                                                   
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/96:IGNORE_w/change_b3227:VERIFY_PREVIOUS#02 (0.45s)                                                                   
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/97:structured_TXT_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                                       
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/98:structured_TXT_as_native_records_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                     
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/99:CLOUDNS_geodns_tests_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                                 
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/100:PORKBUN_url_forwarding_tests_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                        
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/101:GCORE_metadata_tests_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                                
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/102:NAMECHEAP_url_redirect_records_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                      
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/103:OPENPGPKEY_***SKIPPED(CanUseOPENPGPKEY_not_supported)***:Empty (0.00s)                                            
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/104:SMIMEA_***SKIPPED(CanUseSMIMEA_not_supported)***:Empty (0.00s)                                                    
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/105:Bunny_DNS_Pull_Zone_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                                 
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/106:HEDNS_DYNAMIC_A_lifecycle_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                           
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/107:HEDNS_DYNAMIC_AAAA+TXT_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                              
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/108:HEDNS_DDNS_KEY_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                                      
        --- SKIP: TestDNSProviders/dnscontroltest-linode.com/109:HEDNS_DYNAMIC_mixed_records_***SKIPPED(disabled_by_only)***:Empty (0.00s)                                         
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#38 (0.68s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#39 (0.22s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/111:final:final (0.73s)                                                                                               
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/Clean_Slate:Empty#40 (0.46s)                                                                                          
        --- PASS: TestDNSProviders/dnscontroltest-linode.com/112:final:final (0.90s)                                                                                               
=== RUN   TestMakeTests                                                                                                                                                            
--- PASS: TestMakeTests (0.01s)                                                                                                                                                    
=== RUN   TestDualProviders                                                                                                                                                        
Testing Profile="LINODE" (TYPE="LINODE")                                                                                                                                           
    provider_test.go:29: Skipping.  DocDualHost == Cannot                                                                                                                          
--- SKIP: TestDualProviders (0.19s)                                                                                                                                                
=== RUN   TestNameserverDots                                                                                                                                                       
Testing Profile="LINODE" (TYPE="LINODE")                                                                                                                                           
    provider_test.go:116: Skipping.  DocDualHost == Cannot                                                                                                                         
--- SKIP: TestNameserverDots (0.18s)                                                                                                                                               
=== RUN   TestDuplicateNameservers                                                                                                                                                 
Testing Profile="LINODE" (TYPE="LINODE")                                                                                                                                           
    provider_test.go:148: Skipping.  DocDualHost == Cannot                                                                                                                         
--- SKIP: TestDuplicateNameservers (0.18s)                                                                                                                                         
FAIL                                                                                                                                                                               
exit status 1                                                                                                                                                                      
FAIL    github.com/DNSControl/dnscontrol/v5/integrationTest     232.308s                                                                                                           

This was run using go test -v -args -verbose -profile LINODE, but I don't see the full error for each test in the output. These are some of the errors I'm seeing when running through my IDE:

=== RUN   TestDNSProviders/dnscontroltest-linode.com/01:Apex:Create_A
    helpers_integration_test.go:250: 
        + CREATE dnscontroltest-linode.com A 2.2.2.2 ttl=300: {"type":"A","name":"","target":"2.2.2.2","ttl_sec":300}
    helpers_integration_test.go:272: Expected 0 corrections on second run, but found 2.
    helpers_integration_test.go:274: UNEXPECTED #0: + CREATE dnscontroltest-linode.com A 2.2.2.2 ttl=300: {"type":"A","name":"","target":"2.2.2.2","ttl_sec":300}
    helpers_integration_test.go:274: UNEXPECTED #1: - DELETE .dnscontroltest-linode.com A 2.2.2.2 ttl=300, Linode ID: 45269322
--- FAIL: TestDNSProviders/dnscontroltest-linode.com/01:Apex:Create_A (0.81s)
=== RUN   TestDNSProviders/dnscontroltest-linode.com/06:MX:Create_MX_apex
    helpers_integration_test.go:250: 
        + CREATE dnscontroltest-linode.com MX 5 foo.com. ttl=300: {"type":"MX","name":"","target":"foo.com","priority":5,"ttl_sec":300}
    helpers_integration_test.go:272: Expected 0 corrections on second run, but found 2.
    helpers_integration_test.go:274: UNEXPECTED #0: + CREATE dnscontroltest-linode.com MX 5 foo.com. ttl=300: {"type":"MX","name":"","target":"foo.com","priority":5,"ttl_sec":300}
    helpers_integration_test.go:274: UNEXPECTED #1: - DELETE .dnscontroltest-linode.com MX 5 foo.com. ttl=300, Linode ID: 45269331
--- FAIL: TestDNSProviders/dnscontroltest-linode.com/06:MX:Create_MX_apex (0.83s)
=== RUN   TestDNSProviders/dnscontroltest-linode.com/21:CNAME:Record_pointing_to_@
    helpers_integration_test.go:250: 
        + CREATE dnscontroltest-linode.com A 1.2.3.4 ttl=300: {"type":"A","name":"","target":"1.2.3.4","ttl_sec":300}
    helpers_integration_test.go:250: 
        + CREATE foo.dnscontroltest-linode.com CNAME dnscontroltest-linode.com. ttl=300: {"type":"CNAME","name":"foo","target":"dnscontroltest-linode.com","ttl_sec":300}
    helpers_integration_test.go:272: Expected 0 corrections on second run, but found 2.
    helpers_integration_test.go:274: UNEXPECTED #0: + CREATE dnscontroltest-linode.com A 1.2.3.4 ttl=300: {"type":"A","name":"","target":"1.2.3.4","ttl_sec":300}
    helpers_integration_test.go:274: UNEXPECTED #1: - DELETE .dnscontroltest-linode.com A 1.2.3.4 ttl=300, Linode ID: 45269364
--- FAIL: TestDNSProviders/dnscontroltest-linode.com/21:CNAME:Record_pointing_to_@ (1.33s)
=== RUN   TestDNSProviders/dnscontroltest-linode.com/22:ApexMX:Record_pointing_to_@
    helpers_integration_test.go:250: 
        + CREATE dnscontroltest-linode.com A 1.2.3.4 ttl=300: {"type":"A","name":"","target":"1.2.3.4","ttl_sec":300}
    helpers_integration_test.go:250: 
        + CREATE foo.dnscontroltest-linode.com MX 8 dnscontroltest-linode.com. ttl=300: {"type":"MX","name":"foo","target":"dnscontroltest-linode.com","priority":8,"ttl_sec":300}
    helpers_integration_test.go:272: Expected 0 corrections on second run, but found 2.
    helpers_integration_test.go:274: UNEXPECTED #0: + CREATE dnscontroltest-linode.com A 1.2.3.4 ttl=300: {"type":"A","name":"","target":"1.2.3.4","ttl_sec":300}
    helpers_integration_test.go:274: UNEXPECTED #1: - DELETE .dnscontroltest-linode.com A 1.2.3.4 ttl=300, Linode ID: 45269366
--- FAIL: TestDNSProviders/dnscontroltest-linode.com/22:ApexMX:Record_pointing_to_@ (1.32s)
=== RUN   TestDNSProviders/dnscontroltest-linode.com/23:NullMX:create
    helpers_integration_test.go:250: 
        + CREATE nmx.dnscontroltest-linode.com A 1.2.3.3 ttl=300: {"type":"A","name":"nmx","target":"1.2.3.3","ttl_sec":300}
    helpers_integration_test.go:250: 
        + CREATE nmx.dnscontroltest-linode.com MX 0 . ttl=300: {"type":"MX","name":"nmx","target":"","ttl_sec":300}
    helpers_integration_test.go:255: bad status code from Linode: 400 not 200
        - name: Cannot create a null MX record with a nonempty name.
--- FAIL: TestDNSProviders/dnscontroltest-linode.com/23:NullMX:create (0.81s)
=== RUN   TestDNSProviders/dnscontroltest-linode.com/24:NullMXApex:create
    helpers_integration_test.go:250: 
        + CREATE dnscontroltest-linode.com A 1.2.3.2 ttl=300: {"type":"A","name":"","target":"1.2.3.2","ttl_sec":300}
    helpers_integration_test.go:250: 
        + CREATE dnscontroltest-linode.com MX 0 . ttl=300: {"type":"MX","name":"","target":"","ttl_sec":300}
    helpers_integration_test.go:250: 
        + CREATE www.dnscontroltest-linode.com A 1.2.3.8 ttl=300: {"type":"A","name":"www","target":"1.2.3.8","ttl_sec":300}
    helpers_integration_test.go:272: Expected 0 corrections on second run, but found 4.
    helpers_integration_test.go:274: UNEXPECTED #0: + CREATE dnscontroltest-linode.com A 1.2.3.2 ttl=300: {"type":"A","name":"","target":"1.2.3.2","ttl_sec":300}
    helpers_integration_test.go:274: UNEXPECTED #1: + CREATE dnscontroltest-linode.com MX 0 . ttl=300: {"type":"MX","name":"","target":"","ttl_sec":300}
    helpers_integration_test.go:274: UNEXPECTED #2: - DELETE .dnscontroltest-linode.com A 1.2.3.2 ttl=300, Linode ID: 45269369
    helpers_integration_test.go:274: UNEXPECTED #3: - DELETE .dnscontroltest-linode.com MX 0 . ttl=300, Linode ID: 45269370
--- FAIL: TestDNSProviders/dnscontroltest-linode.com/24:NullMXApex:create (1.74s)
=== RUN   TestDNSProviders/dnscontroltest-linode.com/25:NS:NS_Record_pointing_to_@
    helpers_integration_test.go:250: 
        + CREATE dnscontroltest-linode.com A 1.2.3.4 ttl=300: {"type":"A","name":"","target":"1.2.3.4","ttl_sec":300}
    helpers_integration_test.go:250: 
        + CREATE foo.dnscontroltest-linode.com NS dnscontroltest-linode.com. ttl=300: {"type":"NS","name":"foo","target":"dnscontroltest-linode.com.","ttl_sec":300}
    helpers_integration_test.go:250: 
        - DELETE xyz.dnscontroltest-linode.com NS ns1.foo.com. ttl=300, Linode ID: 45269373
    helpers_integration_test.go:250: 
        - DELETE xyz.dnscontroltest-linode.com NS ns2.foo.com. ttl=300, Linode ID: 45269372
    helpers_integration_test.go:272: Expected 0 corrections on second run, but found 2.
    helpers_integration_test.go:274: UNEXPECTED #0: + CREATE dnscontroltest-linode.com A 1.2.3.4 ttl=300: {"type":"A","name":"","target":"1.2.3.4","ttl_sec":300}
    helpers_integration_test.go:274: UNEXPECTED #1: - DELETE .dnscontroltest-linode.com A 1.2.3.4 ttl=300, Linode ID: 45269374
--- FAIL: TestDNSProviders/dnscontroltest-linode.com/25:NS:NS_Record_pointing_to_@ (2.37s)
=== RUN   TestDNSProviders/dnscontroltest-linode.com/26:NS_only_APEX:Single_NS_at_apex
    helpers_integration_test.go:250: 
        + CREATE dnscontroltest-linode.com NS ns5.linode.com. ttl=300: {"type":"NS","name":"","target":"ns5.linode.com.","ttl_sec":300}
    helpers_integration_test.go:272: Expected 0 corrections on second run, but found 2.
    helpers_integration_test.go:274: UNEXPECTED #0: + CREATE dnscontroltest-linode.com NS ns5.linode.com. ttl=300: {"type":"NS","name":"","target":"ns5.linode.com.","ttl_sec":300}
    helpers_integration_test.go:274: UNEXPECTED #1: - DELETE .dnscontroltest-linode.com NS ns5.linode.com. ttl=300, Linode ID: 45269379
--- FAIL: TestDNSProviders/dnscontroltest-linode.com/26:NS_only_APEX:Single_NS_at_apex (0.80s)

@TomOnTime

Copy link
Copy Markdown
Collaborator Author

Interesting!

They all seem to be having the same issue:

=== RUN   TestDNSProviders/dnscontroltest-linode.com/01:Apex:Create_A
    helpers_integration_test.go:250: 
        + CREATE dnscontroltest-linode.com A 2.2.2.2 ttl=300: {"type":"A","name":"","target":"2.2.2.2","ttl_sec":300}
    helpers_integration_test.go:272: Expected 0 corrections on second run, but found 2.
    helpers_integration_test.go:274: UNEXPECTED #0: + CREATE dnscontroltest-linode.com A 2.2.2.2 ttl=300: {"type":"A","name":"","target":"2.2.2.2","ttl_sec":300}
    helpers_integration_test.go:274: UNEXPECTED #1: - DELETE .dnscontroltest-linode.com A 2.2.2.2 ttl=300, Linode ID: 45269322
--- FAIL: TestDNSProviders/dnscontroltest-linode.com/01:Apex:Create_A (0.81s)

"Expected 0 corrections on second run, but found 2." means that the correction was send/requested, but when it read things back there were still corrections to make, which mean the change request was malformed in some way.

The fact that what its deleting (to correct the wrong change) is a label .dnscontroltest-linode.com, tells me that this statement may be wrong:

Line 313-ish:

	// Linode doesn't use "@", it uses an empty name
	if req.Name == "@" {
		req.Name = ""
	}

Hope that helps!
Tom

@TomOnTime

Copy link
Copy Markdown
Collaborator Author

koesie10: I don't have a way to contact you in case there is a problem with Github. Could you please email me at tal at what exit dot org so I have your email address? I promise not to use it for anything other than DNSControl. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

3 participants