| 
									
										
										
										
											2016-04-12 21:45:25 +01:00
										 |  |  | // +build etcd
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | package etcd
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import (
 | 
					
						
							|  |  |  | 	"testing"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	"github.com/miekg/coredns/middleware"
 | 
					
						
							|  |  |  | 	"github.com/miekg/coredns/middleware/test"
 | 
					
						
							|  |  |  | 	"github.com/miekg/dns"
 | 
					
						
							|  |  |  | )
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-12 21:50:01 +01:00
										 |  |  | func TestStubCycle(t *testing.T) {
 | 
					
						
							| 
									
										
										
										
											2016-04-12 21:45:25 +01:00
										 |  |  | 	// reuse servics from stub_test.go
 | 
					
						
							|  |  |  | 	for _, serv := range servicesStub {
 | 
					
						
							|  |  |  | 		set(t, etc, serv.Key, 0, serv)
 | 
					
						
							|  |  |  | 		defer delete(t, etc, serv.Key)
 | 
					
						
							|  |  |  | 	}
 | 
					
						
							|  |  |  | 	etc.updateStubZones()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	for _, tc := range dnsTestCasesCycleStub {
 | 
					
						
							|  |  |  | 		m := tc.Msg()
 | 
					
						
							|  |  |  | 		if tc.Do {
 | 
					
						
							|  |  |  | 			// add our wacky edns fluff
 | 
					
						
							|  |  |  | 			m.Extra[0] = ednsStub
 | 
					
						
							|  |  |  | 		}
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		rec := middleware.NewResponseRecorder(&test.ResponseWriter{})
 | 
					
						
							|  |  |  | 		_, err := etc.ServeDNS(ctx, rec, m)
 | 
					
						
							| 
									
										
										
										
											2016-04-12 21:50:01 +01:00
										 |  |  | 		if err == nil {
 | 
					
						
							|  |  |  | 			t.Errorf("expected error, got none")
 | 
					
						
							| 
									
										
										
										
											2016-04-12 21:45:25 +01:00
										 |  |  | 			continue
 | 
					
						
							|  |  |  | 		}
 | 
					
						
							| 
									
										
										
										
											2016-04-12 21:50:01 +01:00
										 |  |  | 		// err should have been, set msg is nil, CoreDNS middlware handling takes
 | 
					
						
							|  |  |  | 		// care of proper error to client.
 | 
					
						
							| 
									
										
										
										
											2016-04-12 21:45:25 +01:00
										 |  |  | 	}
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-12 21:50:01 +01:00
										 |  |  | var dnsTestCasesCycleStub = []test.Case{{Qname: "example.org.", Qtype: dns.TypeA, Rcode: dns.RcodeRefused, Do: true}}
 |