MCPcopy
hub / github.com/cubefs/cubefs / TestDentry

Function TestDentry

metanode/multi_ver_test.go:687–796  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

685}
686
687func TestDentry(t *testing.T) {
688 initMp(t)
689
690 var denArry []*Dentry
691 // err := gohook.HookMethod(mp, "submit", MockSubmitTrue, nil)
692 mp.config.Cursor = 1100
693 //--------------------build dir and it's child on different version ------------------
694 seq0 := testCreateVer()
695 dirIno := testCreateInode(t, DirModeType)
696 assert.True(t, dirIno != nil)
697 dirDen := testCreateDentry(t, 1, dirIno.Inode, "testDir", DirModeType)
698 assert.True(t, dirDen != nil)
699
700 fIno := testCreateInode(t, FileModeType)
701 assert.True(t, fIno != nil)
702 fDen := testCreateDentry(t, dirIno.Inode, fIno.Inode, "testfile", FileModeType)
703 denArry = append(denArry, fDen)
704
705 //--------------------------------------
706 seq1 := testCreateVer()
707 fIno1 := testCreateInode(t, FileModeType)
708 fDen1 := testCreateDentry(t, dirIno.Inode, fIno1.Inode, "testfile2", FileModeType)
709 denArry = append(denArry, fDen1)
710
711 //--------------------------------------
712 seq2 := testCreateVer()
713 fIno2 := testCreateInode(t, FileModeType)
714 fDen2 := testCreateDentry(t, dirIno.Inode, fIno2.Inode, "testfile3", FileModeType)
715 denArry = append(denArry, fDen2)
716
717 //--------------------------------------
718 seq3 := testCreateVer()
719 //--------------------read dir and it's child on different version ------------------
720
721 t.Logf("TestDentry seq [%v],%v,uncommit %v,dir:%v, dentry {%v],inode[%v,%v,%v]", seq1, seq2, seq3, dirDen, denArry, fIno, fIno1, fIno2)
722 //-----------read curr version --
723 rspReadDir := testReadDirAll(t, 0, 1)
724 t.Logf("len child %v, len arry %v", len(rspReadDir.Children), len(denArry))
725 assert.True(t, len(rspReadDir.Children) == 1)
726 assert.True(t, isDentryEqual(&rspReadDir.Children[0], dirDen))
727
728 rspReadDir = testReadDirAll(t, 0, dirIno.Inode)
729 assert.True(t, len(rspReadDir.Children) == len(denArry))
730
731 for idx, info := range rspReadDir.Children {
732 t.Logf("getinfo:%v, expect:%v", info, denArry[idx])
733 assert.True(t, isDentryEqual(&info, denArry[idx]))
734 }
735
736 //-----------read 0 version --
737 rspReadDir = testReadDirAll(t, math.MaxUint64, dirIno.Inode)
738 assert.True(t, len(rspReadDir.Children) == 0)
739
740 //-----------read layer 1 version -- seq2 is the last layer, seq1 is the second layer
741 rspReadDir = testReadDirAll(t, seq1, dirIno.Inode)
742 assert.True(t, len(rspReadDir.Children) == 2)
743 for idx, info := range rspReadDir.Children {
744 t.Logf("getinfo:%v, expect:%v", info, denArry[idx])

Callers

nothing calls this directly

Calls 11

LogDebugfFunction · 0.92
initMpFunction · 0.85
testCreateVerFunction · 0.85
testCreateInodeFunction · 0.85
testCreateDentryFunction · 0.85
testReadDirAllFunction · 0.85
isDentryEqualFunction · 0.85
testPrintAllDentryFunction · 0.85
testPrintAllSysVerListFunction · 0.85
testPrintAllInodeInfoFunction · 0.85

Tested by

no test coverage detected