Test_MemoryLock() — fiber Function Reference
Architecture documentation for the Test_MemoryLock() function in locker_test.go from the fiber codebase.
Entity Profile
Dependency Diagram
graph TD 416fde34_59ba_bc05_e641_61e3ab8feb2b["Test_MemoryLock()"] 40783155_a178_0f0d_045d_88e980e329eb["locker_test.go"] 416fde34_59ba_bc05_e641_61e3ab8feb2b -->|defined in| 40783155_a178_0f0d_045d_88e980e329eb style 416fde34_59ba_bc05_e641_61e3ab8feb2b fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
middleware/idempotency/locker_test.go lines 16–84
func Test_MemoryLock(t *testing.T) {
t.Parallel()
l := idempotency.NewMemoryLock()
// Test that a lock can be acquired
{
err := l.Lock("a")
require.NoError(t, err)
}
// Test that the same lock cannot be acquired again while held
{
done := make(chan struct{})
go func() {
defer close(done)
err := l.Lock("a")
assert.NoError(t, err)
}()
select {
case <-done:
t.Fatal("lock acquired again")
case <-time.After(time.Second):
// Expected: goroutine should still be blocked
}
}
// Release lock "a" to prevent goroutine leak
{
err := l.Unlock("a")
require.NoError(t, err)
}
// Test lock and unlock sequence
{
err := l.Lock("b")
require.NoError(t, err)
}
{
err := l.Unlock("b")
require.NoError(t, err)
}
{
err := l.Lock("b")
require.NoError(t, err)
}
{
err := l.Unlock("b")
require.NoError(t, err)
}
// Test unlocking non-existent lock (should succeed)
{
err := l.Unlock("c")
require.NoError(t, err)
}
// Test another lock
{
err := l.Lock("d")
require.NoError(t, err)
}
{
err := l.Unlock("d")
require.NoError(t, err)
}
}
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does Test_MemoryLock() do?
Test_MemoryLock() is a function in the fiber codebase, defined in middleware/idempotency/locker_test.go.
Where is Test_MemoryLock() defined?
Test_MemoryLock() is defined in middleware/idempotency/locker_test.go at line 16.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free