[Openais] openais trunk - modify ckpt-wr to work properly
Ryan O'Hara
rohara at redhat.com
Mon Mar 29 15:12:12 PDT 2010
Ack.
On Thu, Mar 25, 2010 at 11:52:25AM -0700, Steven Dake wrote:
> Ryan,
>
> This test case doesn't work properly when it is built.
>
> See attached patch.
>
> Regards
> -steve
> Index: test/ckpt-wr.c
> ===================================================================
> --- test/ckpt-wr.c (revision 2124)
> +++ test/ckpt-wr.c (working copy)
> @@ -50,54 +50,23 @@
>
> #define SECONDS_TO_EXPIRE 500
>
> -int ckptinv;
> -void printSaNameT (SaNameT *name)
> -{
> - int i;
> +static SaVersionT version = { 'B', 1, 1 };
>
> - for (i = 0; i < name->length; i++) {
> - printf ("%c", name->value[i]);
> - }
> -}
> +static SaNameT checkpointName = { 16, "checkpoint-sync\0" };
>
> -SaVersionT version = { 'B', 1, 1 };
> -
> -SaNameT checkpointName = { 16, "checkpoint-sync\0" };
> -
> -SaCkptCheckpointCreationAttributesT checkpointCreationAttributes = {
> +static SaCkptCheckpointCreationAttributesT checkpointCreationAttributes = {
> .creationFlags = SA_CKPT_WR_ALL_REPLICAS,
> .checkpointSize = 250000,
> .retentionDuration = SA_TIME_ONE_SECOND * 60,
> - .maxSections = 5,
> + .maxSections = 1,
> .maxSectionSize = 250000,
> .maxSectionIdSize = 10
> };
>
> -char readBuffer1[1025];
> -
> -SaCkptIOVectorElementT ReadVectorElements[] = {
> - {
> - SA_CKPT_DEFAULT_SECTION_ID,
> - readBuffer1,
> - sizeof (readBuffer1),
> - 0,
> - 0
> - }
> -};
> -
> #define DATASIZE 127000
> char data[DATASIZE];
> -SaCkptIOVectorElementT WriteVectorElements[] = {
> - {
> - SA_CKPT_DEFAULT_SECTION_ID,
> - data, /*"written data #1, this should extend past end of old section data", */
> - DATASIZE, /*sizeof ("data #1, this should extend past end of old section data") + 1, */
> - 0, //5,
> - 0
> - }
> -};
>
> -SaCkptCallbacksT callbacks = {
> +static SaCkptCallbacksT callbacks = {
> 0,
> 0
> };
> @@ -108,7 +77,6 @@
> SaCkptHandleT ckptHandle;
> SaCkptCheckpointHandleT checkpointHandle;
> SaAisErrorT error;
> - char data[MAX_DATA_SIZE];
> struct timespec delay;
> struct timespec delay2;
> SaCkptIOVectorElementT writeElement;
> @@ -121,55 +89,39 @@
> error = saCkptInitialize (&ckptHandle, &callbacks, &version);
>
> error = saCkptCheckpointOpen (ckptHandle,
> - &checkpointName,
> - &checkpointCreationAttributes,
> - SA_CKPT_CHECKPOINT_CREATE|SA_CKPT_CHECKPOINT_READ|SA_CKPT_CHECKPOINT_WRITE,
> - 0,
> - &checkpointHandle);
> + &checkpointName,
> + &checkpointCreationAttributes,
> + SA_CKPT_CHECKPOINT_CREATE|SA_CKPT_CHECKPOINT_READ|SA_CKPT_CHECKPOINT_WRITE,
> + 0,
> + &checkpointHandle);
> +
> printf ("%s: initial open of checkpoint\n",
> get_test_output (error, SA_AIS_OK));
>
>
> - do{
> - error = saCkptCheckpointRead (checkpointHandle,
> - ReadVectorElements,
> - 1,
> - &erroroneousVectorIndex);
> - if (error != SA_AIS_OK) {
> - if (error == SA_AIS_ERR_TRY_AGAIN) {
> - continue;
> - }
> -printf ("error is %d\n", error);
> - return (0);
> - }
> + for (;;) {
> + count++;
> + sprintf((char*)&data, "%d",(int)count);
> + writeElement.sectionId.idLen = 0;
> + writeElement.sectionId.id = 0;
> + writeElement.dataBuffer = data;
> + writeElement.dataSize = strlen (data) + 1;
> + writeElement.dataOffset = 0;
> + writeElement.readSize = 0;
>
> - if (ReadVectorElements->dataBuffer == 0) {
> - printf ("Default Checkpoint has no data\n");
> - } else {
> - count = atol((char *)ReadVectorElements->dataBuffer);
> - }
> + do {
> + error = saCkptCheckpointWrite (checkpointHandle,
> + &writeElement,
> + 1,
> + &erroroneousVectorIndex);
>
> - count++;
> - sprintf((char*)&data, "%d",(int)count);
> - writeElement.sectionId = (SaCkptSectionIdT)SA_CKPT_DEFAULT_SECTION_ID;
> - writeElement.dataBuffer = data;
> - writeElement.dataSize = strlen (data) + 1;
> - writeElement.dataOffset = 0;
> - writeElement.readSize = 0;
> + printf ("%s: checkpoint write with data %s\n",
> + get_test_output (error, SA_AIS_OK), (char*)data);
> + } while (error == SA_AIS_ERR_TRY_AGAIN);
>
> - do {
> - error = saCkptCheckpointWrite (checkpointHandle,
> - &writeElement,
> - 1,
> - &erroroneousVectorIndex);
> + nanosleep(&delay,&delay2);
> + }
>
> - printf ("%s: checkpoint write with data %s\n",
> - get_test_output (error, SA_AIS_OK), (char*)data);
> - }while (error == SA_AIS_ERR_TRY_AGAIN);
> -
> - nanosleep(&delay,&delay2);
> - }while (1);
> -
> return (0);
>
> }
> _______________________________________________
> Openais mailing list
> Openais at lists.linux-foundation.org
> https://lists.linux-foundation.org/mailman/listinfo/openais
More information about the Openais
mailing list