Commit Graph

468 Commits

Author SHA1 Message Date
Cameron Cawley
3dd369e81f TEST: Fix compiling with MinGW 2020-11-15 21:28:27 +00:00
Vladimir Serbinenko
68a9136e4d
COMMON: Rewrite Encoder and drop dependency on iconv (#2586)
Different platforms have different levels of support of encodings and
often have slight variations. We already have tables for most encoding
with only CJK missing. Full transcoding inclusion allows us to get reliable
encoding results independently of platform. The biggest con is the need for
external tables encoding.dat.

It removes a duplicate table for korean in graphics/korfont.cpp
2020-11-15 16:20:35 +01:00
Eugene Sandulenko
c952d34410 TEST: Remove now unneeded library from dependencies 2020-10-09 23:33:38 +02:00
Eugene Sandulenko
3ba3e4e565 TEST: Fix linking 2020-10-09 21:31:15 +02:00
Paweł Kołodziejski
35b9cccbde ALL: Merge ResidualVM 2020-10-09 19:44:13 +02:00
Pawel Kolodziejski
4631c0e2ed ALL: Sync with ScummVM rev: a4002bdeee 2020-10-04 23:59:26 +02:00
Thierry Crozat
a275522f89 COMMON: Add list initialization and move semantics to Array 2020-10-03 15:51:14 +02:00
Pawel Kolodziejski
15a759370a ALL: Synced with ScummVM - rev: bdbbcd81ae 2020-09-12 19:38:50 +02:00
Vladimir Menshakov
0a4154318c COMMON: implement %c formatter (used in hardware-input.cpp)
Fix invalid descriptor name for half-axis.
Add some tests for U32String::Format.
2020-09-12 11:56:17 +01:00
Pawel Kolodziejski
d5304e2568 ALL: Synced with ScummVM - rev: 33a47d23b8 2020-09-03 02:21:14 +02:00
Vladimir Menshakov
8ddcbf8120 COMMON: Fix warnings about different signedness (uint32/char comparison), remove unused var
Add tests for both str/ustr comparison operators.
2020-09-02 20:35:43 +01:00
Vladimir Menshakov
f63f424309 COMMON: Preserve the order of insertion for equal range of the keys. 2020-08-31 18:17:29 +01:00
Pawel Kolodziejski
aea3bae26d ALL: Synced with ScummVM - rev 0b777c23a9 2020-08-11 00:59:40 +02:00
Cameron Cawley
68107af6de
TESTS: Fix the subsystem of the test runner on Windows 2020-07-26 17:07:35 +01:00
Pawel Kolodziejski
8f4e1c6cf3 Sync with ScummVM rev. 654b8208b8 2020-06-22 08:14:16 +02:00
Matthew Duggan
eeb2d2cf1f ULTIMA8: Fix unit tests 2020-06-17 18:29:47 +09:00
Pawel Kolodziejski
b586571900 ALL: synced with ScummVM commit 09bf38c120 2020-05-09 20:05:54 +02:00
Matthew Duggan
cecedb4f37 ULTIMA8: Refactor DataSources to inherit from Common::Streams 2020-04-11 17:05:40 +09:00
Matthew Duggan
4161cab9ba ULTIMA8: Update unit tests for function renames 2020-04-04 17:45:36 +09:00
Matthew Duggan
8c3ebe9af4 ULTIMA8: Correct Box.InBox boundary conditions
The boundary conditions were reversed in Box.Inbox when compared with
Box.Overlaps.  Since InBox is not being used and Overlaps is, I went with the
definitions from Overlaps. Also configured unit tests to exercise this
behavior.
2020-03-25 22:38:26 +09:00
Paul Gilbert
b5af8110ba ULTIMA8: Disable unit test for CRLF file handling 2020-03-08 10:35:57 -07:00
Matthew Duggan
c99de06915 ULTIMA8: Add unit tests for IBufferDataSource 2020-03-04 19:03:25 -08:00
Matthew Duggan
896d281ddc ULTIMA8: Free the correct pointer in ~OAutoBufferDataSource
Also add a unit test for the class to make sure the problem
is fixed.
2020-03-02 11:12:22 +02:00
Matthew Duggan
d058083888 ULTIMA8: Add some unit tests for base U8 classes 2020-02-29 16:29:33 -08:00
Bastien Bouclet
bb27669026 COMMON: Refill the stream buffer after making a large read
After reading directly from the parent stream, the buffer needs to be
filled with the end of the read data so seeking back in the stream into
the buffered area and reading returns data consistent with the parent
stream.

Fixes bug #11342 (PSP port only).
2020-02-07 18:33:56 +01:00
Jaromir Wysoglad
1346dcc3ef TESTBED: Move encoding conversion tests to testbed
This way it is possible to test the backend conversions too.
2019-08-24 18:12:45 +03:00
Jaromir Wysoglad
5fcd14fbea TEST: Remove tests for ascii transliteration
This can be handled differently by each conversion method.
The "Šáleček" could be transliterated as "Salecek" or as
"S'alecek" or maybe even differently.
2019-08-24 18:12:45 +03:00
Jaromir Wysoglad
3513972e92 TEST: Add tests for Common::Encoding 2019-08-24 18:12:45 +03:00
Bastien Bouclet
d474e3f94f ALL: Sync with ScummVM - rev. ea3f8f2e33 2019-06-29 19:08:44 +02:00
Bastien Bouclet
148655f5c2 COMMON: Use a prefix table to speed up the Huffman decoder
Symbols for codes shorter than the prefix table index width are stored
in the table. All the entries in the table with an index starting with
the code are set to the symbol value. That way, when decoding it is
possible to get the number of bits corresponding to the table width from
the bitstream and directly find the symbol value. Longer code still need
to be searched for in the codes list.
2019-04-14 20:24:26 +02:00
Bastien Bouclet
c087c5320c COMMON: Rework the BitStream class to improve its performance
* Fixed peekBits not to seek the underlying stream. Seeking can be slow
  when the stream is a file.
* Changed multi-bit  operations to work on multiple bits at once rather
  than iterating over single-bit operations.

This is an almost direct port of a patch for xoreos provided by DrMcCoy.
2019-04-14 20:22:50 +02:00
Bastien Bouclet
0f57aea2df COMMON: Use a prefix table to speed up the Huffman decoder
Symbols for codes shorter than the prefix table index width are stored
in the table. All the entries in the table with an index starting with
the code are set to the symbol value. That way, when decoding it is
possible to get the number of bits corresponding to the table width from
the bitstream and directly find the symbol value. Longer code still need
to be searched for in the codes list.
2019-04-13 16:24:25 +03:00
Bastien Bouclet
ae9eeb731f COMMON: Rework the BitStream class to improve its performance
* Fixed peekBits not to seek the underlying stream. Seeking can be slow
  when the stream is a file.
* Changed multi-bit  operations to work on multiple bits at once rather
  than iterating over single-bit operations.

This is an almost direct port of a patch for xoreos provided by DrMcCoy.
2019-04-13 16:24:25 +03:00
Thierry Crozat
563520f5c8 TESTS: Reduce error for double precision math test
If we want to properly test the computation is in double precision,
we should be using a much smaller error than the one used for the
single precision tests.
2019-04-12 01:37:59 +01:00
David Fioramonti
322af3e49a TESTS: Use relative difference for math tests
Also add double template variants and use already defined delta
assert macro.
2019-04-11 17:20:00 -07:00
David Fioramonti
cf0e9bfc1b TESTS: further reduce precision for math tests
Since the math is doing subtraction on numbers around 360 and single
precision has about ~7 decimal digits of accuracy we can only
compare numbers to 360.0001 to be safe i'll use 1e-3.
2019-04-11 16:50:07 -07:00
David Fioramonti
9b993aed00 TESTS: reduce precision for math tests
I can't reproduce any precision issues on my machine so this
is only a guess.
2019-04-11 15:59:45 -07:00
David Fioramonti
edb93c4606 TESTS: Use Less than or equal to for math tests
This should fix debian build.

Its seems the precision that debian is using is rounding the
error delta to zero so that the actual error is not less than
this.
2019-04-11 04:35:30 -07:00
David Fioramonti
07f806697d TESTS: Use M_PI for Common math tests
Instead of defining a new variable constant pi we use M_PI.
2019-04-06 20:34:08 -07:00
Jaromir Wysoglad
56397ae457 COMMON: add tests for Common::String
I added tests for firstChar, setChar, insertChar
2019-04-06 15:02:58 +03:00
Jaromir Wysoglad
bf5999044b COMMON: add test for Common::isPunct 2019-04-06 15:02:58 +03:00
Jaromir Wysoglad
b070845a31 COMMON: add 2 tests for common/math.h 2019-04-06 15:02:58 +03:00
sluicebox
85333d8050 COMMON: Allow '\#' to match '#' in matchString
matchString patterns couldn't be used to find files with the # character
as it was only treated as a digit wildcard. SCI expected that to work as
it looks for files that start with the # character.
2019-03-03 22:44:29 +02:00
Bastien Bouclet
3ec01653c3 ALL: Merge from ScummVM rev 3a933138ce 2017-12-06 21:41:03 +01:00
Colin Snover
b89b9095d6 TESTS: Remove zero-length string and associated -Wformat massage
This was being patched out downstream in Debian. A solution that
works for everybody is to just not use a zero-length string when
testing formatting with no conversion specifications.
2017-11-20 21:50:06 -06:00
Colin Snover
9f465b4062 TESTS: Remove unnecessary heap allocation 2017-11-18 16:52:15 -06:00
Colin Snover
076667dc00 COMMON: Add limited support for custom deleters to ScopedPtr
Custom deleters of ScopedPtr are not currently fully conforming to
C++11's support for custom deleters in std::unique_ptr for the
sake of simplicity of implementation. Unlike in the standard
library, plain functions and lvalue references are not supported,
nor may custom deleters be passed to the constructor at runtime.
This can be improved in the future, if necessary, by doing what
standard library implementations usually do and creating a Pair
class that uses the Empty Base Optimization idiom to avoid extra
storage overhead of the deleter instance when it is not needed, as
in typical standard library implementations, plus some additional
type traits to support the necessary metaprogramming for the
different type overloads.
2017-11-18 22:35:12 +01:00
Colin Snover
dda0f77bcf COMMON: Add basic fixed-width word wrap to Common::String 2017-11-10 09:57:41 -06:00
Colin Snover
f037d4df16 COMMON: Allow construction of Arrays of non-copyable members
Although the previous count-constructor would never make a copy of
a member at runtime, Array<T>::reserve *may* copy-construct, so
the compiler would forbid creation of arrays of NonCopyable objects
even when the array was created only once and then never resized
(and thus never actually tried to perform a copy-construction).
2017-10-06 22:10:50 -05:00
Colin Snover
4938d5cc76 COMMON: Add standard data method to Common::Array
This matches the C++11 std::vector method of the same name, and
replaces usage of taking the address of the first element of an
array by &array[0] or &array.front() or &*array.begin(). The data
method is better than these usages because it can be used even
when the array is empty.
2017-09-30 11:17:53 +02:00
Colin Snover
c867a1834f COMMON: Add standard count & count+copy array constructors
These are additions to match C++11 std::vector common init
patterns, to make Common::Array cover more common use cases where
C-style arrays are currently used (and should not be).
2017-09-30 11:17:53 +02:00
Bastien Bouclet
84e62b6c8d ALL: Sync with ScummVM - rev. 87ebc7140c 2017-09-02 15:04:07 +02:00
Willem Jan Palenstijn
0c8f95603f COMMON: Add BitStream classes for memory buffers 2017-08-24 19:46:59 +02:00
Colin Snover
58c83dcd14 COMMON: Make SpanOwner copy assignment make a copy of the owned Span
To move data from one SpanOwner to another, use `moveFrom`.
Thanks @waltervn for pointing out the problem.
2017-06-08 10:45:55 -05:00
Colin Snover
993d83fe4b COMMON: Reduce maximum Span size to 4GiB
Until C++11 (which introduces the z and t length modifiers), there
is no consistent way to print size_t and ptrdiff_t types using
printf formatting across 32-bit, LLP64, and LP64 architectures
without using a cumbersome macro to select the appropriate length
modifier for the target architecture. Since ScummVM engines
currently need to support 32-bit targets, there is no reason at
the moment to support any larger memory sizes in Span anyway.

Span error output is also updated in this commit to reflect that
index values are unsigned.
2017-03-30 14:22:56 -05:00
Colin Snover
f1d9955540 COMMON: Fix calling Span::getStringAt with non-zero index 2017-02-08 12:05:14 -06:00
Eugene Sandulenko
3bd85ef313 TESTS: Fix tests building 2017-01-23 21:58:38 +01:00
Eugene Sandulenko
37bb3abce4 TESTS: Revert changes to module Makefile
The recent changes were made in attempt to fix the test building
for NDS target, but since we're not building tests there, these
changes are reverted for the sake of cleaner code.
2017-01-23 21:34:47 +01:00
Eugene Sandulenko
4212734b1e TESTS: Fix missing QUIET_CXX option in Makefile 2017-01-23 21:11:03 +01:00
Eugene Sandulenko
595770368c TESTS: Attempt to fix Makefile for NDS build 2017-01-23 21:07:08 +01:00
Eugene Sandulenko
320ed53f31 TESTS: Fix linking target in Makefile 2017-01-23 20:52:52 +01:00
Colin Snover
9ff41967a0 BUILD: Fix PSP build of test runner 2017-01-15 18:32:07 -06:00
Colin Snover
5d22cc438f BUILD: Fix N64 build of test runner 2017-01-15 13:49:33 -06:00
Eugene Sandulenko
c46697be48 TESTS: Build Wintermute test only for static plugin 2017-01-15 18:30:13 +01:00
Colin Snover
871c9d26b2 BUILD: Fix compilation of test runner on Dreamcast
LIBS needs to go after LDFLAGS for the Dreamcast linker to run
correctly.
2017-01-15 11:17:52 -06:00
Colin Snover
4510c3ec27 TESTS: Attempt to fix buildbot builds for backends with extra flags 2017-01-14 16:45:32 -06:00
Bastien Bouclet
ce343f7168 TESTS: Fix building Common::Span test on big endian systems 2017-01-14 10:36:04 +01:00
Colin Snover
3cfc396ecd COMMON: Simplify Span code
Implicitly generated constructors can be used instead of explicit
constructors, which reduces the amount of necessary boilerplate.

Long lists of identical typedefs to the superclass are now defined
using a macro.

data() const now returns a pointer to data that matches the
value_type of the data, instead of forcing the data to be const.
This better matches the intent of the Span class, which provides
a view into data, rather than being a container that holds data.
2017-01-08 14:08:16 -06:00
Colin Snover
9c60bcf069 COMMON: Add more lcov-guided Span tests 2017-01-08 13:21:10 -06:00
Colin Snover
2558b20cdd COMMON: Improve test coverage for Span and fix bugs from testing 2017-01-08 13:20:23 -06:00
Colin Snover
640f6039ca COMMON: Add Span to common library
Span is roughly modelled on the GSL span<T> type, and is intended
to replace direct access to raw pointers -- especially pointers
that are passed to functions along with a separate size
parameter. It provides low-cost bounds-checked reads and writes,
as well as convenience functions for reading common values
(integers of varying endianness, strings, etc.). While similar to
MemoryReadStream in purpose, Span is superior in cases where
memory is writable, where memory is accessed randomly rather than
sequentially, or where any invalid access should be treated as an
unrecoverable error. It should also be more efficient than a
MemoryReadStream because it is implemented using CRTP, so there is
no runtime overhead from dynamic dispatch.

NamedSpan is an extension of Span which provides enhanced
debugging information when out-of-bounds memory accesses occur.
It allows programmers to name the memory span at construction time,
and it also tracks the offsets of subspans so that the absolute
byte offset of the original memory can be provided in the error
message if an out-of-bounds access occurs.

SpanOwner is similar to ScopedPtr but has awareness of the design
of Span objects, so allows the memory pointed to by the Span object
inside the SpanOwner to be freed when the SpanOwner is freed
without requiring holding a separate pointer to the start of
memory. It also provides some copy semantics, so unlike a ScopedPtr,
SpanOwners can be held by objects in movable containers like
Common::Array -- but note that because there are no move semantics
in C++98, this means that a new, complete memory copy of the
pointed-to data will be created, rather than just a new Span
pointing to the same block of memory, when a container holding a
SpanOwner expands.
2017-01-08 13:20:23 -06:00
Willem Jan Palenstijn
c919c9996c TESTS: Fix warnings 2017-01-05 22:07:24 +01:00
Colin Snover
9d3893459f COMMON: Add strnlen for safer C string length reads
This API is intended for use in cases where C strings come
from untrusted sources like game files, where malformed data
missing the null terminator would cause strlen to read out of
bounds.
2017-01-05 22:07:24 +01:00
Colin Snover
6687d9c1ab TEST: Only build Wintermute tests when that engine is enabled 2016-12-27 12:30:24 -06:00
Eugene Sandulenko
8477c4beb2 Merge pull request #874 from tobiatesan/fix_getfilename_cr5
WINTERMUTE: Fix PathUtils and add workaround for mixed separators
2016-12-26 16:15:38 +01:00
Tobia Tesan
72376681af WINTERMUTE: Try to "correctly" handle dir paths
I put scare quotes around "correctly" because I can't swear this is the
intended behaviour of the original interpreter.

I don't think accessing filenames that end with / in the .DCPs is even
defined behaviour, so this is a best guess.
2016-12-26 12:05:41 +01:00
Tobia Tesan
9339490236 WINTERMUTE: only access -1th char of string if length > 0 in getFileName
Fixes #6594
2016-12-26 12:02:56 +01:00
Tobia Tesan
e3fdd8d5fe WINTERMUTE: Add tests for engines/wintermute/path_utils.h 2016-12-26 10:41:48 +01:00
Pawel Kolodziejski
19bcd1f3bc ALL: Sync with ScummVM 2016-11-12 12:59:06 +01:00
Pawel Kolodziejski
9ba9c69b3f ALL: Sync with ScummVM - rev. 823c2f899b 2016-11-12 08:49:29 +01:00
Eugene Sandulenko
355c4fa646 JANITORIAL: Remove more trailing spaces 2016-10-09 15:02:02 +02:00
Eugene Sandulenko
78e240c23b TESTS: Fix warning 2016-09-05 08:24:37 +02:00
Bastien Bouclet
8d34d5190d Revert "BUILD: Fix test compilation with event recorder enabled"
This reverts commit 1f8667c5d9.
2016-07-28 18:23:50 +02:00
Eugene Sandulenko
e0d445bb74 TESTS: Fix SortedArray test 2016-06-04 13:49:55 +02:00
Eugene Sandulenko
5a8eb1c9d6 TESTS: Implement SortedArray test 2016-05-23 16:36:34 +02:00
Eugene Sandulenko
1f8667c5d9 BUILD: Fix test compilation with event recorder enabled 2016-05-23 16:36:26 +02:00
Borja Lorente Escobar
a19b50ddf2 COMMON: Add replace functions to Common and String.
COMMON: Add replacement to common/algorithm.h

COMMON: Intermediate commit to show doubts.

 COMMON: Basic String::replace() methods implemented.

COMMON: Fix typo in the algorithm.h documentation.

COMMON: Fix documentation of String::replace()

COMMON: Fix formatting issues in method signatures.

COMMON: Add assert and reformat loops in str and algorithm.

COMMON: Fix typo in comment.

COMMON: Fix style in string test cases.

COMMON: Add Doxygen documentation to algorithm and String.

COMMON: Add Doxygen documentation to algorithm and String.

COMMON: Add Doxygen documentation to algorithm.

COMMON: Fix style in algorithm comments.

COMMON: Add Doxygen comments to String.

COMMON: Add Doxygen comments to algorithm test function.

COMMON: Add String support for substring replace.

COMMON: Fix string replace to comply with STL

COMMON: Fix documentation on string replace

COMMON: Fix style in string replace

COMMON: Fix unwanted reference problem in String::replace().

COMMON: Fix indentation in comments for replace

COMMON: Fix indentation in replace

COMMON: Fix comments in String::replace to match implementation.

COMMON: Remove assert to allow for not-null-terminated character arrays

COMMON: Add new test for String::replace

COMMON: Fix broken comments on String::replace

COMMON: Fix sharing bug on ensureCapacity

COMMON: Remove superfluous call to makeUnique()
2016-05-16 22:01:21 +02:00
Colin Snover
4ba0ff8deb COMMON: Add convenience method to Common::Rational for 1:1 ratios
For SCI engine games, ratios may not be normalised and so to avoid
extra scaling, there needs to be a way to simply check whether a
ratio is 1:1.
2016-02-18 13:18:02 -06:00
Colin Snover
7d54f0aaaf COMMON: Add methods for inserting and erasing with iterators
This provides improved feature parity to Common::List and is used
in SCI32 engine.
2016-02-18 13:18:01 -06:00
Pawel Kolodziejski
6c960b1d33 ALL: Sync with ScummVM 2016-01-30 21:18:08 +01:00
Johannes Schickel
06641f29a7 COMMON: Allow '#' to only match digits in matchString. 2016-01-26 16:35:30 +01:00
Pawel Kolodziejski
2fadf2e466 ALL: Synced with ScummVM 2015-12-22 00:24:01 +01:00
Bertrand Augereau
5ad9cd1a1a COMMON: More sort unit tests 2015-11-10 20:30:51 +01:00
Pawel Kolodziejski
c5ccf4d423 ALL: synced with ScummVM 2015-01-25 19:31:35 +01:00
clone2727
79c902338b TEST: Use "/usr/bin/env python" as the shebang line in cxxtestgen.py 2015-01-18 14:41:16 -05:00
Pawel Kolodziejski
a4fc7ea3b2 ALL: synced with scummvm 2015-01-12 23:50:20 +01:00
Johannes Schickel
ba228f2bea TEST: Fix another typo in uint64 endian tests. 2015-01-04 21:22:43 +01:00
Johannes Schickel
daa8fca001 TEST: Fix uint64 endian related test code.
This does not fix the actual implementation issues which are present right
now!
2015-01-04 21:09:32 +01:00
Johannes Schickel
f1e58efe90 TEST: Fix C++11 compat warnings. 2015-01-04 21:09:32 +01:00
Eugene Sandulenko
9abd92a711 Merge pull request #508 from RichieSams/add_endian_and_stream_support_for_int64
COMMON: Add support for endian-safe reading/writing of int64
2015-01-04 19:50:33 +01:00
Pawel Kolodziejski
86876c6bbc ALL: synced with ScummVM 2014-12-21 16:09:34 +01:00
Adrian Astley
93167fabb5 TEST: Create test cases for reading uint64 from a stream 2014-12-21 04:12:43 -06:00
Bastien Bouclet
200b05246c AUDIO: Wrap around in the Timestamp constructor
The "making of" video in the Xbox version of Myst III is
unusually long. VideoDecoder::FixedRateVideoTrack::getFrameTime
would trigger an overflow.
2014-12-20 19:38:18 +01:00
Adrian Astley
a4685796ce TEST: Add unit tests for uint64 reading 2014-12-19 11:53:32 -06:00
Joseph Jezak
99fa91053c MATH: Rename XYZ Rotation Functions to Euler to better describe the function. 2014-09-11 13:38:28 -04:00
Pawel Kolodziejski
1a07a23294 ALL: synced with ScummVM 2014-08-18 05:21:52 +02:00
Johannes Schickel
bb70ea04e9 TEST: Remove odd test in rendermode tests.
This specific test checked whether the pointer for two static strings have a
different address. Since the specific strings checked had the same "value"
string pooling optimizations will result in them to have the same address and
thus make this test fail. Furthermore, the test seemed completely pointless,
I simply dropped it now.
2014-08-07 15:04:13 +02:00
Joseph Jezak
c1b5adf348 MATH: Add new quaternion capability. 2014-07-01 16:18:08 -04:00
Joseph Jezak
76d36f676b MATH: Add a selectable Euler Order to Rotation3D. 2014-06-23 09:04:25 -04:00
Pawel Kolodziejski
8759900b6a ALL: synced with ScummVM 2014-04-05 18:18:42 +02:00
Max Horn
4d02f67bd1 ALL: Resolve multiple clang warnings 2014-03-30 14:38:02 +02:00
Pawel Kolodziejski
790db038c0 ALL: sync with scummvm 2013-10-13 11:30:34 +02:00
Max Horn
bd0db73a64 BUILD: fix 'make test' compile error 2013-08-05 11:44:27 +02:00
Pawel Kolodziejski
f52da5c053 ALL: synced with scummvm 2013-07-16 22:11:39 +02:00
Tobia Tesan
d2c85e19eb TEST: Whitespaces in test/common/ 2013-07-10 13:22:57 +02:00
Tobia Tesan
e9406fad24 TEST: removed fixed hashes in test/common/hash-str.h
The hash function does not necessarily have to conform to one specific algorithm as long as equals/differs is respected.
2013-07-10 13:22:01 +02:00
Tobia Tesan
6245a68632 TEST: Thorough testing for common/hash-str.h
We test the various equal_to and hash functions therein.
2013-07-10 13:21:24 +02:00
Tobia Tesan
2e4933dcd5 TEST: reorganize test/common/util.h
Split a few test cases in two.
The resulting file is now better organized.
2013-07-10 13:17:59 +02:00
Tobia Tesan
377789db77 TEST: tests for common/rendermode.h
tests for parseRenderMode, renderMode2GUIO and getRenderModeCode.
2013-07-10 13:17:52 +02:00
Tobia Tesan
4a18eab8a5 TEST: test cases for common/util.cpp 2013-07-10 13:17:47 +02:00
Tobia Tesan
4f7d92acb4 TEST: tests for common/huffman.h
A few tests for the Huffman decoder.

The encoding is the example from Wikipedia.
This could be improved by someone more knowledgeable by
generating one at runtime or using multiple encodings
which would each contain one edge case.
2013-07-10 13:17:41 +02:00
Pawel Kolodziejski
068ff94d20 ALL: synced with ScummVM 2013-07-07 15:29:33 +02:00
richiesams
e1ff60da7a COMMON: Add erase method to String class 2013-06-20 15:40:25 -05:00
Willem Jan Palenstijn
da8eeb9dbe TESTS: Add failing test for repeated seeks in BufferedSeekableReadStream 2013-01-26 19:25:41 +01:00
Giulio Camuffo
d67ca007ca ALL: Make file executable for 'make check'. Thanks to Pino Toscano. 2012-12-21 17:55:17 +01:00
Bastien Bouclet
c5f368d115 TEST: Add missing include 2012-12-16 10:45:31 +01:00
Bastien Bouclet
0f432b9003 TEST: Add some tests for Common::BitStreamImpl 2012-12-16 10:29:58 +01:00
Johannes Schickel
6b6b7532ae TEST: Add two (simple) tests for MemoryWriteStream. 2012-10-09 23:06:35 +02:00
Pawel Kolodziejski
8e2ab87455 ALL: synced with scummvm 2012-03-25 11:41:48 +02:00
Johannes Schickel
a5f4ff36ff TEST: Add a test case for SafeSeekableSubReadStream::eos handling. 2012-03-11 01:23:57 +01:00
Johannes Schickel
22c5dadb41 TEST: Add a test case for MemoryReadStream::eos handling. 2012-03-11 01:22:39 +01:00
Pawel Kolodziejski
fae032743d ALL: synced with scummvm 2012-02-24 12:15:44 +01:00
Johannes Schickel
da96f80016 TEST: Silence some signed/unsigned comparison warnings. 2012-02-22 20:25:26 +01:00
Tarek Soliman
a4798602d7 JANITORIAL: Fix missing whitespace in pointer cast
find -name '*.h' -or -name '*.cpp' | xargs sed -r -i 's@\(([A-Za-z0-9]+)\*\)@(\1 *)@g'

This seems to have caught some params as well which is not undesirable IMO.
It also caught some strings containing this which is undesirable so I
excluded them manually. (engines/sci/engine/kernel_tables.h)
2012-02-15 10:07:10 -06:00
Tarek Soliman
edc5249772 JANITORIAL: Fix template definition whitespace 2012-02-10 21:17:27 -06:00
Pawel Kolodziejski
2c6439c16d synced with scummvm 2012-02-10 07:55:11 +01:00
Johannes Schickel
38164ba66a AUDIO: Simplify RawStream code.
This drops the (unused) ability to play based on a list of input blocks. This
was formely only used by the NDS specific VOC streaming code, which has been
removed in 9fa9f68789.
2011-11-06 14:19:17 +01:00
Johannes Schickel
a877ae2704 TEST: Extend Common::Array copy-constructor test a bit. 2011-10-09 03:30:32 +02:00
Littleboy
24579ceba9 TEST: Allow building the test runner with MinGW
It needs the same workaround as our dev tools (see bug #1800764)
2011-09-07 19:41:27 -04:00
Johannes Schickel
1e0b05ff99 TEST: Add a very tiny and simple unit test for intLog2. 2011-08-19 01:14:09 +02:00
Christoph Mallon
ab80b20a30 COMMON: Replace x + ARRAYSIZE(x) by the simpler ARRAYEND(x). 2011-08-07 15:19:08 +02:00
Christoph Mallon
23a0f5318c JANITORIAL: Remove trailing empty lines. 2011-08-07 13:53:33 +02:00
Christoph Mallon
bf580e6e6b JANITORIAL: Add missing NL at EOF. 2011-08-07 13:53:33 +02:00
Max Horn
8db8a0b3fc TEST: Remove backends hack again 2011-06-08 14:58:53 +02:00
Max Horn
afb06b51cc BACKENDS: Unify AudioCD manager instantiation 2011-06-06 15:02:33 +02:00
Max Horn
0a0258edcf COMMON: Let Common::normalizePath normalize '..' in paths
There are some unit tests to verify that this works correctly.
There is a small chance that this causes regressions in weird setups.
2011-06-03 17:33:07 +02:00
Max Horn
8e3aafd30d COMMON: Provide our own implementations for scumm_str(n)icmp
This takes up a tiny little bit of extra binary size, but gets
rid of some awful #ifdef hackery.
2011-05-23 19:12:25 +02:00
Max Horn
88319a727a COMMON: Fix inserting an array into itself under certain conditions 2011-05-16 15:23:17 +02:00
Max Horn
a564a10e7f TEST: Explicitly disable exceptions and std lib usage 2011-05-16 15:23:17 +02:00
Max Horn
65fc72e30a COMMON: Add some testcases for common/endian.h 2011-04-12 17:23:32 +02:00
dhewg
2def212de7 ALL: s/PI/M_PI/
Tip of the day: git grep -w PI
2011-03-19 11:24:06 +01:00
Max Horn
42ab839dd6 AUDIO: Rename sound/ dir to audio/
svn-id: r55850
2011-02-09 01:09:01 +00:00
Max Horn
97bfd60e61 COMMON: Reduce overflow risk in Common::Rational += and -= operators
svn-id: r55839
2011-02-09 00:12:02 +00:00
Johannes Schickel
867c0d9645 COMMON: Add an erase method which takes an iterator to HashMap.
Currently there is no iterator returned from this method, to have some
similarity to associative containers of the STL.

I also "added" one unit test for this method, which is basically just
a copy of the HashMap::erase(const Key &) test with the required adaptions.

svn-id: r55661
2011-01-30 17:28:35 +00:00
Max Horn
a35a45aa2e Patch #3149416: Support for linking with "as-needed"
svn-id: r55588
2011-01-28 10:27:50 +00:00
Max Horn
5d791cb090 TEST: Add/extend MemoryReadStream(Endian) test cases
svn-id: r54440
2010-11-23 22:27:00 +00:00
Johannes Schickel
199a1c7619 TEST: Make cxxtest work with Python 3.1 too.
svn-id: r54387
2010-11-19 18:19:34 +00:00
Max Horn
2180b2d6b5 COMMON: Split common/stream.h into several headers
svn-id: r54385
2010-11-19 17:03:07 +00:00
Max Horn
152e52d015 COMMON: Make implementation of Buffered*Stream classes internal
svn-id: r54326
2010-11-18 17:02:51 +00:00
Max Horn
4d3a07b494 COMMON: Rename and tweak MD5 functions
* names now comply to our naming conventions
* the function computeStreamMD5AsString which computes the MD5
  as a hex string now returns it as a Common::String
* add doxygen comments

svn-id: r54121
2010-11-07 17:16:59 +00:00
Max Horn
f83bfc0bbf TEST: Tweak "make test" build rules to ignore -Wglobal-constructors
On my OS X machine, -Wglobal-constructors is always added by configure.
But the test runner makes heavy use of global constructors.
This change allows me to run "make test" even when using -Werror.

svn-id: r54083
2010-11-05 01:20:53 +00:00
Max Horn
e27b05ef35 COMMON: Rename String::printf() to String::format()
This is a first step towards getting rid of all uses of regular printf,
fprintf, vprintf, vfprintf, puts, fputs, etc. in our codebase.

The name format() reflects the purpose of the function, and parallels
String.format() in Java, boost::format, and others.

svn-id: r54004
2010-11-01 16:02:28 +00:00
Max Horn
b1b41da650 TEST: Use TS_ASSERT_EQUALS instead of TS_ASSERT + operator==
svn-id: r53121
2010-10-10 14:40:45 +00:00
Willem Jan Palenstijn
f98536eef5 SCI: Allow multiple word groups in parser
In SCI01 and up, each typed word may be interpreted as multiple
class,group pairs. This patch adds support to the vocabulary and
parser. It uses the matcher support added in r52985.

This fixes parser issues in German LSL3, but needs testing.

svn-id: r52989
2010-10-03 10:49:42 +00:00
Max Horn
6bc9340df5 COMMON: Add unit tests for recently fixed Common::Rational bugs
Specifically, the bugs in operators - and / for mixed Rational/int args,
fixed in rev #52675, are tested for.

svn-id: r52680
2010-09-12 07:24:57 +00:00
Willem Jan Palenstijn
532663c742 COMMON: Fix edge case for wildcard in matchString
svn-id: r52618
2010-09-07 11:40:44 +00:00
Willem Jan Palenstijn
0e80aa7088 TESTS: Add more Rational (in)equality tests
This tests for the bug fixed by r52535, among other things.

svn-id: r52617
2010-09-07 09:19:25 +00:00
Willem Jan Palenstijn
8cd0cfe5eb COMMON: Add test for BufferedReadStream's eos
This test is currently failing.

svn-id: r52382
2010-08-25 11:46:50 +00:00
Johannes Schickel
7b51537be2 Common: Fix bug in lastPathComponent.
Prior to this change lastPathComponent would not create a correct result,
when the input of lastPathComponent did not contain a single separator.

I also added a test case for this in our unit tests.

svn-id: r52123
2010-08-16 16:01:31 +00:00
Johannes Schickel
e5e94d4511 Strip trailing whitespaces in our common code base.
svn-id: r51094
2010-07-21 18:17:51 +00:00
Johannes Schickel
ff3f0f5d65 Split test cases for internal and external storage.
svn-id: r49325
2010-05-30 13:42:04 +00:00
Johannes Schickel
0e9156c7c4 Add a (currently) failing test for reference logic in Common::String. (Taken from an example by fuzzie)
svn-id: r49322
2010-05-30 13:10:23 +00:00
Max Horn
c56a481f88 Use TS_ASSERT_EQUALS in test cases
svn-id: r49065
2010-05-17 22:08:19 +00:00
Max Horn
00cd966f3d Some tweaks and fixes for Common::Rational
* Fix Common::gcd to work with negative input
* This fixes a bug in Common::Rational's multiplication code
* Add some more basic unit tests (including one which checks for
  the now fixed multiplication bug)
* cleanup

svn-id: r49064
2010-05-17 22:07:58 +00:00
Matthew Hoops
ea84abf588 Add tests for Common::Rational from patch #2963496 (VideoDecoder Rewrite), also courtesy of DrMcCoy who wrote the main Common::Rational class too
svn-id: r49062
2010-05-17 20:57:36 +00:00
Johannes Schickel
d4e74e62a1 Typo.
svn-id: r48956
2010-05-05 17:54:34 +00:00
Johannes Schickel
388e4b65bf Add a custom implementation of OpenBSD's strlcat and strlcpy.
This includes both an implementation and some basic unit tests for
the above mentioned functions.

svn-id: r48953
2010-05-05 17:52:59 +00:00
Ori Avtalion
024d44f3e3 Remove semicolon
svn-id: r48647
2010-04-12 21:30:47 +00:00
Max Horn
726500a2f3 Slightly tweak Common::StringTokenizer tests, cleanup
svn-id: r48614
2010-04-10 23:13:18 +00:00
Max Horn
fcee4f2ad7 Part of patch #2982224: "GSoC: Added unit test and unified error message display"
svn-id: r48613
2010-04-10 23:12:22 +00:00
Max Horn
dd7891cdad Add simple testcase for ScopedPtr and SharedPtr
The new test verifies that a given object is indeed deleted after
the smart pointer leaves scope.

svn-id: r48358
2010-03-22 20:26:57 +00:00
Max Horn
c934642bdb COMMON: Move typedef StringList from str.h to new header str-array.h
This removes the dependency on array.h from str.h.
Also, begun migration from the confusing type name "StringList" to
the more appropriate StringArray.

svn-id: r48282
2010-03-18 15:09:24 +00:00
Johannes Schickel
fa2a1cd22d Add some additional tests for SubLoopingAudioStream and LoopingAudioStream. (Currently SubLoopingAudioStream tests fail for a reason unknown to me...)
svn-id: r48019
2010-02-09 21:52:08 +00:00
Johannes Schickel
d349be1fb8 Add unit test for SubLoopingAudioStream. (Currently they fail though :-/)
svn-id: r48017
2010-02-09 21:51:28 +00:00
Johannes Schickel
a4f46767d9 Add test cases for RawStream playing from a stream via a block list.
svn-id: r48014
2010-02-09 15:23:03 +00:00
Johannes Schickel
4e86741d9a Make the "seek after the end of the stream" test case a bit "harder".
svn-id: r48008
2010-02-08 21:25:10 +00:00
Johannes Schickel
cf1b03f694 Add test case for partial reads in LoopingAudioStream too.
svn-id: r47938
2010-02-06 18:25:57 +00:00
Johannes Schickel
75b2b13f7f Some slight extension for the LoopingAudioStream unit test(s).
svn-id: r47937
2010-02-06 18:20:33 +00:00
Johannes Schickel
e3d4d5e379 Add (currently failing :-/) unit tests for LoopingAudioStream.
svn-id: r47934
2010-02-06 16:41:53 +00:00
Johannes Schickel
4fca64d1b0 Move test AudioStream creation to a new file.
svn-id: r47933
2010-02-06 16:41:27 +00:00
Johannes Schickel
87534da624 Remove code duplication.
svn-id: r47863
2010-02-03 17:03:46 +00:00
Johannes Schickel
5030ba3596 Add tests for RawStream's seek implementation.
svn-id: r47862
2010-02-03 16:57:46 +00:00
Johannes Schickel
9da2b4eac2 Add tests for stereo mode of RawStream.
svn-id: r47861
2010-02-03 16:02:25 +00:00
Johannes Schickel
8fcaa28a7f Test various sample rates with RawStream's getLength implementation (just in case...).
svn-id: r47860
2010-02-03 16:02:04 +00:00
Johannes Schickel
2cb82808eb Add unit test for RawStream::getLength.
svn-id: r47858
2010-02-03 15:45:29 +00:00
Johannes Schickel
e9f831c1da Some additional tests of RawStream::readBuffer.
svn-id: r47857
2010-02-03 15:45:08 +00:00
Johannes Schickel
274f6e5033 Add test for rewind functionality of RawStream.
svn-id: r47856
2010-02-03 15:44:43 +00:00
Johannes Schickel
6b2e9be345 Add tests for unsigned sample data for RawStream.
svn-id: r47855
2010-02-03 15:25:06 +00:00
Johannes Schickel
a5e4741775 Less noisy output in case something goes wrong.
svn-id: r47854
2010-02-03 15:24:44 +00:00
Johannes Schickel
c0f5a5d2d9 Test both BE and LE 16bit samples.
svn-id: r47853
2010-02-03 15:24:24 +00:00