(t *testing.T)
| 685 | } |
| 686 | |
| 687 | func 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]) |
nothing calls this directly
no test coverage detected