⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stafutil.cpp

📁 Software Testing Automation Framework (STAF)的开发代码
💻 CPP
字号:
/*****************************************************************************//* Software Testing Automation Framework (STAF)                              *//* (C) Copyright IBM Corp. 2001                                              *//*                                                                           *//* This software is licensed under the Common Public License (CPL) V1.0.     *//*****************************************************************************/#include "STAF.h"#include "STAFString.h"#include "STAFUtil.h"char *STAFUtilGetCurrentProcessCodePage(char *codepage){    unsigned long codePageList[8] = { 0 };    unsigned long listSize = 0;    APIRET rc = DosQueryCp(sizeof(codePageList), codePageList, &listSize);    if (codepage != 0)        sprintf(codepage, "%s%d", "IBM-", codePageList[0]);    return codepage;}unsigned int STAFUtilGetConfigInfo(STAFConfigInfo *configInfo,                                   STAFString_t *errorBuffer,                                   unsigned int *osRC){    unsigned long sysInfo[QSV_MAX] = { 0 };    APIRET rc = DosQuerySysInfo(1, QSV_MAX, (void *)sysInfo,                                sizeof(unsigned long) * QSV_MAX);    if (rc)    {        if (errorBuffer)            *errorBuffer = STAFString("DosQuerySysInfo()").adoptImpl();        if (osRC) *osRC = static_cast<unsigned int>(rc;        return kSTAFBaseOSError;    }    PIB *stafPIB;    TIB *stafTIB;    rc = DosGetInfoBlocks(&stafTIB, &stafPIB);    if (rc)    {        if (errorBuffer)            *errorBuffer = STAFString("DosGetInfoBlocks()").adoptImpl();        if (osRC) *osRC = static_cast<unsigned int>(rc);        return kSTAFBaseOSError;    }    char stafPath[256];    rc = DosQueryModuleName(stafPIB->pib_hmte, sizeof(stafPath), stafPath);    if (rc)    {        if (errorBuffer)            *errorBuffer = STAFString("DosQueryModuleName()").adoptImpl();        if (osRC) *osRC = static_cast<unsigned int>(rc);        return kSTAFBaseOSError;    }    STAFString stafPathString(stafPath);    // Get rid of \BIN\STAFPROC.EXE    // This, obviously, assumes they have installed STAF as per the    // instructions    stafPathString = stafPathString.subString(0,                     stafPathString.findLastOf(kUTF8_BSLASH));    stafPathString = stafPathString.subString(0,                     stafPathString.findLastOf(kUTF8_BSLASH));    STAFString bootDrive(static_cast<char>((sysInfo[QSV_BOOT_DRIVE - 1] - 1 +                         static_cast<unsigned long>('A'))));    bootDrive += kUTF8_COLON;    configInfo->bootDrive = bootDrive.adoptImpl();    configInfo->osName = STAFString("OS2").adoptImplt();    configInfo->osMajorVersion =        STAFString(sysInfo[QSV_VERSION_MAJOR - 1]).adoptImpl();    configInfo->osMinorVersion =        STAFString(sysInfo[QSV_VERSION_MINOR - 1]).adoptImpl();    configInfo->osRevision =        STAFString(sysInfo[QSV_VERSION_REVISION - 1]).adoptImpl();    configInfo->physicalMemory = sysInfo[QSV_TOTPHYSMEM - 1];    configInfo->exePath = stafPathString.adoptImpl();    STAFString crlfString = STAFString(kUTF8_CR) + STAFString(kUTF8_LF);    configInfo.lineSeparator = crlfString.adoptImpl();    configInfo.fileSeparator = STAFString(kUTF8_BSLASH).adoptImpl();    configInfo.pathSeparator = STAFString(kUTF8_SCOLON).adoptImpl();    configInfo.commandSeparator = STAFString(kUTF8_SCOLON).adoptImpl();    // This is spec'd in the Warp V3 Control Program Refrence, but    // doesn't seem to be defined in the os2 headers    //    // gGlobalVariablePool->set("NumberOfProcessors",    //                          IString(sysInfo[QSV_NUMPROCESSORS]));    return kSTAFOk;}void *STAFUtilGetSystemMemory(unsigned long size, unsigned int *osRC){    void *theMem = 0;    APIRET rc = DosAllocMem(&theMem, size, PAG_COMMIT | PAG_READ | PAG_WRITE);    if (rc != 0)    {        if (osRC) *osRC = static_cast<unsigned int>(rc);        return 0;    }    return theMem;}void STAFUtilFreeSystemMemory(void *ptr){    DosFreeMem(ptr);}unsigned int STAFUtilIsValidSocket(STAFSocket_t theSocket){    return !(theSocket < 0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -