PHP Classes

File: extension/limits/limits_test.go

Recommend this page to a friend!
  Packages of Roni   Easy-Excel   extension/limits/limits_test.go   Download  
File: extension/limits/limits_test.go
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Easy-Excel
Export and read XLSX files with a PHP Go extension
Author: By
Last change:
Date: 6 days ago
Size: 1,239 bytes
 

Contents

Class file image Download
package limits import ( "errors" "testing" "time" ) func TestAcquireHeavyBlocksAndTimesOut(t *testing.T) { g := NewGate(Config{MaxConcurrent: 1, AcquireTimeout: 50 * time.Millisecond}) rel, err := g.AcquireHeavy() if err != nil { t.Fatal(err) } if _, err := g.AcquireHeavy(); !errors.Is(err, ErrOverloaded) { t.Fatalf("second acquire should overload, got %v", err) } rel() rel2, err := g.AcquireHeavy() if err != nil { t.Fatalf("after release acquire should succeed: %v", err) } rel2() } func TestMemoryBudget(t *testing.T) { g := NewGate(Config{MemoryBudget: 100}) if err := g.ReserveMemory(80); err != nil { t.Fatal(err) } if err := g.ReserveMemory(30); !errors.Is(err, ErrOverloaded) { t.Fatalf("over-budget reserve must fail, got %v", err) } if got := g.MemoryUsed(); got != 80 { t.Fatalf("failed reserve must roll back, used=%d", got) } if err := g.ReserveMemory(-80); err != nil { t.Fatal(err) } if got := g.MemoryUsed(); got != 0 { t.Fatalf("release accounting wrong, used=%d", got) } } func TestDefaults(t *testing.T) { g := NewGate(Config{}) rel, err := g.AcquireHeavy() if err != nil { t.Fatal(err) } rel() if err := g.ReserveMemory(1 << 20); err != nil { t.Fatal(err) } }