Esempio n. 1
0
int io16(int send){
  int i=0;
  int in=0;
  
  for(i=0; i<16; ++i){
    in = in | (io1(send & 1) << i);
    send = send >> 1;
  }

  return in;
}
Esempio n. 2
0
Task::ReportResult GTest_hmmCompare::report() {

    QFileInfo fi1(env->getVar("COMMON_DATA_DIR")+"/"+file1Name);
    QString url1 = fi1.absoluteFilePath();
    IOAdapterFactory* iof1 = AppContext::getIOAdapterRegistry()->getIOAdapterFactoryById(IOAdapterUtils::url2io(url1));
    QScopedPointer<IOAdapter> io1(iof1->createIOAdapter());
    //QFile file1(fi1.absoluteFilePath());
    QFileInfo fi2(env->getVar("TEMP_DATA_DIR")+"/"+file2Name);
    QString url2 = fi2.absoluteFilePath();
    IOAdapterFactory* iof2 = AppContext::getIOAdapterRegistry()->getIOAdapterFactoryById(IOAdapterUtils::url2io(url2));
    QScopedPointer<IOAdapter> io2(iof2->createIOAdapter());
    fi2.absoluteDir().mkdir(fi2.absoluteDir().absolutePath()); // ???
    //QFile file2(fi2.absoluteFilePath());

    if(!io1->open(url1, IOAdapterMode_Read)){
        stateInfo.setError(  QString("File opening error \"%1\", description: ").arg(url1) );//+file1.errorString() );
        return ReportResult_Finished;
    }
    //file2.open(QIODevice::ReadOnly|QIODevice::Text);
    if(!io2->open(url2, IOAdapterMode_Read)){
        stateInfo.setError(  QString("File opening error \"%1\", description: ").arg(url2) );//+file2.errorString() );
        return ReportResult_Finished;
    }

    static int READ_BUFF_SIZE = 4096;

    qint64 len1, len2, line1 = 0, line2 = 0;
    QByteArray readBuffer1(READ_BUFF_SIZE, '\0'), readBuffer2(READ_BUFF_SIZE, '\0');
    char* cbuff1 = readBuffer1.data();
    char* cbuff2 = readBuffer2.data();
    QRegExp rx("CKSUM ");

    bool ok = false;
    while ( (len1 = io1->readUntil(cbuff1, READ_BUFF_SIZE, TextUtils::LINE_BREAKS, IOAdapter::Term_Include)) > 0 ) {
        line1++;
        if ((ok = rx.indexIn(QString(QByteArray(cbuff1, len1))) !=-1)) {
            break;
        }
    }
    if(!ok){
        stateInfo.setError(  QString("can't find CKSUM in file \"%1\"").arg(url1) );
        return ReportResult_Finished;
    }

    ok = false;
    while ( (len2 = io2->readUntil(cbuff2, READ_BUFF_SIZE, TextUtils::LINE_BREAKS, IOAdapter::Term_Include)) > 0 ) {
        line2++;
        if ((ok = rx.indexIn(QString(QByteArray(cbuff2, len2))) !=-1)) {
            break;
        }
    }
    if(!ok){
        stateInfo.setError(  QString("can't find CKSUM in file \"%1\"").arg(url2) );
        return ReportResult_Finished;
    }

    do{
        len1 = io1->readUntil(cbuff1, READ_BUFF_SIZE, TextUtils::LINE_BREAKS, IOAdapter::Term_Include);
        len2 = io2->readUntil(cbuff2, READ_BUFF_SIZE, TextUtils::LINE_BREAKS, IOAdapter::Term_Include);
        if(len1 == 0 && 0 != len2){
            stateInfo.setError(  QString("hmm-compare: files not equal, desc: files length mismatch") );
            return ReportResult_Finished;
        }
        line1++;line2++;
        QString s1 = QString::fromLatin1(cbuff1, len1).trimmed();
        QString s2 = QString::fromLatin1(cbuff2, len2).trimmed();

        if(s1 != s2)
        {
            stateInfo.setError( QString("hmm-compare: files not equal, desc: file1, line %1 \"%2\", expected file2, line %3 \"%4\"")
                .arg(line1).arg(s1).arg(line2).arg(s2) );
            return ReportResult_Finished;
        }

    } while(len1 > 0);

    return ReportResult_Finished;
}