26int64 juce_fileSetPosition (
void* handle, int64 pos);
50 jassert (buffer !=
nullptr && bytesToRead >= 0);
52 auto num = readInternal (buffer, (
size_t) bytesToRead);
53 currentPosition += (int64) num;
65 return currentPosition;
73 if (pos != currentPosition)
74 currentPosition = juce_fileSetPosition (fileHandle, pos);
76 return currentPosition == pos;
84struct FileInputStreamTests :
public UnitTest
86 FileInputStreamTests()
87 :
UnitTest (
"FileInputStream", UnitTestCategories::streams)
90 void runTest()
override
92 const MemoryBlock data (
"abcdefghijklmnopqrstuvwxyz", 26);
94 f.appendData (data.getData(), data.getSize());
95 FileInputStream stream (f);
99 expectEquals (stream.getPosition(), (int64) 0);
100 expectEquals (stream.getTotalLength(), (int64) data.getSize());
101 expectEquals (stream.getNumBytesRemaining(), stream.getTotalLength());
102 expect (! stream.isExhausted());
104 size_t numBytesRead = 0;
105 MemoryBlock readBuffer (data.getSize());
107 while (numBytesRead < data.getSize())
109 numBytesRead += (size_t) stream.read (&readBuffer[numBytesRead], 3);
111 expectEquals (stream.getPosition(), (int64) numBytesRead);
112 expectEquals (stream.getNumBytesRemaining(), (int64) (data.getSize() - numBytesRead));
113 expect (stream.isExhausted() == (numBytesRead == data.getSize()));
116 expectEquals (stream.getPosition(), (int64) data.getSize());
117 expectEquals (stream.getNumBytesRemaining(), (int64) 0);
118 expect (stream.isExhausted());
120 expect (readBuffer == data);
124 stream.setPosition (0);
125 expectEquals (stream.getPosition(), (int64) 0);
126 expectEquals (stream.getTotalLength(), (int64) data.getSize());
127 expectEquals (stream.getNumBytesRemaining(), stream.getTotalLength());
128 expect (! stream.isExhausted());
131 const int numBytesToSkip = 5;
133 while (numBytesRead < data.getSize())
135 stream.skipNextBytes (numBytesToSkip);
136 numBytesRead += numBytesToSkip;
137 numBytesRead = std::min (numBytesRead, data.getSize());
139 expectEquals (stream.getPosition(), (int64) numBytesRead);
140 expectEquals (stream.getNumBytesRemaining(), (int64) (data.getSize() - numBytesRead));
141 expect (stream.isExhausted() == (numBytesRead == data.getSize()));
144 expectEquals (stream.getPosition(), (int64) data.getSize());
145 expectEquals (stream.getNumBytesRemaining(), (int64) 0);
146 expect (stream.isExhausted());
152static FileInputStreamTests fileInputStreamTests;
Represents a local file or directory.
int64 getSize() const
Returns the size of the file in bytes.
static File createTempFile(StringRef fileNameEnding)
Returns a temporary file in the system's temp directory.
This is a base class for classes that perform a unit test.