package forward import ( "testing" "time" "github.com/coredns/coredns/plugin/pkg/dnstest" "github.com/miekg/dns" ) func TestCached(t *testing.T) { s := dnstest.NewServer(func(w dns.ResponseWriter, r *dns.Msg) { ret := new(dns.Msg) ret.SetReply(r) w.WriteMsg(ret) }) defer s.Close() tr := newTransport(s.Addr) tr.Start() defer tr.Stop() c1, cache1, _ := tr.Dial("udp") c2, cache2, _ := tr.Dial("udp") if cache1 || cache2 { t.Errorf("Expected non-cached connection") } tr.Yield(c1) tr.Yield(c2) c3, cached3, _ := tr.Dial("udp") if !cached3 { t.Error("Expected cached connection (c3)") } if c2 != c3 { t.Error("Expected c2 == c3") } tr.Yield(c3) // dial another protocol c4, cached4, _ := tr.Dial("tcp") if cached4 { t.Errorf("Expected non-cached connection (c4)") } tr.Yield(c4) } func TestCleanupByTimer(t *testing.T) { s := dnstest.NewServer(func(w dns.ResponseWriter, r *dns.Msg) { ret := new(dns.Msg) ret.SetReply(r) w.WriteMsg(ret) }) defer s.Close() tr := newTransport(s.Addr) tr.SetExpire(100 * time.Millisecond) tr.Start() defer tr.Stop() c1, _, _ := tr.Dial("udp") c2, _, _ := tr.Dial("udp") tr.Yield(c1) time.Sleep(10 * time.Millisecond) tr.Yield(c2) time.Sleep(120 * time.Millisecond) c3, cached, _ := tr.Dial("udp") if cached { t.Error("Expected non-cached connection (c3)") } tr.Yield(c3) time.Sleep(120 * time.Millisecond) c4, cached, _ := tr.Dial("udp") if cached { t.Error("Expected non-cached connection (c4)") } tr.Yield(c4) } func TestPartialCleanup(t *testing.T) { s := dnstest.NewServer(func(w dns.ResponseWriter, r *dns.Msg) { ret := new(dns.Msg) ret.SetReply(r) w.WriteMsg(ret) }) defer s.Close() tr := newTransport(s.Addr) tr.SetExpire(100 * time.Millisecond) tr.Start() defer tr.Stop() c1, _, _ := tr.Dial("udp") c2, _, _ := tr.Dial("udp") c3, _, _ := tr.Dial("udp") c4, _, _ := tr.Dial("udp") c5, _, _ := tr.Dial("udp") tr.Yield(c1) time.Sleep(10 * time.Millisecond) tr.Yield(c2) time.Sleep(10 * time.Millisecond) tr.Yield(c3) time.Sleep(50 * time.Millisecond) tr.Yield(c4) time.Sleep(10 * time.Millisecond) tr.Yield(c5) time.Sleep(40 * time.Millisecond) c6, _, _ := tr.Dial("udp") if c6 != c5 { t.Errorf("Expected c6 == c5") } c7, _, _ := tr.Dial("udp") if c7 != c4 { t.Errorf("Expected c7 == c4") } c8, cached, _ := tr.Dial("udp") if cached { t.Error("Expected non-cached connection (c8)") } tr.Yield(c6) tr.Yield(c7) tr.Yield(c8) } func TestCleanupAll(t *testing.T) { s := dnstest.NewServer(func(w dns.ResponseWriter, r *dns.Msg) { ret := new(dns.Msg) ret.SetReply(r) w.WriteMsg(ret) }) defer s.Close() tr := newTransport(s.Addr) c1, _ := dns.DialTimeout("udp", tr.addr, defaultDialTimeout) c2, _ := dns.DialTimeout("udp", tr.addr, defaultDialTimeout) c3, _ := dns.DialTimeout("udp", tr.addr, defaultDialTimeout) tr.conns["udp"] = []*persistConn{ {c1, time.Now()}, {c2, time.Now()}, {c3, time.Now()}, } if tr.len() != 3 { t.Error("Expected 3 connections") } tr.cleanup(true) if tr.len() > 0 { t.Error("Expected no cached connections") } } tion value='derrick/fix/event-emitter-async-iter'>derrick/fix/event-emitter-async-iter Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/src/bindgen.zig (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2021-12-31Fix an edgecase that causes a crash in HTTP serverGravatar Jarred Sumner 1-1/+1
2021-12-31[bun install] Slightly more reliable HTTPGravatar Jarred Sumner 3-3/+4
2021-12-31Bump peechy againGravatar Jarred Sumner 2-1/+1
2021-12-30woopsGravatar Jarred Sumner 2-4/+1
2021-12-3012 -> 13Gravatar Jarred Sumner 1-2/+2
2021-12-30Update zig version in DockerfileGravatar Jarred Sumner 3-31/+30
2021-12-30Update settings.jsonGravatar Jarred Sumner 1-1/+1
2021-12-30[JavaScriptCore] Fix crash due to not requesting JIT permission by patchingGravatar Jarred Sumner 1-3/+9
2021-12-30Fix issue with headersGravatar Jarred Sumner 5-3/+17
2021-12-30fix occasional HTTP bugGravatar Jarred Sumner 1-0/+2
2021-12-30Update c.zigGravatar Jarred Sumner 1-1/+1
2021-12-30Update global.zigGravatar Jarred Sumner 1-1/+1
2021-12-30linuxGravatar Jarred Sumner 5-4/+402
2021-12-30Update io_linux.zigGravatar Jarred Sumner 1-1/+1
2021-12-30Update io_linux.zigGravatar Jarred Sumner 1-1/+1
2021-12-30_ => .Gravatar Jarred Sumner 3-5/+5
2021-12-30- => .Gravatar Jarred Sumner 4-6/+6
2021-12-30Update bun.lockbGravatar Jarred Sumner 1-0/+0
2021-12-30Remove network_threadGravatar Jarred Sumner 1-12/+11
2021-12-30linuxGravatar Jarred Sumner 2-6/+7
2021-12-30[internal] Move network_thread into http packageGravatar Jarred Sumner 17-435/+32
2021-12-30Upgrade to latest Zig, remove dependency on patched version of Zig (#96)Gravatar Jarred Sumner 154-6271/+4561
2021-12-29zig fmtGravatar Jarred Sumner 5-8/+3
2021-12-29Update MakefileGravatar Jarred Sumner 1-1/+0