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

📄 fsext.java

📁 Software Testing Automation Framework (STAF)的开发代码
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
    catch(STAFException se)    {        se.printStackTrace();        return new STAFResult(STAFResult.STAFRegistrationError,                              se.toString());    }    // Resolve the machine name variable for the local machine    STAFResult res = STAFUtil.resolveInitVar("{STAF/Config/Machine}", sHandle);    if (res.rc != STAFResult.Ok) return res;    fLocalMachineName = res.result;    /* Register RCs with the HELP service */    int rc = this.registerHelp(initInfo.name);    if (rc != STAFResult.Ok)        return new STAFResult(            rc, "Error registering RCs with the HELP service.");    /* Finished */    return new STAFResult(rc);}/*****************************************************************************//*                                                                           *//* Method: lineContains                                                      *//* Description: performs lineContains service function                       *//* Parameters: info - RequestInfo passed to acceptRequest                    *//* Returns: STAFResult                                                       *//*                                                                           *//*****************************************************************************/private STAFResult lineContains(STAFServiceInterfaceLevel30.RequestInfo info){    // Verify the requester has at least trust level 3    STAFResult trustResult = STAFUtil.validateTrust(        3, fServiceName, "LINECONTAINS", fLocalMachineName, info);    if (trustResult.rc != STAFResult.Ok) return trustResult;    // Parse request string    STAFCommandParseResult pResult = lineContainsParser.parse(info.request);    if (pResult.rc != 0)    {        return new STAFResult(STAFResult.InvalidRequestString,                              pResult.errorBuffer);    }    // Get FILE and STRING options    STAFResult res = STAFUtil.resolveRequestVar(        pResult.optionValue(FILE), sHandle, info.requestNumber);    if (res.rc != 0) return res;    String filename = res.result;    File file = new File(filename);    // Get all instances of STRING and store in a Vector    Vector stringList = new Vector();    for (int i = 1; i <= pResult.optionTimes(STRING); i++)    {        res = STAFUtil.resolveRequestVar(            pResult.optionValue(STRING, i), sHandle, info.requestNumber);        if (res.rc != 0) return res;                   String tempString = res.result;        stringList.add(tempString);    }    // Check if IGNORECASE option is specified    boolean ignoreCase = false;    if (pResult.optionTimes(IGNORECASE) == 1)        ignoreCase = true;        // Check if SAVEONFAILURE option is specified    boolean saveOnFail = false;    if (pResult.optionTimes(SAVEONFAILURE) == 1)        saveOnFail = true;        // Parse LINENUMBER option    boolean strictLine = false;    int specificLineNumber = 0;    if (pResult.optionTimes(LINENUMBER) == 1)    {        strictLine = true;                    res = STAFUtil.resolveRequestVarAndCheckInt(            LINENUMBER, pResult.optionValue(LINENUMBER),            sHandle, info.requestNumber);        if (res.rc != 0) return res;        specificLineNumber = Integer.parseInt(res.result);        if (specificLineNumber == 0)        {            return new STAFResult(                STAFResult.InvalidRequestString, "LINENUMBER cannot be 0.");        }    }    // Read file one line at a time and search each line for string list.    BufferedReader in = null;    int numStrings = stringList.size();    int lineNumber = 0;    Vector lineStore = new Vector();    try    {        in = new BufferedReader(new FileReader(file));        while(true)        {            lineNumber++;            // Read next line from file            String line = in.readLine();            if (line == null)            {                // Reached end of file                break;            }            if (ignoreCase)            {                line = line.toLowerCase();            }            if (strictLine)            {                // Simply store line for later comparison                lineStore.add(line);                continue;            }            boolean searchResult = ServiceUtilities.lineContainsStrings(                line, stringList, ignoreCase);            if (searchResult)            {                // Found all strings in a single line                Map resultMap = fLineContainsMapClass.createInstance();                resultMap.put("lineNumber", String.valueOf(lineNumber));                resultMap.put("line", line);                STAFMarshallingContext mc = new STAFMarshallingContext();                mc.setRootObject(resultMap);                mc.setMapClassDefinition(fLineContainsMapClass);                return new STAFResult(STAFResult.Ok, mc.marshall());            }        }    }    catch(IOException ioe)    {        return new STAFResult(IOERROR, ioe.toString());    }    finally    {        try        {            in.close();        }        catch(Throwable t) {} // Don't care    }    STAFResult result = new STAFResult(STRINGNOTFOUND); // Default from here    if (strictLine)    {        // Now do comparison        int totalLines = lineStore.size();        if (Math.abs(specificLineNumber) > totalLines)        {            // Line not in file            result = new STAFResult(LINEDOESNOTEXIST,                                     String.valueOf(totalLines));        }        STAFMarshallingContext mc = new STAFMarshallingContext();        mc.setMapClassDefinition(fLineContainsMapClass);        Map resultMap = fLineContainsMapClass.createInstance();        if (specificLineNumber > 0)        {            String line = (String)lineStore.get(specificLineNumber - 1);            resultMap.put("lineNumber",                          String.valueOf(specificLineNumber));            resultMap.put("line", line);            mc.setRootObject(resultMap);            if (ServiceUtilities.lineContainsStrings(                line, stringList, ignoreCase))            {                return new STAFResult(STAFResult.Ok, mc.marshall());            }            else            {                result = new STAFResult(STRINGNOTFOUND, mc.marshall());            }        }        else        {            int lineNum = totalLines + specificLineNumber;            String line = (String)lineStore.get(lineNum);            resultMap.put("lineNumber", String.valueOf(lineNum + 1));            resultMap.put("line", line);            mc.setRootObject(resultMap);            if (ServiceUtilities.lineContainsStrings(                line, stringList, ignoreCase))            {                return new STAFResult(STAFResult.Ok, mc.marshall());            }            else            {                result = new STAFResult(STRINGNOTFOUND, mc.marshall());            }        }    }    // If we get here query failed    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 result;}/*****************************************************************************//*                                                                           *//* Method: processFile                                                       *//* Description: performs processFile service function                        *//* Parameters: info - RequestInfo passed to acceptRequest                    *//* Returns: STAFResult                                                       *//*                                                                           *//*****************************************************************************/private STAFResult processFile(STAFServiceInterfaceLevel30.RequestInfo info){    // Verify the requester has at least trust level 3    STAFResult trustResult = STAFUtil.validateTrust(        3, fServiceName, "PROCESSFILE", fLocalMachineName, info);    if (trustResult.rc != STAFResult.Ok) return trustResult;    /* Parse request string */    STAFCommandParseResult pResult = procFileParser.parse(info.request);    if (pResult.rc != 0)    {        return new STAFResult(STAFResult.InvalidRequestString,                              pResult.errorBuffer);    }    /* Get parameters */    boolean compare = true; //if true compare, if false capture    boolean sort = false;    String mode, file1, file2;    /* Get FILE names */    STAFResult res = STAFUtil.resolveRequestVar(        pResult.optionValue(FILE1), sHandle, info.requestNumber);    if (res.rc != 0) return res;    file1 = res.result;    res = STAFUtil.resolveRequestVar(        pResult.optionValue(FILE2), sHandle, info.requestNumber);    if (res.rc != 0) return res;    file2 = res.result;    /* Get MODE */    if (pResult.optionTimes(MODE) == 1)    {        res = STAFUtil.resolveRequestVar(            pResult.optionValue(MODE), sHandle, info.requestNumber);        if (res.rc != 0) return res;        mode = res.result;        if (mode.equalsIgnoreCase(CAPTURE))        {            compare = false;        }        else if (mode.equalsIgnoreCase(COMPARE))        {            compare = true;        }        else        {            return new STAFResult(STAFResult.InvalidRequestString,                "Invalid value specified for MODE");        }    }    /* Get SORT */    if (pResult.optionTimes(SORT) == 1)    {        sort = true;    }    /* Parse SAVEONFAILURE parameter */    boolean saveOnFail = false;    if (pResult.optionTimes(SAVEONFAILURE) == 1)    {        saveOnFail = true;    }    /* Perform capture or compare */    ExtFile sourceFile = new ExtFile(file1);    sourceFile.setSaveFailures(saveOnFail);    try    {        if (compare)        {            if (!sourceFile.compareFile(file2, sort))            {                return new STAFResult(COMPAREFAIL);            }        }        else        {            sourceFile.captureFile(file2);        }    }    catch(IOException ioe)    {        return new STAFResult(IOERROR, ioe.toString());    }    return new STAFResult(STAFResult.Ok);

⌨️ 快捷键说明

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