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

📄 fsext.java

📁 Software Testing Automation Framework (STAF)的开发代码
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
        // If all checks are successful break out of big loop and return OK.        // Otherwise, delay and start check again at top of loop.        if (success)            break;        else            sHandle.submit2("local", "DELAY", "DELAY " + poll);            } // end big for loop    return new STAFResult(STAFResult.Ok);}/*****************************************************************************//*                                                                           *//* Method: fileContains                                                      *//* Description: performs fileContains service function                       *//* Parameters: info - RequestInfo passed to acceptRequest                    *//* Returns: STAFResult                                                       *//*                                                                           *//*****************************************************************************/private STAFResult fileContains(STAFServiceInterfaceLevel30.RequestInfo info){    // Verify the requester has at least trust level 3    STAFResult trustResult = STAFUtil.validateTrust(        3, fServiceName, "FILECONTAINS", fLocalMachineName, info);    if (trustResult.rc != STAFResult.Ok) return trustResult;    // Parse request String    STAFCommandParseResult pResult = fileContainsParser.parse(info.request);    if (pResult.rc != 0)    {        return new STAFResult(STAFResult.InvalidRequestString,                              pResult.errorBuffer);    }    // Get FILE and STRING options    File file;    Enumeration strings;    STAFResult res = STAFUtil.resolveRequestVar(        pResult.optionValue(FILE), sHandle, info.requestNumber);    if (res.rc != 0) return res;    String filename = res.result;    file = new File(filename);    // Get all instances of STRING, store in a Vector and get the Enumeration    int numStrings = pResult.optionTimes(STRING);    Vector stringVect = new Vector();    for (int i = 1; i <= numStrings; i++)    {        res = STAFUtil.resolveRequestVar(            pResult.optionValue(STRING, i), sHandle, info.requestNumber);        if (res.rc != 0) return res;        String tempString = res.result;        stringVect.add(tempString);    }    strings = stringVect.elements();    // Check if NOT option specified    boolean fileContainsString = true;    if (pResult.optionTimes(NOT) == 1)        fileContainsString = false;        // Check if IGNORECASE option specified    boolean ignoreCase = false;    if (pResult.optionTimes(IGNORECASE) == 1)        ignoreCase = true;        // Check if SAVEONFAILURE option specified    boolean saveOnFail = false;    if (pResult.optionTimes(SAVEONFAILURE) == 1)        saveOnFail = true;        // Read entire file and store as a String    FileReader in = null;    String data = null;    try    {        in = new FileReader(file);        int numBytes = (int) file.length();        char[] fileData = new char[numBytes];        in.read(fileData);        data = new String(fileData);        if (ignoreCase) data = data.toLowerCase();    }    catch(IOException ioe)    {        return new STAFResult(IOERROR, ioe.toString());    }    finally    {        try        {            in.close();        }        catch(Throwable t) {} //don't care    }    // Scan entire file for presence or absence of the specified Strings    if (fileContainsString)    {        // Check that file contains list of Strings        while(strings.hasMoreElements())        {            String tempS = (String) strings.nextElement();            if (ignoreCase)            {                // IGNORECASE specified                tempS = tempS.toLowerCase();            }            if (data.indexOf(tempS) == -1)            {                // String not found                if (saveOnFail)                {                    // Capture the file for later comparison                                        ExtFile capture = new ExtFile(file);                    try                    {                        capture.captureFile(file.getPath() + ".fail");                    }                    catch(IOException ioe)                    {                        return new STAFResult(IOERROR, ioe.toString());                    }                }                return new STAFResult(STRINGNOTFOUND, tempS);            }        }    }    else    {        // Check that the file does NOT contain the list of Strings        while (strings.hasMoreElements())        {            String tempS = (String)strings.nextElement();            if (ignoreCase) tempS = tempS.toLowerCase();                        int index = data.indexOf(tempS);            if (index != -1)            {                // String was found in the file                if (saveOnFail)                {                    // Capture the file for later comparison                    ExtFile capture = new ExtFile(file);                    try                    {                        capture.captureFile(file.getPath() + ".fail");                    }                    catch(IOException ioe)                    {                        return new STAFResult(IOERROR, ioe.toString());                    }                }                Map resultMap = fFileContainsErrorMapClass.createInstance();                resultMap.put("offset", String.valueOf(index));                resultMap.put("string", tempS);                STAFMarshallingContext mc = new STAFMarshallingContext();                mc.setRootObject(resultMap);                mc.setMapClassDefinition(fFileContainsErrorMapClass);                return new STAFResult(STRINGFOUND, mc.marshall());            }        }    }    return new STAFResult(STAFResult.Ok);}/*****************************************************************************//*                                                                           *//* Method: help                                                              *//* Description: returns service help information                             *//* Parameters: none                                                          *//* Returns: STAFResult.OK                                                    *//*                                                                           *//*****************************************************************************/private STAFResult handleHelp(    STAFServiceInterfaceLevel30.RequestInfo info){    // Verify the requester has at least trust level 1    STAFResult trustResult = STAFUtil.validateTrust(        1, fServiceName, "HELP", fLocalMachineName, info);    if (trustResult.rc != STAFResult.Ok) return trustResult;    // Return help text for the service    String help =        fServiceName + " Service Help\n\n"+        "COMPAREDIR DIR <Directory> FILE <File> [FILE <File>]... " +        "[EXISTS]\n"+        "     [ATTEMPTS <Num Attempts> [INTERVAL <Polling Interval>]]\n\n"+        "FILECONTAINS FILE <File> STRING <String> [STRING <String>]... " +        "[NOT]\n"+        "     [IGNORECASE] [SAVEONFAILURE]\n\n"+        "LINECONTAINS FILE <File> STRING <String> [STRING <String>]... " +        "[IGNORECASE]\n"+        "     [SAVEONFAILURE] [LINENUMBER <Line #>]\n\n"+        "PROCESSFILE [MODE <capture | compare>] FILE1 <File1> FILE2 <File2> " +        "[SORT]\n"+        "     [SAVEONFAILURE]\n\n"+        "SUBSTITUTE FILE <File> [TOFILE <File>] [TOMACHINE <Machine>]\n"+        "     [FAILIFNEW | FAILIFEXISTS]\n\n"+        "WAITFORFILE FILE <File> [TIMEOUT <Max Wait Time>]\n"+        "     [INTERVAL <Polling Interval>] [NOT]\n\n"+        "VERSION\n\n"+        "HELP";    return new STAFResult(STAFResult.Ok, help);}/*****************************************************************************//*                                                                           *//* Method: init                                                              *//* Description: required by interface STAFServiceInterfaceLevel30            *//*              creates parsers and registers with STAF                      *//*                                                                           *//*****************************************************************************/public STAFResult init(STAFServiceInterfaceLevel30.InitInfo initInfo){    /* Generate STAF Parsers */    /* Generate PROCESSFILE parser */    procFileParser = new STAFCommandParser();    procFileParser.addOption(PROCESSFILE, 1,        STAFCommandParser.VALUENOTALLOWED);    procFileParser.addOption(MODE, 1, STAFCommandParser.VALUEREQUIRED);    procFileParser.addOption(FILE1, 1, STAFCommandParser.VALUEREQUIRED);    procFileParser.addOption(FILE2, 1, STAFCommandParser.VALUEREQUIRED);    procFileParser.addOption(SORT, 1, STAFCommandParser.VALUENOTALLOWED);    procFileParser.addOption(SAVEONFAILURE, 1,        STAFCommandParser.VALUENOTALLOWED);    procFileParser.addOptionGroup(FILE1, 1, 1);    procFileParser.addOptionGroup(FILE2, 1, 1);    /* Generete COMPAREDIR parser */    compDirParser = new STAFCommandParser();    compDirParser.addOption(COMPAREDIR, 1, STAFCommandParser.VALUENOTALLOWED);    compDirParser.addOption(DIR, 1, STAFCommandParser.VALUEREQUIRED);    compDirParser.addOption(FILE, 0, STAFCommandParser.VALUEREQUIRED);    compDirParser.addOption(EXISTS, 1, STAFCommandParser.VALUENOTALLOWED);    compDirParser.addOption(ATTEMPTS, 1, STAFCommandParser.VALUEREQUIRED);    compDirParser.addOption(POLL, 1, STAFCommandParser.VALUEREQUIRED);    compDirParser.addOptionGroup(DIR, 1, 1);    compDirParser.addOptionGroup(FILE, 1, 1);    compDirParser.addOptionNeed(POLL, ATTEMPTS);    /* Generate FILECONTAINS parser */    fileContainsParser = new STAFCommandParser();    fileContainsParser.addOption(FILECONTAINS, 1,        STAFCommandParser.VALUENOTALLOWED);    fileContainsParser.addOption(FILE, 1, STAFCommandParser.VALUEREQUIRED);    fileContainsParser.addOption(STRING, 0, STAFCommandParser.VALUEREQUIRED);    fileContainsParser.addOption(NOT, 1, STAFCommandParser.VALUENOTALLOWED);    fileContainsParser.addOption(IGNORECASE, 1,        STAFCommandParser.VALUENOTALLOWED);    fileContainsParser.addOption(SAVEONFAILURE, 1,        STAFCommandParser.VALUENOTALLOWED);    fileContainsParser.addOptionGroup(FILE, 1, 1);    fileContainsParser.addOptionGroup(STRING, 1, 1);    /* Generate LINECONTAINS parser */    lineContainsParser = new STAFCommandParser();    lineContainsParser.addOption(LINECONTAINS, 1,        STAFCommandParser.VALUENOTALLOWED);    lineContainsParser.addOption(FILE, 1, STAFCommandParser.VALUEREQUIRED);    lineContainsParser.addOption(STRING, 0, STAFCommandParser.VALUEREQUIRED);    lineContainsParser.addOption(IGNORECASE, 1,        STAFCommandParser.VALUENOTALLOWED);    lineContainsParser.addOption(SAVEONFAILURE, 1,        STAFCommandParser.VALUENOTALLOWED);    lineContainsParser.addOption(LINENUMBER, 1,        STAFCommandParser.VALUEREQUIRED);    lineContainsParser.addOptionGroup(FILE, 1, 1);    lineContainsParser.addOptionGroup(STRING, 1, 1);    /* Generate WAITFORFILE parser */    waitForFileParser = new STAFCommandParser();    waitForFileParser.addOption(WAITFORFILE, 1,        STAFCommandParser.VALUENOTALLOWED);    waitForFileParser.addOption(FILE, 1, STAFCommandParser.VALUEREQUIRED);    waitForFileParser.addOption(TIMEOUT, 1, STAFCommandParser.VALUEREQUIRED);    waitForFileParser.addOption(POLL, 1, STAFCommandParser.VALUEREQUIRED);    waitForFileParser.addOption(NOT, 1, STAFCommandParser.VALUENOTALLOWED);    waitForFileParser.addOptionGroup(FILE, 1, 1);    /* Generate SUBSTITUTE parser */    substituteParser = new STAFCommandParser();    substituteParser.addOption(SUBSTITUTE, 1,                               STAFCommandParser.VALUENOTALLOWED);    substituteParser.addOption(FILE, 1, STAFCommandParser.VALUEREQUIRED);    substituteParser.addOption(TOFILE, 1, STAFCommandParser.VALUEREQUIRED);    substituteParser.addOption(TOMACHINE, 1, STAFCommandParser.VALUEREQUIRED);    substituteParser.addOption(FAILIFEXISTS, 1,                               STAFCommandParser.VALUENOTALLOWED);    substituteParser.addOption(FAILIFNEW, 1,                               STAFCommandParser.VALUENOTALLOWED);    substituteParser.addOptionGroup(FILE, 1, 1);    substituteParser.addOptionGroup(FAILIFEXISTS + " " + FAILIFNEW, 0, 1);    // Construct map class for the result from an unsuccessful FILECONTAINS NOT    // request    fFileContainsErrorMapClass = new STAFMapClassDefinition(        "STAF/Service/FSExt/FileContainsNotError");    fFileContainsErrorMapClass.addKey("offset", "Byte Offset");    fFileContainsErrorMapClass.addKey("string", "Found String");        // Construct map class for the result from a LINECONTAINS request    fLineContainsMapClass = new STAFMapClassDefinition(        "STAF/Service/FSExt/LineContainsResult");    fLineContainsMapClass.addKey("lineNumber", "Line Number");    fLineContainsMapClass.addKey("line", "Line");    /* Set name */    fServiceName = initInfo.name;    /* Create STAFHandle */    try    {        sHandle = new STAFHandle(initInfo.name);    }

⌨️ 快捷键说明

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