Skip to content

Commit

Permalink
fix: fsRepo test
Browse files Browse the repository at this point in the history
  • Loading branch information
aloknerurkar committed Jul 26, 2021
1 parent 109bd61 commit 352895a
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 29 deletions.
12 changes: 0 additions & 12 deletions modules/repo/fsrepo/export_test.go
Original file line number Diff line number Diff line change
@@ -1,15 +1,3 @@
package fsrepo

import (
"github.com/plexsysio/go-msuite/modules/repo"
)

var Opener = opener

func GetRefCnt() int {
return opener.refCnt
}

func GetActive() repo.Repo {
return opener.active
}
24 changes: 12 additions & 12 deletions modules/repo/fsrepo/fsrepo.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,37 +20,37 @@ import (

type repoOpener struct {
mtx sync.Mutex
active *fsRepo
refCnt int
Active *fsRepo
RefCnt int
}

func (r *repoOpener) Open(path string) (repo.Repo, error) {
r.mtx.Lock()
defer r.mtx.Unlock()

if r.active != nil {
r.refCnt++
return r.active, nil
if r.Active != nil {
r.RefCnt++
return r.Active, nil
}
rp, err := open(path)
if err != nil {
return nil, err
}
r.active = rp.(*fsRepo)
r.refCnt = 1
return r.active, nil
r.Active = rp.(*fsRepo)
r.RefCnt = 1
return r.Active, nil
}

func (r *repoOpener) Close() error {
r.mtx.Lock()
defer r.mtx.Unlock()

r.refCnt--
if r.refCnt > 0 {
r.RefCnt--
if r.RefCnt > 0 {
return nil
}
ar := r.active
r.active = nil
ar := r.Active
r.Active = nil
return ar.close()
}

Expand Down
10 changes: 5 additions & 5 deletions modules/repo/fsrepo/fsrepo_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,24 +54,24 @@ func TestOpen(t *testing.T) {
if r2 != r {
t.Fatal("Newly opened repo doesnt match already open one")
}
if fsrepo.GetRefCnt() != 2 {
t.Fatal("RefCnt is incorrect", fsrepo.GetRefCnt())
if fsrepo.Opener.RefCnt != 2 {
t.Fatal("RefCnt is incorrect", fsrepo.Opener.RefCnt)
}
err = r.Close()
if err != nil {
t.Fatal("Failed closing repo", err)
}
if fsrepo.GetRefCnt() != 1 {
if fsrepo.Opener.RefCnt != 1 {
t.Fatal("RefCnt is incorrect", fsrepo.Opener)
}
err = r2.Close()
if err != nil {
t.Fatal("Failed closing repo", err)
}
if fsrepo.GetRefCnt() != 0 {
if fsrepo.Opener.RefCnt != 0 {
t.Fatal("RefCnt is incorrect", fsrepo.Opener)
}
if fsrepo.GetActive() != nil {
if fsrepo.Opener.Active != nil {
t.Fatal("Close did not clear internal stores")
}
}

0 comments on commit 352895a

Please sign in to comment.