Esempio n. 1
0
int main(void)
{
    int rc=0;
    const char *str = "00000024163645.123456:000";
    printf("Performing NewDateTime tests.... \n");
    dt = (CMPIDateTime *)NewCMPIDateTime(&st);
    printf("Done dt \n");
    dt1 = (CMPIDateTime *) NewCMPIDateTimeFromBinary((CMPIUint64) 1000000,TRUE,&st1);
    printf("Done dt1 \n");
    dt2 = (CMPIDateTime *)NewCMPIDateTimeFromChars(str,&st2);
    printf("Done dt2 \n");
    printf("st.rc = %d \n ",st.rc);
    printf("st1.rc = %d \n ",st1.rc);
    printf("st2.rc = %d \n ",st2.rc);
    if(CMIsInterval((const CMPIDateTime *) dt2,&st3.rc))
          printf("dt2 is Interval...  \n");
	
    if (st.rc != CMPI_RC_OK) {
        printf("\tNEWCMPIDateTime returned: %s\n",(char *)st.rc);
        rc=1;
    }
    if (st1.rc != CMPI_RC_OK) {
        printf("\tNEWCMPIDateTimeFromBinary returned: %s\n",(char *)st1.rc);
        rc=1;
    }
   if (st2.rc != CMPI_RC_OK) {
        printf("\tNEWCMPIDateTimeFromChars returned: %s\n",(char *)st2.rc);
        rc=1;
    } 
    
    return(rc);
}
static int
_testCMPIDateTime()
{
  CMPIStatus      rc = { CMPI_RC_OK, NULL };

  CMPIBoolean     isInterval = 0;
  CMPIBoolean     interval = 0;
  CMPIBoolean     cloneSuccessful = 0;
  CMPIBoolean     binaryDateTimeEqual = 0;

  CMPIDateTime   *dateTime = NULL;
  CMPIDateTime   *new_dateTime = NULL;
  CMPIDateTime   *clonedDateTime = NULL;
  CMPIDateTime   *dateTimeFromBinary = NULL;

  CMPIUint64      dateTimeInBinary = UINT64_LITERAL(1150892800000000);
  CMPIUint64      returnedDateTimeInBinary = 0;

  CMPIString     *stringDate = NULL;
  CMPIString     *clonedStringDate = NULL;

  const char     *normalString = NULL;
  const char     *clonedString = NULL;
  void           *dtptr;

  dateTime = CMNewDateTime(_broker, &rc);
  if (dateTime == NULL) {
    return 1;
  }

  dateTimeFromBinary =
      CMNewDateTimeFromBinary(_broker, dateTimeInBinary, interval, &rc);
  returnedDateTimeInBinary = CMGetBinaryFormat(dateTimeFromBinary, &rc);
  if (dateTimeInBinary == returnedDateTimeInBinary) {
    binaryDateTimeEqual = 1;
  }
  isInterval = CMIsInterval(dateTime, &rc);
  interval = 1;
  new_dateTime =
      CMNewDateTimeFromBinary(_broker, dateTimeInBinary, interval, &rc);
  isInterval = CMIsInterval(new_dateTime, &rc);
  clonedDateTime = dateTime->ft->clone(dateTime, &rc);
  stringDate = CMGetStringFormat(dateTime, &rc);
  clonedStringDate = CMGetStringFormat(clonedDateTime, &rc);
  rc = clonedDateTime->ft->release(clonedDateTime);
  normalString = CMGetCharsPtr(stringDate, &rc);
  clonedString = CMGetCharsPtr(clonedStringDate, &rc);
  if (strcmp(normalString, clonedString) == 0) {
    cloneSuccessful = 1;
  }
  dtptr = dateTime->hdl;
  dateTime->hdl = NULL;

  CMGetBinaryFormat(dateTime, &rc);
  if (rc.rc != CMPI_RC_ERR_INVALID_HANDLE) {
    return 1;
  }

  dateTime->ft->clone(dateTime, &rc);
  if (rc.rc != CMPI_RC_ERR_INVALID_HANDLE) {
    return 1;
  }

  CMGetStringFormat(dateTime, &rc);
  if (rc.rc != CMPI_RC_ERR_INVALID_HANDLE) {
    return 1;
  }

  rc = dateTime->ft->release(dateTime);
  if (rc.rc != CMPI_RC_ERR_INVALID_HANDLE) {
    return 1;
  }

  dateTime->hdl = dtptr;
  rc = dateTime->ft->release(dateTime);
  return 0;
}