make tests more like regresion tests
This commit is contained in:
@@ -54,24 +54,26 @@ static void testBasic(FILE * fd,FILE *auxfd ) {
|
||||
result = queue->put(messages[3],infoMessage,true);
|
||||
assert(result==true);
|
||||
messageNode = queue->get();
|
||||
assert(messageNode.get()!=0);
|
||||
assert(messageNode.get()!=NULL);
|
||||
fprintf(fd,"message %s messageType %s\n",
|
||||
messageNode->getMessage().c_str(),
|
||||
getMessageTypeName(messageNode->getMessageType()).c_str());
|
||||
assert(messageNode->getMessage().compare(messages[0])==0);
|
||||
queue->release();
|
||||
messageNode = queue->get();
|
||||
assert(messageNode.get()!=0);
|
||||
assert(messageNode.get()!=NULL);
|
||||
assert(messageNode->getMessage().compare(messages[1])==0);
|
||||
queue->release();
|
||||
messageNode = queue->get();
|
||||
assert(messageNode.get()!=0);
|
||||
assert(messageNode.get()!=NULL);
|
||||
fprintf(fd,"message %s messageType %s\n",
|
||||
messageNode->getMessage().c_str(),
|
||||
getMessageTypeName(messageNode->getMessageType()).c_str());
|
||||
assert(messageNode->getMessage().compare(messages[3])==0);
|
||||
queue->release();
|
||||
result = queue->isEmpty();
|
||||
assert(result);
|
||||
fprintf(fd,"PASSED\n");
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
@@ -152,6 +152,7 @@ static void testBasic(FILE * fd,FILE *auxfd ) {
|
||||
sink->look();
|
||||
}
|
||||
sink->stop();
|
||||
fprintf(fd,"PASSED\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -53,6 +53,7 @@ static void testThreadRun(FILE *fd) {
|
||||
ax.end.signal();
|
||||
}
|
||||
fprintf(fd, "Action is %s\n", ax.actuallyRan?"true":"false");
|
||||
fprintf(fd,"testThreadRun PASSED\n");
|
||||
}
|
||||
|
||||
class Basic :
|
||||
@@ -101,6 +102,7 @@ static void testBasic(FILE *fd) {
|
||||
ExecutorPtr executor( new Executor(String("basic"),middlePriority));
|
||||
BasicPtr basic( new Basic(executor));
|
||||
basic->run();
|
||||
fprintf(fd,"testBasic PASSED\n");
|
||||
}
|
||||
|
||||
class MyFunc : public TimeFunctionRequester {
|
||||
@@ -131,6 +133,7 @@ static void testThreadContext(FILE *fd,FILE *auxFd) {
|
||||
double perCall = timeFunction->timeCall();
|
||||
perCall *= 1e6;
|
||||
fprintf(auxFd,"time per call %f microseconds\n",perCall);
|
||||
fprintf(fd,"testThreadContext PASSED\n");
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
|
||||
using namespace epics::pvData;
|
||||
|
||||
static bool debug = false;
|
||||
|
||||
void testTimeStamp(FILE *fd,FILE *auxfd)
|
||||
{
|
||||
assert(nanoSecPerSec==1000000000);
|
||||
@@ -39,7 +41,7 @@ void testTimeStamp(FILE *fd,FILE *auxfd)
|
||||
struct tm ctm;
|
||||
memcpy(&ctm,localtime(&tt),sizeof(struct tm));
|
||||
fprintf(auxfd,
|
||||
"%4.4d.%2.2d.%2.2d %2.2d:%2.2d:%2.2d %d nanoSeconds isDst %s\n",
|
||||
"%4.4d.%2.2d.%2.2d %2.2d:%2.2d:%2.2d %d isDst %s\n",
|
||||
ctm.tm_year+1900,ctm.tm_mon + 1,ctm.tm_mday,
|
||||
ctm.tm_hour,ctm.tm_min,ctm.tm_sec,
|
||||
current.getNanoSeconds(),
|
||||
@@ -53,7 +55,7 @@ void testTimeStamp(FILE *fd,FILE *auxfd)
|
||||
current.toTime_t(tt);
|
||||
memcpy(&ctm,localtime(&tt),sizeof(struct tm));
|
||||
fprintf(auxfd,
|
||||
"%4.4d.%2.2d.%2.2d %2.2d:%2.2d:%2.2d %d nanoSeconds isDst %s\n",
|
||||
"%4.4d.%2.2d.%2.2d %2.2d:%2.2d:%2.2d %d isDst %s\n",
|
||||
ctm.tm_year+1900,ctm.tm_mon + 1,ctm.tm_mday,
|
||||
ctm.tm_hour,ctm.tm_min,ctm.tm_sec,
|
||||
current.getNanoSeconds(),
|
||||
@@ -64,7 +66,7 @@ void testTimeStamp(FILE *fd,FILE *auxfd)
|
||||
left.put(current.getSecondsPastEpoch(),current.getNanoSeconds());
|
||||
double diff;
|
||||
diff = TimeStamp::diff(left,right);
|
||||
fprintf(fd,"diff %e\n",diff);
|
||||
if(debug) fprintf(fd,"diff %e\n",diff);
|
||||
assert(diff==0.0);
|
||||
assert((left==right));
|
||||
assert(!(left!=right));
|
||||
@@ -74,7 +76,8 @@ void testTimeStamp(FILE *fd,FILE *auxfd)
|
||||
assert(!(left>right));
|
||||
left.put(current.getSecondsPastEpoch()+1,current.getNanoSeconds());
|
||||
diff = TimeStamp::diff(left,right);
|
||||
fprintf(fd,"diff %e\n",diff);
|
||||
if(debug) fprintf(fd,"diff %e\n",diff);
|
||||
assert(diff==1.0);
|
||||
assert(!(left==right));
|
||||
assert((left!=right));
|
||||
assert(!(left<=right));
|
||||
@@ -83,7 +86,7 @@ void testTimeStamp(FILE *fd,FILE *auxfd)
|
||||
assert((left>right));
|
||||
left.put(current.getSecondsPastEpoch()-1,current.getNanoSeconds());
|
||||
diff = TimeStamp::diff(left,right);
|
||||
fprintf(fd,"diff %e\n",diff);
|
||||
if(debug) fprintf(fd,"diff %e\n",diff);
|
||||
assert(diff==-1.0);
|
||||
assert(!(left==right));
|
||||
assert((left!=right));
|
||||
@@ -93,7 +96,7 @@ void testTimeStamp(FILE *fd,FILE *auxfd)
|
||||
assert(!(left>right));
|
||||
left.put(current.getSecondsPastEpoch(),current.getNanoSeconds()-nanoSecPerSec);
|
||||
diff = TimeStamp::diff(left,right);
|
||||
fprintf(fd,"diff %e\n",diff);
|
||||
if(debug) fprintf(fd,"diff %e\n",diff);
|
||||
assert(diff==-1.0);
|
||||
assert(!(left==right));
|
||||
assert((left!=right));
|
||||
@@ -103,7 +106,7 @@ void testTimeStamp(FILE *fd,FILE *auxfd)
|
||||
assert(!(left>right));
|
||||
left.put(current.getSecondsPastEpoch(),current.getNanoSeconds()-1);
|
||||
diff = TimeStamp::diff(left,right);
|
||||
fprintf(fd,"diff %e\n",diff);
|
||||
if(debug) fprintf(fd,"diff %e\n",diff);
|
||||
assert(diff<0.0);
|
||||
assert(!(left==right));
|
||||
assert((left!=right));
|
||||
@@ -114,12 +117,13 @@ void testTimeStamp(FILE *fd,FILE *auxfd)
|
||||
left.put(current.getSecondsPastEpoch(),current.getNanoSeconds());
|
||||
left += .1;
|
||||
diff = TimeStamp::diff(left,right);
|
||||
fprintf(fd,"diff %e\n",diff);
|
||||
if(debug) fprintf(fd,"diff %e\n",diff);
|
||||
left.put(current.getSecondsPastEpoch(),current.getNanoSeconds());
|
||||
int64 inc = -1;
|
||||
left += inc;
|
||||
diff = TimeStamp::diff(left,right);
|
||||
assert(diff==-1.0);
|
||||
fprintf(fd,"PASSED\n");
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
@@ -30,6 +30,7 @@ static double oneDelay = 4.0;
|
||||
static double twoDelay = 2.0;
|
||||
static double threeDelay = 1.0;
|
||||
static int ntimes = 3;
|
||||
static bool debug = false;
|
||||
|
||||
class MyCallback;
|
||||
typedef std::tr1::shared_ptr<MyCallback> MyCallbackPtr;
|
||||
@@ -67,8 +68,10 @@ private:
|
||||
|
||||
static void testBasic(FILE *fd, FILE *auxfd)
|
||||
{
|
||||
printf("\n\ntestBasic oneDelay %lf twoDelay %lf threeDaley %lf\n",
|
||||
oneDelay,twoDelay,threeDelay);
|
||||
if(debug) {
|
||||
printf("\n\ntestBasic oneDelay %lf twoDelay %lf threeDaley %lf\n",
|
||||
oneDelay,twoDelay,threeDelay);
|
||||
}
|
||||
String one("one");
|
||||
String two("two");
|
||||
String three("three");
|
||||
@@ -90,9 +93,11 @@ oneDelay,twoDelay,threeDelay);
|
||||
if(oneDelay>.1) assert(timer->isScheduled(callbackOne));
|
||||
if(twoDelay>.1) assert(timer->isScheduled(callbackTwo));
|
||||
if(threeDelay>.1) assert(timer->isScheduled(callbackThree));
|
||||
String builder;
|
||||
timer->toString(&builder);
|
||||
printf("timerQueue\n%s",builder.c_str());
|
||||
if(debug) {
|
||||
String builder;
|
||||
timer->toString(&builder);
|
||||
printf("timerQueue\n%s",builder.c_str());
|
||||
}
|
||||
eventOne->wait();
|
||||
eventTwo->wait();
|
||||
eventThree->wait();
|
||||
@@ -101,28 +106,40 @@ oneDelay,twoDelay,threeDelay);
|
||||
diff = TimeStamp::diff(
|
||||
callbackOne->getTimeStamp(),currentTimeStamp);
|
||||
delta = diff - oneDelay;
|
||||
fprintf(auxfd,"one requested %f actual %f delta %f\n",oneDelay,diff,delta);
|
||||
if(debug) {
|
||||
fprintf(auxfd,"one requested %f actual %f delta %f\n",
|
||||
oneDelay,diff,delta);
|
||||
}
|
||||
if(delta<0.0) delta = -delta;
|
||||
assert(delta<.1);
|
||||
diff = TimeStamp::diff(
|
||||
callbackTwo->getTimeStamp(),currentTimeStamp);
|
||||
delta = diff - twoDelay;
|
||||
fprintf(auxfd,"two requested %f actual %f delta %f\n",twoDelay,diff,delta);
|
||||
if(debug) {
|
||||
fprintf(auxfd,"two requested %f actual %f delta %f\n",
|
||||
twoDelay,diff,delta);
|
||||
}
|
||||
if(delta<0.0) delta = -delta;
|
||||
assert(delta<.1);
|
||||
diff = TimeStamp::diff(
|
||||
callbackThree->getTimeStamp(),currentTimeStamp);
|
||||
delta = diff - threeDelay;
|
||||
fprintf(auxfd,"three requested %f actual %f delta %f\n",threeDelay,diff,delta);
|
||||
if(debug) {
|
||||
fprintf(auxfd,"three requested %f actual %f delta %f\n",
|
||||
threeDelay,diff,delta);
|
||||
}
|
||||
if(delta<0.0) delta = -delta;
|
||||
assert(delta<.1);
|
||||
}
|
||||
fprintf(fd,"testBasic PASSED\n");
|
||||
}
|
||||
|
||||
static void testCancel(FILE *fd, FILE *auxfd)
|
||||
{
|
||||
printf("\n\ntestCancel oneDelay %lf twoDelay %lf threeDaley %lf\n",
|
||||
oneDelay,twoDelay,threeDelay);
|
||||
if(debug) {
|
||||
printf("\n\ntestCancel oneDelay %lf twoDelay %lf threeDaley %lf\n",
|
||||
oneDelay,twoDelay,threeDelay);
|
||||
}
|
||||
String one("one");
|
||||
String two("two");
|
||||
String three("three");
|
||||
@@ -145,9 +162,11 @@ oneDelay,twoDelay,threeDelay);
|
||||
if(oneDelay>.1) assert(timer->isScheduled(callbackOne));
|
||||
assert(!timer->isScheduled(callbackTwo));
|
||||
if(threeDelay>.1) assert(timer->isScheduled(callbackThree));
|
||||
String builder;
|
||||
timer->toString(&builder);
|
||||
printf("timerQueue\n%s",builder.c_str());
|
||||
if(debug) {
|
||||
String builder;
|
||||
timer->toString(&builder);
|
||||
printf("timerQueue\n%s",builder.c_str());
|
||||
}
|
||||
eventOne->wait();
|
||||
eventThree->wait();
|
||||
double diff;
|
||||
@@ -155,16 +174,23 @@ oneDelay,twoDelay,threeDelay);
|
||||
diff = TimeStamp::diff(
|
||||
callbackOne->getTimeStamp(),currentTimeStamp);
|
||||
delta = diff - oneDelay;
|
||||
fprintf(auxfd,"one requested %f actual %f delta %f\n",oneDelay,diff,delta);
|
||||
if(debug) {
|
||||
fprintf(auxfd,"one requested %f actual %f delta %f\n",
|
||||
oneDelay,diff,delta);
|
||||
}
|
||||
if(delta<0.0) delta = -delta;
|
||||
assert(delta<.1);
|
||||
diff = TimeStamp::diff(
|
||||
callbackThree->getTimeStamp(),currentTimeStamp);
|
||||
delta = diff - threeDelay;
|
||||
fprintf(auxfd,"three requested %f actual %f delta %f\n",threeDelay,diff,delta);
|
||||
if(debug) {
|
||||
fprintf(auxfd,"three requested %f actual %f delta %f\n",
|
||||
threeDelay,diff,delta);
|
||||
}
|
||||
if(delta<0.0) delta = -delta;
|
||||
assert(delta<.1);
|
||||
}
|
||||
fprintf(fd,"testCancel PASSED\n");
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
@@ -183,23 +209,30 @@ int main(int argc, char *argv[]) {
|
||||
oneDelay = .4;
|
||||
twoDelay = .2;
|
||||
threeDelay = .1;
|
||||
fprintf(fd,"oneDelay %f twoDelay %f threeDelay %f\n",
|
||||
oneDelay,twoDelay,threeDelay);
|
||||
testBasic(fd,auxfd);
|
||||
testCancel(fd,auxfd);
|
||||
oneDelay = .1;
|
||||
twoDelay = .2;
|
||||
threeDelay = .4;
|
||||
fprintf(fd,"oneDelay %f twoDelay %f threeDelay %f\n",
|
||||
oneDelay,twoDelay,threeDelay);
|
||||
testBasic(fd,auxfd);
|
||||
testCancel(fd,auxfd);
|
||||
oneDelay = .1;
|
||||
twoDelay = .4;
|
||||
threeDelay = .2;
|
||||
fprintf(fd,"oneDelay %f twoDelay %f threeDelay %f\n",
|
||||
oneDelay,twoDelay,threeDelay);
|
||||
testBasic(fd,auxfd);
|
||||
testCancel(fd,auxfd);
|
||||
oneDelay = .0;
|
||||
twoDelay = .0;
|
||||
threeDelay = .0;
|
||||
fprintf(fd,"oneDelay %f twoDelay %f threeDelay %f\n",
|
||||
oneDelay,twoDelay,threeDelay);
|
||||
testBasic(fd,auxfd);
|
||||
testCancel(fd,auxfd);
|
||||
epicsExitCallAtExits();
|
||||
return (0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user