ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/s10k/CommonLibs/quazip-0.7.2/qztest/testquaziodevice.cpp
Revision: 1096
Committed: Sat Dec 30 14:40:33 2017 UTC (7 years, 9 months ago) by s10k
Content type: text/x-c++src
File size: 3941 byte(s)
Log Message:
Added zlib, quazip, basicxmlsyntaxhighlighter, conditionalsemaphore and linenumberdisplay libraries. zlib and quazip are pre-compiled, but you can compile them yourself, just delete the dll files (or equivalent binary files to your OS)

File Contents

# Content
1 /*
2 Copyright (C) 2005-2014 Sergey A. Tachenov
3
4 This file is part of QuaZIP test suite.
5
6 QuaZIP is free software: you can redistribute it and/or modify
7 it under the terms of the GNU Lesser General Public License as published by
8 the Free Software Foundation, either version 2.1 of the License, or
9 (at your option) any later version.
10
11 QuaZIP is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU Lesser General Public License for more details.
15
16 You should have received a copy of the GNU Lesser General Public License
17 along with QuaZIP. If not, see <http://www.gnu.org/licenses/>.
18
19 See COPYING file for the full LGPL text.
20
21 Original ZIP package is copyrighted by Gilles Vollant and contributors,
22 see quazip/(un)zip.h files for details. Basically it's the zlib license.
23 */
24
25 #include "testquaziodevice.h"
26 #include <quazip/quaziodevice.h>
27 #include <QBuffer>
28 #include <QByteArray>
29 #include <QtTest/QtTest>
30
31 void TestQuaZIODevice::read()
32 {
33 QByteArray buf(256, 0);
34 z_stream zouts;
35 zouts.zalloc = (alloc_func) NULL;
36 zouts.zfree = (free_func) NULL;
37 zouts.opaque = NULL;
38 deflateInit(&zouts, Z_DEFAULT_COMPRESSION);
39 zouts.next_in = reinterpret_cast<Bytef*>(const_cast<char*>("test"));
40 zouts.avail_in = 4;
41 zouts.next_out = reinterpret_cast<Bytef*>(buf.data());
42 zouts.avail_out = buf.size();
43 deflate(&zouts, Z_FINISH);
44 deflateEnd(&zouts);
45 QBuffer testBuffer(&buf);
46 testBuffer.open(QIODevice::ReadOnly);
47 QuaZIODevice testDevice(&testBuffer);
48 QVERIFY(testDevice.open(QIODevice::ReadOnly));
49 char outBuf[5];
50 QCOMPARE(testDevice.read(outBuf, 5), static_cast<qint64>(4));
51 testDevice.close();
52 QVERIFY(!testDevice.isOpen());
53 }
54
55 void TestQuaZIODevice::readMany()
56 {
57 QByteArray buf(256, 0);
58 z_stream zouts;
59 zouts.zalloc = (alloc_func) NULL;
60 zouts.zfree = (free_func) NULL;
61 zouts.opaque = NULL;
62 deflateInit(&zouts, Z_DEFAULT_COMPRESSION);
63 zouts.next_in = reinterpret_cast<Bytef*>(const_cast<char*>("testtest"));
64 zouts.avail_in = 8;
65 zouts.next_out = reinterpret_cast<Bytef*>(buf.data());
66 zouts.avail_out = buf.size();
67 deflate(&zouts, Z_FINISH);
68 deflateEnd(&zouts);
69 QBuffer testBuffer(&buf);
70 testBuffer.open(QIODevice::ReadOnly);
71 QuaZIODevice testDevice(&testBuffer);
72 QVERIFY(testDevice.open(QIODevice::ReadOnly));
73 char outBuf[4];
74 QCOMPARE(testDevice.read(outBuf, 4), static_cast<qint64>(4));
75 QVERIFY(!testDevice.atEnd());
76 QVERIFY(testDevice.bytesAvailable() > 0);
77 QCOMPARE(testDevice.read(4).size(), 4);
78 QCOMPARE(testDevice.bytesAvailable(), static_cast<qint64>(0));
79 QVERIFY(testDevice.atEnd());
80 testDevice.close();
81 QVERIFY(!testDevice.isOpen());
82 }
83
84 void TestQuaZIODevice::write()
85 {
86 QByteArray buf(256, 0);
87 QBuffer testBuffer(&buf);
88 testBuffer.open(QIODevice::WriteOnly);
89 QuaZIODevice *testDevice = new QuaZIODevice(&testBuffer);
90 QCOMPARE(testDevice->getIoDevice(), &testBuffer);
91 QVERIFY(testDevice->open(QIODevice::WriteOnly));
92 QCOMPARE(testDevice->write("test", 4), static_cast<qint64>(4));
93 testDevice->close();
94 QVERIFY(!testDevice->isOpen());
95 z_stream zins;
96 zins.zalloc = (alloc_func) NULL;
97 zins.zfree = (free_func) NULL;
98 zins.opaque = NULL;
99 inflateInit(&zins);
100 zins.next_in = reinterpret_cast<Bytef*>(buf.data());
101 zins.avail_in = testBuffer.pos();
102 char outBuf[5];
103 zins.next_out = reinterpret_cast<Bytef*>(outBuf);
104 zins.avail_out = 5;
105 inflate(&zins, Z_FINISH);
106 inflateEnd(&zins);
107 int size = 5 - zins.avail_out;
108 QCOMPARE(size, 4);
109 outBuf[4] = '\0';
110 QCOMPARE(static_cast<const char*>(outBuf), "test");
111 delete testDevice; // Test D0 destructor
112 }