public void MoveNext_WithTree1_FirstMoveNextIsTrue() { AddEntries1(); var ee = new EntryEnumerator(EStore); Assert.That(ee.MoveNext(), Is.True); }
public void MoveNext_WithTree1_AfterSecondMoveNextReturnsFalse() { AddEntries1(); var ee = new EntryEnumerator(EStore); ee.MoveNext(); Assert.That(ee.MoveNext(), Is.False); }
public void MoveNext_WithTree1_AfterMoveNextCurrentHasFirstEntry() { AddEntries1(); var ee = new EntryEnumerator(EStore); ee.MoveNext(); Assert.That(ee.Current.Index, Is.EqualTo(File1Index), "Did not get File1Index entry."); }
public void MoveNext_WithTree1_AfterSecondMoveNextCurrentNull() { AddEntries1(); var ee = new EntryEnumerator(EStore); ee.MoveNext(); ee.MoveNext(); Assert.That(ee.Current, Is.Null); }
private int _OnReadDirectory(string path, IntPtr buf, IntPtr filler, long offset, IntPtr fi, IntPtr stbuf) { Trace.WriteLine($"_OnReadDirectory {path}"); Errno errno = 0; try { if (offset == 0) { GetDirectoryEnumerator(path, fi, out offset, out errno); } if (errno != 0) { return(Interop.ConvertErrno(errno)); } EntryEnumerator entries = null; lock (directoryLock) { string key = offset.ToString(); if (directoryReaders.ContainsKey(key)) { entries = directoryReaders[key]; } } // FUSE will invoke _OnReadDirectory at least twice, but if // there were very few entries then the enumerator will get // cleaned up during the first call, so this is (1) expected, // and (2) ignorable. if (entries == null) { return(0); } bool cleanup = FillEntries(filler, buf, stbuf, offset, entries); if (cleanup) { entries.Dispose(); lock (directoryLock) { directoryReaders.Remove(offset.ToString()); } } } catch (Exception e) { Trace.WriteLine(e.ToString()); errno = Errno.EIO; } return(Interop.ConvertErrno(errno)); }
public void MoveNext_WithTree2_FourthMoveNextReturnsFalse() { AddEntries1(); AddEntries2(); var ee = new EntryEnumerator(EStore); ee.MoveNext(); ee.MoveNext(); ee.MoveNext(); Assert.That(ee.MoveNext(), Is.False, "Fouth MoveNext() true."); }
public void MoveNext_WithTree3_AfterFourMoveNextReturnsFourthEntry() { AddEntries1(); AddEntries2(); AddEntries3(); var ee = new EntryEnumerator(EStore); ee.MoveNext(); ee.MoveNext(); ee.MoveNext(); ee.MoveNext(); Assert.That(ee.Current.Index, Is.EqualTo(File3Index), "Did not get File3Index entry."); }
public void MoveNext_WithTree3_FifthMoveNextReturnsFalse() { AddEntries1(); AddEntries2(); AddEntries3(); var ee = new EntryEnumerator(EStore); ee.MoveNext(); ee.MoveNext(); ee.MoveNext(); ee.MoveNext(); Assert.That(ee.MoveNext(), Is.False, "Fifth MoveNext() True,"); }
public void PrintPathsHaveHash2_WithTree4_A() { AddEntriesX4(); var ee = new EntryEnumerator(EStore); Assert.That(ee.MoveNext(), Is.True, "t1"); Assert.That(ee.Current.Index, Is.EqualTo(File1Index), "Did not get Dir2Index entry."); Assert.That(ee.MoveNext(), Is.True, "t2"); Assert.That(ee.Current.Index, Is.EqualTo(Dir2Index), "Did not get File1Index entry."); Assert.That(ee.MoveNext(), Is.True, "t3"); Assert.That(ee.Current.Index, Is.EqualTo(Dir5Index), "Did not get File4Dir5IndexIndex entry."); Assert.That(ee.MoveNext(), Is.False, "t6"); EStore.PrintPathsHaveHash2(); }
private bool FillEntries( IntPtr filler, IntPtr buf, IntPtr stbuf, long offset, EntryEnumerator entries) { while (entries.MoveNext()) { DirectoryEntry entry = entries.Current; IntPtr _stbuf = IntPtr.Zero; int r = Interop.adaptor_invoke_filler(filler, buf, entry.Name, _stbuf, offset); if (r != 0) { entries.Repeat = true; return(false); } } return(true); }
public void MoveNext_WithTree_CurrentIsNullBeforeMoveNext() { var ee = new EntryEnumerator(EStore); Assert.That(ee.Current, Is.Null); }
public void MoveNext_NoRootEntries_FirstMoveNextFalse() { var ee = new EntryEnumerator(EStore); Assert.That(ee.MoveNext(), Is.False); }