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

Commit 55efea25 authored by Mukesh Agrawal's avatar Mukesh Agrawal Committed by Gerrit Code Review
Browse files

Merge changes I5c16c650,I3151fb6b

* changes:
  StateMachine: make toString() terser
  utiltests: add script to run tests
parents 6ba7c54a 47e1c7a0
Loading
Loading
Loading
Loading
+9 −8
Original line number Diff line number Diff line
@@ -2070,8 +2070,6 @@ public class StateMachine {
     * @param args
     */
    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
        // Cannot just invoke pw.println(this.toString()) because if the
        // resulting string is to long it won't be displayed.
        pw.println(getName() + ":");
        pw.println(" total records=" + getLogRecCount());
        for (int i = 0; i < getLogRecSize(); i++) {
@@ -2083,12 +2081,15 @@ public class StateMachine {

    @Override
    public String toString() {
        StringWriter sr = new StringWriter();
        PrintWriter pr = new PrintWriter(sr);
        dump(null, pr, null);
        pr.flush();
        pr.close();
        return sr.toString();
        String name = "(null)";
        String state = "(null)";
        try {
            name = mName.toString();
            state = mSmHandler.getCurrentState().getName().toString();
        } catch (NullPointerException npe) {
            // Will use default(s) initialized above.
        }
        return "name=" + name + " state=" + state;
    }

    /**
+24 −0
Original line number Diff line number Diff line
#!/usr/bin/env bash

if [ -z $ANDROID_BUILD_TOP ]; then
  echo "You need to source and lunch before you can use this script"
  exit 1
fi

echo "Running tests"

set -e # fail early

echo "+ mmma -j32 $ANDROID_BUILD_TOP/frameworks/base/core/tests/utiltests"
# NOTE Don't actually run the command above since this shell doesn't inherit functions from the
#      caller.
make -j32 -C $ANDROID_BUILD_TOP -f build/core/main.mk MODULES-IN-frameworks-base-core-tests-utiltests

set -x # print commands

adb root
adb wait-for-device

adb install -r -g "$OUT/data/app/FrameworksUtilTests/FrameworksUtilTests.apk"

adb shell am instrument -w "$@" 'com.android.frameworks.utiltests/android.support.test.runner.AndroidJUnitRunner'
+60 −0
Original line number Diff line number Diff line
@@ -79,6 +79,66 @@ public class StateMachineTest extends TestCase {
        }
    }

    /**
     * Tests {@link StateMachine#toString()}.
     */
    class StateMachineToStringTest extends StateMachine {
        StateMachineToStringTest(String name) {
            super(name);
        }
    }

    class ExampleState extends State {
        String mName;

        ExampleState(String name) {
            mName = name;
        }

        @Override
        public String getName() {
            return mName;
        }
    }

    @SmallTest
    public void testToStringSucceedsEvenIfMachineHasNoStates() throws Exception {
        StateMachine stateMachine = new StateMachineToStringTest("TestStateMachine");
        assertTrue(stateMachine.toString().contains("TestStateMachine"));
    }

    @SmallTest
    public void testToStringSucceedsEvenIfStateHasNoName() throws Exception {
        StateMachine stateMachine = new StateMachineToStringTest("TestStateMachine");
        State exampleState = new ExampleState(null);
        stateMachine.addState(exampleState);
        stateMachine.setInitialState(exampleState);
        stateMachine.start();
        assertTrue(stateMachine.toString().contains("TestStateMachine"));
        assertTrue(stateMachine.toString().contains("(null)"));
    }

    @SmallTest
    public void testToStringIncludesMachineAndStateNames() throws Exception {
        StateMachine stateMachine = new StateMachineToStringTest("TestStateMachine");
        State exampleState = new ExampleState("exampleState");
        stateMachine.addState(exampleState);
        stateMachine.setInitialState(exampleState);
        stateMachine.start();
        assertTrue(stateMachine.toString().contains("TestStateMachine"));
        assertTrue(stateMachine.toString().contains("exampleState"));
    }

    @SmallTest
    public void testToStringDoesNotContainMultipleLines() throws Exception {
        StateMachine stateMachine = new StateMachineToStringTest("TestStateMachine");
        State exampleState = new ExampleState("exampleState");
        stateMachine.addState(exampleState);
        stateMachine.setInitialState(exampleState);
        stateMachine.start();
        assertFalse(stateMachine.toString().contains("\n"));
    }

    /**
     * Tests {@link StateMachine#quit()}.
     */