Files
nostrlib/eventstore/mmm/lockfile_test.go
2025-10-28 19:09:28 -03:00

36 lines
785 B
Go

package mmm
import (
"os"
"testing"
"github.com/stretchr/testify/require"
)
func TestLockfile(t *testing.T) {
// create a temporary directory for the test
tmpDir, err := os.MkdirTemp("", "mmm-lockfile-test-*")
require.NoError(t, err)
defer os.RemoveAll(tmpDir)
// initialize first MMM instance
mmmm1 := &MultiMmapManager{Dir: tmpDir}
err = mmmm1.Init()
require.NoError(t, err)
defer mmmm1.Close()
// try to initialize second MMM instance on the same directory
mmmm2 := &MultiMmapManager{Dir: tmpDir}
err = mmmm2.Init()
require.Error(t, err)
require.Contains(t, err.Error(), "already in use by another instance")
// close first instance
mmmm1.Close()
// now second instance should be able to open
err = mmmm2.Init()
require.NoError(t, err)
mmmm2.Close()
}