convert all tests to use epicsUnitTest
This commit is contained in:
@@ -14,115 +14,115 @@
|
||||
#include <fstream>
|
||||
#include <cstring>
|
||||
|
||||
#include <epicsAssert.h>
|
||||
#include <epicsEndian.h>
|
||||
#include <epicsUnitTest.h>
|
||||
#include <testMain.h>
|
||||
|
||||
#include <pv/byteBuffer.h>
|
||||
#include <pv/pvIntrospect.h>
|
||||
|
||||
using namespace epics::pvData;
|
||||
using std::cout;
|
||||
|
||||
void testBasicOperations(std::ostream& ofile) {
|
||||
ofile<<"Basic operation tests...\n";
|
||||
void testBasicOperations() {
|
||||
|
||||
ByteBuffer* buff = new ByteBuffer(32);
|
||||
assert(buff->getSize()==32);
|
||||
// assert(buff->getByteOrder()==EPICS_BYTE_ORDER);
|
||||
assert(buff->getPosition()==0);
|
||||
assert(buff->getLimit()==32);
|
||||
assert(buff->getRemaining()==32);
|
||||
testOk1(buff->getSize()==32);
|
||||
// testOk1(buff->getByteOrder()==EPICS_BYTE_ORDER);
|
||||
testOk1(buff->getPosition()==0);
|
||||
testOk1(buff->getLimit()==32);
|
||||
testOk1(buff->getRemaining()==32);
|
||||
|
||||
buff->putBoolean(true);
|
||||
assert(buff->getPosition()==1);
|
||||
assert(buff->getRemaining()==31);
|
||||
testOk1(buff->getPosition()==1);
|
||||
testOk1(buff->getRemaining()==31);
|
||||
|
||||
buff->putByte(-12);
|
||||
assert(buff->getPosition()==2);
|
||||
assert(buff->getRemaining()==30);
|
||||
testOk1(buff->getPosition()==2);
|
||||
testOk1(buff->getRemaining()==30);
|
||||
|
||||
buff->putShort(10516);
|
||||
assert(buff->getPosition()==4);
|
||||
assert(buff->getRemaining()==28);
|
||||
testOk1(buff->getPosition()==4);
|
||||
testOk1(buff->getRemaining()==28);
|
||||
|
||||
buff->putInt(0x1937628B);
|
||||
assert(buff->getPosition()==8);
|
||||
assert(buff->getRemaining()==24);
|
||||
testOk1(buff->getPosition()==8);
|
||||
testOk1(buff->getRemaining()==24);
|
||||
|
||||
buff->putLong(2345678123LL);
|
||||
assert(buff->getPosition()==16);
|
||||
assert(buff->getRemaining()==16);
|
||||
testOk1(buff->getPosition()==16);
|
||||
testOk1(buff->getRemaining()==16);
|
||||
|
||||
float testFloat = 34.67;
|
||||
buff->putFloat(testFloat);
|
||||
assert(buff->getPosition()==20);
|
||||
assert(buff->getRemaining()==12);
|
||||
testOk1(buff->getPosition()==20);
|
||||
testOk1(buff->getRemaining()==12);
|
||||
|
||||
double testDouble = -512.23974;
|
||||
buff->putDouble(testDouble);
|
||||
assert(buff->getPosition()==28);
|
||||
assert(buff->getRemaining()==4);
|
||||
testOk1(buff->getPosition()==28);
|
||||
testOk1(buff->getRemaining()==4);
|
||||
|
||||
// testing direct reads
|
||||
assert(buff->getBoolean(0)==true);
|
||||
assert(buff->getByte(1)==-12);
|
||||
assert(buff->getShort(2)==10516);
|
||||
assert(buff->getInt(4)==0x1937628B);
|
||||
assert(buff->getLong(8)==2345678123LL);
|
||||
assert(buff->getFloat(16)==testFloat);
|
||||
assert(buff->getDouble(20)==testDouble);
|
||||
testOk1(buff->getBoolean(0)==true);
|
||||
testOk1(buff->getByte(1)==-12);
|
||||
testOk1(buff->getShort(2)==10516);
|
||||
testOk1(buff->getInt(4)==0x1937628B);
|
||||
testOk1(buff->getLong(8)==2345678123LL);
|
||||
testOk1(buff->getFloat(16)==testFloat);
|
||||
testOk1(buff->getDouble(20)==testDouble);
|
||||
/*
|
||||
std::size_t sp = buff->getPosition();
|
||||
buff->setPosition(0);
|
||||
assert(buff->getBoolean()==true);
|
||||
assert(buff->getByte()==-12);
|
||||
assert(buff->getShort()==10516);
|
||||
assert(buff->getInt()==0x1937628B);
|
||||
assert(buff->getLong()==2345678123LL);
|
||||
assert(buff->getFloat()==testFloat);
|
||||
assert(buff->getDouble()==testDouble);
|
||||
testOk1(buff->getBoolean()==true);
|
||||
testOk1(buff->getByte()==-12);
|
||||
testOk1(buff->getShort()==10516);
|
||||
testOk1(buff->getInt()==0x1937628B);
|
||||
testOk1(buff->getLong()==2345678123LL);
|
||||
testOk1(buff->getFloat()==testFloat);
|
||||
testOk1(buff->getDouble()==testDouble);
|
||||
buff->setPosition(sp);
|
||||
*/
|
||||
|
||||
buff->flip();
|
||||
assert(buff->getLimit()==28);
|
||||
assert(buff->getPosition()==0);
|
||||
assert(buff->getRemaining()==28);
|
||||
testOk1(buff->getLimit()==28);
|
||||
testOk1(buff->getPosition()==0);
|
||||
testOk1(buff->getRemaining()==28);
|
||||
|
||||
assert(buff->getBoolean()==true);
|
||||
assert(buff->getPosition()==1);
|
||||
testOk1(buff->getBoolean()==true);
|
||||
testOk1(buff->getPosition()==1);
|
||||
|
||||
assert(buff->getByte()==-12);
|
||||
assert(buff->getPosition()==2);
|
||||
testOk1(buff->getByte()==-12);
|
||||
testOk1(buff->getPosition()==2);
|
||||
|
||||
assert(buff->getShort()==10516);
|
||||
assert(buff->getPosition()==4);
|
||||
testOk1(buff->getShort()==10516);
|
||||
testOk1(buff->getPosition()==4);
|
||||
|
||||
assert(buff->getInt()==0x1937628B);
|
||||
assert(buff->getPosition()==8);
|
||||
testOk1(buff->getInt()==0x1937628B);
|
||||
testOk1(buff->getPosition()==8);
|
||||
|
||||
assert(buff->getLong()==2345678123LL);
|
||||
assert(buff->getPosition()==16);
|
||||
testOk1(buff->getLong()==2345678123LL);
|
||||
testOk1(buff->getPosition()==16);
|
||||
|
||||
assert(buff->getFloat()==testFloat);
|
||||
assert(buff->getPosition()==20);
|
||||
testOk1(buff->getFloat()==testFloat);
|
||||
testOk1(buff->getPosition()==20);
|
||||
|
||||
assert(buff->getDouble()==testDouble);
|
||||
assert(buff->getPosition()==28);
|
||||
testOk1(buff->getDouble()==testDouble);
|
||||
testOk1(buff->getPosition()==28);
|
||||
|
||||
buff->clear();
|
||||
assert(buff->getPosition()==0);
|
||||
assert(buff->getLimit()==32);
|
||||
assert(buff->getRemaining()==32);
|
||||
testOk1(buff->getPosition()==0);
|
||||
testOk1(buff->getLimit()==32);
|
||||
testOk1(buff->getRemaining()==32);
|
||||
|
||||
buff->setPosition(4);
|
||||
assert(buff->getPosition()==4);
|
||||
assert(buff->getLimit()==32);
|
||||
assert(buff->getRemaining()==(32-4));
|
||||
testOk1(buff->getPosition()==4);
|
||||
testOk1(buff->getLimit()==32);
|
||||
testOk1(buff->getRemaining()==(32-4));
|
||||
|
||||
buff->setPosition(13);
|
||||
assert(buff->getPosition()==13);
|
||||
assert(buff->getLimit()==32);
|
||||
assert(buff->getRemaining()==(32-13));
|
||||
testOk1(buff->getPosition()==13);
|
||||
testOk1(buff->getLimit()==32);
|
||||
testOk1(buff->getRemaining()==(32-13));
|
||||
|
||||
// testing absolute puts
|
||||
buff->clear();
|
||||
@@ -148,35 +148,35 @@ void testBasicOperations(std::ostream& ofile) {
|
||||
buff->setPosition(sp);
|
||||
*/
|
||||
buff->flip();
|
||||
assert(buff->getLimit()==28);
|
||||
assert(buff->getPosition()==0);
|
||||
assert(buff->getRemaining()==28);
|
||||
testOk1(buff->getLimit()==28);
|
||||
testOk1(buff->getPosition()==0);
|
||||
testOk1(buff->getRemaining()==28);
|
||||
|
||||
assert(buff->getBoolean()==true);
|
||||
assert(buff->getPosition()==1);
|
||||
testOk1(buff->getBoolean()==true);
|
||||
testOk1(buff->getPosition()==1);
|
||||
|
||||
assert(buff->getByte()==-12);
|
||||
assert(buff->getPosition()==2);
|
||||
testOk1(buff->getByte()==-12);
|
||||
testOk1(buff->getPosition()==2);
|
||||
|
||||
assert(buff->getShort()==10516);
|
||||
assert(buff->getPosition()==4);
|
||||
testOk1(buff->getShort()==10516);
|
||||
testOk1(buff->getPosition()==4);
|
||||
|
||||
assert(buff->getInt()==0x1937628B);
|
||||
assert(buff->getPosition()==8);
|
||||
testOk1(buff->getInt()==0x1937628B);
|
||||
testOk1(buff->getPosition()==8);
|
||||
|
||||
assert(buff->getLong()==2345678123LL);
|
||||
assert(buff->getPosition()==16);
|
||||
testOk1(buff->getLong()==2345678123LL);
|
||||
testOk1(buff->getPosition()==16);
|
||||
|
||||
assert(buff->getFloat()==testFloat);
|
||||
assert(buff->getPosition()==20);
|
||||
testOk1(buff->getFloat()==testFloat);
|
||||
testOk1(buff->getPosition()==20);
|
||||
|
||||
assert(buff->getDouble()==testDouble);
|
||||
assert(buff->getPosition()==28);
|
||||
testOk1(buff->getDouble()==testDouble);
|
||||
testOk1(buff->getPosition()==28);
|
||||
|
||||
buff->clear();
|
||||
assert(buff->getPosition()==0);
|
||||
assert(buff->getLimit()==32);
|
||||
assert(buff->getRemaining()==32);
|
||||
testOk1(buff->getPosition()==0);
|
||||
testOk1(buff->getLimit()==32);
|
||||
testOk1(buff->getRemaining()==32);
|
||||
|
||||
char src[] = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
|
||||
'm' };
|
||||
@@ -184,28 +184,26 @@ void testBasicOperations(std::ostream& ofile) {
|
||||
' ' };
|
||||
|
||||
buff->put(src, 2, 6);
|
||||
assert(buff->getPosition()==6);
|
||||
assert(strncmp(buff->getArray(),&src[2],6)==0);
|
||||
testOk1(buff->getPosition()==6);
|
||||
testOk1(strncmp(buff->getArray(),&src[2],6)==0);
|
||||
|
||||
buff->flip();
|
||||
assert(buff->getLimit()==6);
|
||||
assert(buff->getPosition()==0);
|
||||
assert(buff->getRemaining()==6);
|
||||
testOk1(buff->getLimit()==6);
|
||||
testOk1(buff->getPosition()==0);
|
||||
testOk1(buff->getRemaining()==6);
|
||||
|
||||
buff->get(dst, 2, 6);
|
||||
assert(buff->getLimit()==6);
|
||||
assert(buff->getPosition()==6);
|
||||
assert(strncmp(&src[2],&dst[2],6)==0);
|
||||
testOk1(buff->getLimit()==6);
|
||||
testOk1(buff->getPosition()==6);
|
||||
testOk1(strncmp(&src[2],&dst[2],6)==0);
|
||||
|
||||
ofile<<" First 10 characters of destination: >>"<<String(dst, 10)<<"<<\n";
|
||||
cout<<" First 10 characters of destination: >>"<<String(dst, 10)<<"<<\n";
|
||||
|
||||
delete buff;
|
||||
|
||||
ofile<<"!!! PASSED\n";
|
||||
}
|
||||
|
||||
void testInverseEndianness(std::ostream& ofile) {
|
||||
ofile<<"Testing inverse endianness...\n";
|
||||
void testInverseEndianness() {
|
||||
|
||||
#if EPICS_BYTE_ORDER==EPICS_ENDIAN_BIG
|
||||
ByteBuffer* buff = new ByteBuffer(32,EPICS_ENDIAN_LITTLE);
|
||||
@@ -220,30 +218,21 @@ void testInverseEndianness(std::ostream& ofile) {
|
||||
buff->putShort(0x0102);
|
||||
buff->putInt(0x0A0B0C0D);
|
||||
|
||||
assert(strncmp(buff->getArray(),refBuffer,6)==0);
|
||||
testOk1(strncmp(buff->getArray(),refBuffer,6)==0);
|
||||
|
||||
buff->flip();
|
||||
|
||||
assert(buff->getShort()==0x0102);
|
||||
assert(buff->getInt()==0x0A0B0C0D);
|
||||
testOk1(buff->getShort()==0x0102);
|
||||
testOk1(buff->getInt()==0x0A0B0C0D);
|
||||
|
||||
delete buff;
|
||||
ofile<<"!!! PASSED\n";
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
std::ofstream outfile;
|
||||
std::ostream *out=NULL;
|
||||
if(argc>1) {
|
||||
outfile.open(argv[1]);
|
||||
if(outfile.is_open()){
|
||||
out=&outfile;
|
||||
}else{
|
||||
fprintf(stderr, "Failed to open test output file\n");
|
||||
}
|
||||
}
|
||||
if(!out) out=&std::cout;
|
||||
testBasicOperations(*out);
|
||||
testInverseEndianness(*out);
|
||||
return (0);
|
||||
MAIN(testByteBuffer)
|
||||
{
|
||||
testPlan(82);
|
||||
testDiag("Tests byteBuffer");
|
||||
testBasicOperations();
|
||||
testInverseEndianness();
|
||||
return testDone();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user