Files
epics-base/modules/database/test/ioc/db/dbStateTest.c
2018-06-19 11:31:13 +02:00

57 lines
2.2 KiB
C

/*************************************************************************\
* Copyright (c) 2010 Brookhaven National Laboratory.
* Copyright (c) 2010 Helmholtz-Zentrum Berlin
* fuer Materialien und Energie GmbH.
* EPICS BASE is distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
\*************************************************************************/
/*
* Author: Ralph Lange <Ralph.Lange@bessy.de>
*/
#include <string.h>
#include "dbState.h"
#include "epicsUnitTest.h"
#include "testMain.h"
MAIN(dbStateTest)
{
dbStateId red, red2, blue, blue2;
int i;
testPlan(20);
testOk(!dbStateFind("y"), "Finding nonexisting state fails");
testOk(!!(red = dbStateCreate("red")), "Create state 'red'");
testOk((red2 = dbStateFind("red")) == red, "Find 'red' returns correct id");
testOk((red2 = dbStateCreate("red")) == red, "Create existing 'red' returns correct id");
testOk(!dbStateFind("y"), "Finding nonexisting state still fails");
testOk(!!(blue = dbStateCreate("blue")), "Create state 'blue'");
testOk((blue2 = dbStateFind("blue")) == blue, "Find 'blue' returns correct id");
testOk((blue2 = dbStateCreate("blue")) == blue, "Create existing 'blue' returns correct id");
testOk(!dbStateFind("y"), "Finding nonexisting state still fails");
testOk((i = dbStateGet(red)) == 0, "Default 'red' state is 0");
testOk((i = dbStateGet(blue)) == 0, "Default 'blue' state is 0");
dbStateSet(red);
testOk((i = dbStateGet(red)) == 1, "After setting, 'red' state is 1");
testOk((i = dbStateGet(blue)) == 0, "'blue' state is 0");
dbStateSet(blue);
testOk((i = dbStateGet(blue)) == 1, "After setting, 'blue' state is 1");
testOk((i = dbStateGet(red)) == 1, "'red' state is 1");
dbStateClear(blue);
testOk((i = dbStateGet(blue)) == 0, "After clearing, 'blue' state is 0");
testOk((i = dbStateGet(red)) == 1, "'red' state is 1");
dbStateClear(red);
testOk((i = dbStateGet(red)) == 0, "After clearing, 'red' state is 0");
testOk((i = dbStateGet(blue)) == 0, "'red' state is 0");
testOk(!dbStateFind("y"), "Finding nonexisting state still fails");
return testDone();
}