forked from mirror/openmw-tes3mp
Added tools/tests/
This commit is contained in:
parent
f526cc640b
commit
abde68fed6
8 changed files with 97 additions and 2 deletions
|
@ -33,9 +33,20 @@ struct SliceArray
|
||||||
const T* ptr;
|
const T* ptr;
|
||||||
size_t length;
|
size_t length;
|
||||||
|
|
||||||
|
/// Initialize to zero length
|
||||||
|
SliceArray() : ptr(0), length(0) {}
|
||||||
|
|
||||||
|
/// Initialize from pointer + length
|
||||||
SliceArray(const T* _ptr, size_t _length)
|
SliceArray(const T* _ptr, size_t _length)
|
||||||
: ptr(_ptr), length(_length) {}
|
: ptr(_ptr), length(_length) {}
|
||||||
|
|
||||||
|
/// Initialize from null-terminated string
|
||||||
|
SliceArray(const char* str)
|
||||||
|
{
|
||||||
|
ptr = str;
|
||||||
|
length = strlen(str);
|
||||||
|
}
|
||||||
|
|
||||||
bool operator==(SliceArray &t)
|
bool operator==(SliceArray &t)
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
|
@ -52,8 +63,7 @@ struct SliceArray
|
||||||
}
|
}
|
||||||
|
|
||||||
/** This allocates a copy of the data. Only use this for debugging
|
/** This allocates a copy of the data. Only use this for debugging
|
||||||
and error messages.
|
and error messages. */
|
||||||
*/
|
|
||||||
std::string toString()
|
std::string toString()
|
||||||
{ return std::string(ptr,length); }
|
{ return std::string(ptr,length); }
|
||||||
};
|
};
|
||||||
|
|
1
tools/tests/.gitignore
vendored
Normal file
1
tools/tests/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
*_test
|
12
tools/tests/Makefile
Normal file
12
tools/tests/Makefile
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
GCC=g++
|
||||||
|
|
||||||
|
all: strops_test slice_test
|
||||||
|
|
||||||
|
slice_test: slice_test.cpp ../slice_array.h
|
||||||
|
$(GCC) $< -o $@
|
||||||
|
|
||||||
|
strops_test: strops_test.cpp ../stringops.h ../stringops.cpp
|
||||||
|
$(GCC) $< -o $@ ../stringops.cpp
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm *_test
|
6
tools/tests/output/slice_test.out
Normal file
6
tools/tests/output/slice_test.out
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
hello, len=5
|
||||||
|
001
|
||||||
|
hell, len=4
|
||||||
|
010
|
||||||
|
01
|
||||||
|
4 3
|
0
tools/tests/output/strops_test.out
Normal file
0
tools/tests/output/strops_test.out
Normal file
30
tools/tests/slice_test.cpp
Normal file
30
tools/tests/slice_test.cpp
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
|
#include "../slice_array.h"
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
SString s, t;
|
||||||
|
s = SString("hello");
|
||||||
|
cout << s.toString() << ", len=" << s.length << endl;
|
||||||
|
cout << (s=="hel") << (s=="hell") << (s=="hello") << endl;
|
||||||
|
t = s;
|
||||||
|
|
||||||
|
s = SString("othello"+2, 4);
|
||||||
|
cout << s.toString() << ", len=" << s.length << endl;
|
||||||
|
cout << (s=="hel") << (s=="hell") << (s=="hello") << endl;
|
||||||
|
|
||||||
|
cout << (s==t) << (SString("hello")==t) << endl;
|
||||||
|
|
||||||
|
const int arr[4] = {1,2,3,4};
|
||||||
|
|
||||||
|
IntArray ia(arr,4);
|
||||||
|
|
||||||
|
cout << ia.length << " " << ia.ptr[2] << endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
18
tools/tests/strops_test.cpp
Normal file
18
tools/tests/strops_test.cpp
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
|
#include "../stringops.h"
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
assert(begins("abc", "a"));
|
||||||
|
assert(begins("abc", "ab"));
|
||||||
|
assert(begins("abc", "abc"));
|
||||||
|
assert(begins("abcd", "abc"));
|
||||||
|
|
||||||
|
assert(!begins("abc", "b"));
|
||||||
|
assert(!begins("abc", "bc"));
|
||||||
|
assert(!begins("abc", "bcd"));
|
||||||
|
assert(!begins("abc", "abcd"));
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
18
tools/tests/test.sh
Executable file
18
tools/tests/test.sh
Executable file
|
@ -0,0 +1,18 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
make || exit
|
||||||
|
|
||||||
|
mkdir -p output
|
||||||
|
|
||||||
|
PROGS=*_test
|
||||||
|
|
||||||
|
for a in $PROGS; do
|
||||||
|
if [ -f "output/$a.out" ]; then
|
||||||
|
echo "Running $a:"
|
||||||
|
$a | diff output/$a.out -
|
||||||
|
else
|
||||||
|
echo "Creating $a.out"
|
||||||
|
$a > "output/$a.out"
|
||||||
|
git add "output/$a.out"
|
||||||
|
fi
|
||||||
|
done
|
Loading…
Reference in a new issue