Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 31fb8b60 authored by Steve Block's avatar Steve Block Committed by Android (Google) Code Review
Browse files

Merge changes Ic62f60d9,I04a01634

* changes:
  Provide a useful message in DumpRenderTree2 GUI when the host server is not running
  Prevent DumpRenderTree2 from crashing when the host server is not running
parents f2e17a86 cb98a3e6
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -223,10 +223,9 @@ public class FsUtils {
        try {
            return getHttpClient().execute(httpRequest, handler);
        } catch (IOException e) {
            Log.e(LOG_TAG, "url=" + url, e);
            Log.e(LOG_TAG, "getLayoutTestsDirContents(): HTTP GET failed for URL " + url);
            return null;
        }

        return new LinkedList<String>();
    }

    public static void closeInputStream(InputStream inputStream) {
+29 −24
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.os.Message;
import java.io.File;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

/**
 * A Thread that is responsible for generating a lists of tests to run.
@@ -35,7 +36,7 @@ public class TestsListPreloaderThread extends Thread {
    private FileFilter mFileFilter;

    /**
     * A relative path to the folder with the tests we want to run or particular test.
     * A relative path to the directory with the tests we want to run or particular test.
     * Used up to and including preloadTests().
     */
    private String mRelativePath;
@@ -67,33 +68,36 @@ public class TestsListPreloaderThread extends Thread {
    }

    /**
     * Loads all the tests from the given folders and all the subfolders
     * Loads all the tests from the given directories and all the subdirectories
     * into mTestsList.
     *
     * @param dirRelativePath
     */
    private void loadTestsFromUrl(String dirRelativePath) {
        LinkedList<String> foldersList = new LinkedList<String>();
        foldersList.add(dirRelativePath);
    private void loadTestsFromUrl(String rootRelativePath) {
        LinkedList<String> directoriesList = new LinkedList<String>();
        directoriesList.add(rootRelativePath);

        String relativePath;
        String itemName;
        while (!foldersList.isEmpty()) {
            relativePath = foldersList.removeFirst();
        while (!directoriesList.isEmpty()) {
            relativePath = directoriesList.removeFirst();

            for (String folderRelativePath : FsUtils.getLayoutTestsDirContents(relativePath,
                    false, true)) {
                itemName = new File(folderRelativePath).getName();
            List<String> dirRelativePaths = FsUtils.getLayoutTestsDirContents(relativePath, false, true);
            if (dirRelativePaths != null) {
                for (String dirRelativePath : dirRelativePaths) {
                    itemName = new File(dirRelativePath).getName();
                    if (FileFilter.isTestDir(itemName)) {
                    foldersList.add(folderRelativePath);
                        directoriesList.add(dirRelativePath);
                    }
                }
            }

            for (String testRelativePath : FsUtils.getLayoutTestsDirContents(relativePath,
                    false, false)) {
            List<String> testRelativePaths = FsUtils.getLayoutTestsDirContents(relativePath, false, false);
            if (testRelativePaths != null) {
                for (String testRelativePath : testRelativePaths) {
                    itemName = new File(testRelativePath).getName();
                    if (FileFilter.isTestFile(itemName)) {
                    /** We chose to skip all the tests that are expected to crash. */
                        /** We choose to skip all the tests that are expected to crash. */
                        if (!mFileFilter.isCrash(testRelativePath)) {
                            mTestsList.add(testRelativePath);
                        } else {
@@ -107,3 +111,4 @@ public class TestsListPreloaderThread extends Thread {
            }
        }
    }
}
+5 −10
Original line number Diff line number Diff line
@@ -40,15 +40,10 @@ public class AdbUtils {
     * remote machine. This can be achieved by calling configureSocket()
     *
     * @return a socket that can be configured to link to remote machine
     * @throws IOException
     */
    public static Socket createSocket() {
        Socket socket = null;
        try {
            socket = new Socket(ADB_HOST, ADB_PORT);
        } catch (IOException e) {
            Log.e(LOG_TAG, "Creation failed.", e);
        }
        return socket;
    public static Socket createSocket() throws IOException{
        return new Socket(ADB_HOST, ADB_PORT);
    }

    /**
@@ -72,7 +67,7 @@ public class AdbUtils {
        outputStream.write(cmd.getBytes());
        int read = inputStream.read(buf);
        if (read != ADB_RESPONSE_SIZE || !ADB_OK.equals(new String(buf))) {
            Log.w(LOG_TAG, "adb cmd faild.");
            Log.w(LOG_TAG, "adb cmd failed.");
            return false;
        }
        return true;
+6 −7
Original line number Diff line number Diff line
@@ -93,7 +93,8 @@ public class ConnectionHandler {

    private OnFinishedCallback mOnFinishedCallback;

    public ConnectionHandler(String remoteMachineIp, int port, Socket fromSocket, Socket toSocket) {
    public ConnectionHandler(String remoteMachineIp, int port, Socket fromSocket, Socket toSocket)
            throws IOException {
        mRemoteMachineIpAddress = remoteMachineIp;
        mPort = port;

@@ -105,14 +106,12 @@ public class ConnectionHandler {
            mToSocketInputStream = mToSocket.getInputStream();
            mFromSocketOutputStream = mFromSocket.getOutputStream();
            mToSocketOutputStream = mToSocket.getOutputStream();
            if (!AdbUtils.configureConnection(mToSocketInputStream, mToSocketOutputStream,
                    mRemoteMachineIpAddress, mPort)) {
                throw new IOException("Configuring socket failed!");
            }
            AdbUtils.configureConnection(mToSocketInputStream, mToSocketOutputStream,
                    mRemoteMachineIpAddress, mPort);
        } catch (IOException e) {
            Log.e(LOG_TAG, "Unable to start ConnectionHandler", e);
            closeStreams();
            return;
            throw e;
        }

        mFromToPipe = new SocketPipeThread(mFromSocketInputStream, mToSocketOutputStream);
+15 −12
Original line number Diff line number Diff line
@@ -61,7 +61,6 @@ public class Forwarder extends Thread {
    public void run() {
        while (true) {
            Socket localSocket;
            Socket remoteSocket;
            try {
                localSocket = mServerSocket.accept();
            } catch (IOException e) {
@@ -70,24 +69,28 @@ public class Forwarder extends Thread {
                break;
            }

            Socket remoteSocket = null;
            final ConnectionHandler connectionHandler;
            try {
                remoteSocket = AdbUtils.createSocket();

            if (remoteSocket == null) {
                connectionHandler = new ConnectionHandler(
                        mRemoteMachineIpAddress, mPort, localSocket, remoteSocket);
            } catch (IOException exception) {
                try {
                    localSocket.close();
                } catch (IOException e) {
                    Log.e(LOG_TAG, "mPort=" + mPort, e);
                }

                Log.e(LOG_TAG, "run(): mPort= " + mPort + " Failed to start forwarding from " +
                        localSocket);
                if (remoteSocket != null) {
                    try {
                        remoteSocket.close();
                    } catch (IOException e) {
                        Log.e(LOG_TAG, "mPort=" + mPort, e);
                    }
                }
                continue;
            }

            final ConnectionHandler connectionHandler =
                    new ConnectionHandler(mRemoteMachineIpAddress, mPort, localSocket,
                            remoteSocket);

            /**
             * We have to close the sockets after the ConnectionHandler finishes, so we
             * don't get "Too may open files" exception. We also remove the ConnectionHandler
Loading