64 jassert (buffer !=
nullptr && howMany >= 0);
66 if (howMany <= 0 || position >=
dataSize)
98 if (numBytesToSkip > 0)
107class MemoryStreamTests :
public UnitTest
114 void runTest()
override
116 beginTest (
"Basics");
117 Random
r = getRandom();
119 int randomInt =
r.nextInt();
120 int64 randomInt64 =
r.nextInt64();
121 double randomDouble =
r.nextDouble();
122 String randomString (createRandomWideCharString (
r));
125 mo.writeInt (randomInt);
126 mo.writeIntBigEndian (randomInt);
127 mo.writeCompressedInt (randomInt);
128 mo.writeString (randomString);
129 mo.writeInt64 (randomInt64);
130 mo.writeInt64BigEndian (randomInt64);
131 mo.writeDouble (randomDouble);
132 mo.writeDoubleBigEndian (randomDouble);
134 MemoryInputStream mi (
mo.getData(),
mo.getDataSize(),
false);
135 expect (mi.readInt() == randomInt);
136 expect (mi.readIntBigEndian() == randomInt);
137 expect (mi.readCompressedInt() == randomInt);
138 expectEquals (mi.readString(), randomString);
139 expect (mi.readInt64() == randomInt64);
140 expect (mi.readInt64BigEndian() == randomInt64);
141 expect (mi.readDouble() == randomDouble);
142 expect (mi.readDoubleBigEndian() == randomDouble);
145 MemoryInputStream stream (
data,
true);
149 expectEquals (stream.getPosition(), (
int64) 0);
150 expectEquals (stream.getTotalLength(), (
int64)
data.getSize());
151 expectEquals (stream.getNumBytesRemaining(), stream.getTotalLength());
152 expect (! stream.isExhausted());
154 size_t numBytesRead = 0;
157 while (numBytesRead <
data.getSize())
159 numBytesRead += (size_t) stream.read (&readBuffer[numBytesRead], 3);
161 expectEquals (stream.getPosition(), (
int64) numBytesRead);
162 expectEquals (stream.getNumBytesRemaining(), (
int64) (
data.getSize() - numBytesRead));
163 expect (stream.isExhausted() == (numBytesRead ==
data.getSize()));
166 expectEquals (stream.getPosition(), (
int64)
data.getSize());
167 expectEquals (stream.getNumBytesRemaining(), (
int64) 0);
168 expect (stream.isExhausted());
170 expect (readBuffer ==
data);
174 stream.setPosition (0);
175 expectEquals (stream.getPosition(), (
int64) 0);
176 expectEquals (stream.getTotalLength(), (
int64)
data.getSize());
177 expectEquals (stream.getNumBytesRemaining(), stream.getTotalLength());
178 expect (! stream.isExhausted());
181 const int numBytesToSkip = 5;
183 while (numBytesRead <
data.getSize())
185 stream.skipNextBytes (numBytesToSkip);
186 numBytesRead += numBytesToSkip;
187 numBytesRead = std::min (numBytesRead,
data.getSize());
189 expectEquals (stream.getPosition(), (
int64) numBytesRead);
190 expectEquals (stream.getNumBytesRemaining(), (
int64) (
data.getSize() - numBytesRead));
191 expect (stream.isExhausted() == (numBytesRead ==
data.getSize()));
194 expectEquals (stream.getPosition(), (
int64)
data.getSize());
195 expectEquals (stream.getNumBytesRemaining(), (
int64) 0);
196 expect (stream.isExhausted());
199 static String createRandomWideCharString (Random&
r)
211 while (! CharPointer_UTF16::canRepresent (buffer[
i]));
217 return CharPointer_UTF32 (buffer);
221static MemoryStreamTests memoryInputStreamUnitTests;
Type jmin(const Type a, const Type b)
Definition MathsFunctions.h:60
int64_t int64
Definition basics.h:91
Definition MemoryBlock.h:39
Definition MemoryOutputStream.h:42
Definition juce_MemoryBlock.h:33
Definition juce_UnitTest.h:70
register unsigned i
Definition inflate.c:1575
JSAMPIMAGE data
Definition jpeglib.h:945
Definition juce_UnitTestCategories.h:27
JOCTET * buffer
Definition juce_JPEGLoader.cpp:302
Definition carla_juce.cpp:31
Type jlimit(Type lowerLimit, Type upperLimit, Type valueToConstrain) noexcept
Definition juce_MathsFunctions.h:262
long long int64
Definition juce_MathsFunctions.h:54
wchar_t juce_wchar
Definition juce_CharacterFunctions.h:42
Type * addBytesToPointer(Type *basePointer, IntegerType bytes) noexcept
Definition juce_Memory.h:111
constexpr int numElementsInArray(Type(&)[N]) noexcept
Definition juce_MathsFunctions.h:344
Definition juce_Uuid.h:141
memcpy(hh, h, RAND_HEAD_LEN)
int r
Definition crypt.c:458
mo
Definition zipinfo.c:2287