fune/mobile/android/mach_commands.py
Nick Alexander 07e696fad9 Backed out changesets fb5765dffe01 and 0447429a5627 (Bug 1219058). r=me
I realize I wanted to shorten these paths in response to review
comments.  I'll reland shortly.

--HG--
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/Actions.java => build/mobile/robocop/Actions.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/Assert.java => build/mobile/robocop/Assert.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/Driver.java => build/mobile/robocop/Driver.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/Element.java => build/mobile/robocop/Element.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/FennecInstrumentationTestRunner.java => build/mobile/robocop/FennecInstrumentationTestRunner.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/FennecMochitestAssert.java => build/mobile/robocop/FennecMochitestAssert.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/FennecNativeActions.java => build/mobile/robocop/FennecNativeActions.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/FennecNativeDriver.java => build/mobile/robocop/FennecNativeDriver.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/FennecNativeElement.java => build/mobile/robocop/FennecNativeElement.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/FennecTalosAssert.java => build/mobile/robocop/FennecTalosAssert.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/LaunchFennecWithConfigurationActivity.java => build/mobile/robocop/LaunchFennecWithConfigurationActivity.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/PaintedSurface.java => build/mobile/robocop/PaintedSurface.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/RoboCopException.java => build/mobile/robocop/RoboCopException.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/RobocopShare1.java => build/mobile/robocop/RobocopShare1.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/RobocopShare2.java => build/mobile/robocop/RobocopShare2.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/RobocopUtils.java => build/mobile/robocop/RobocopUtils.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/StructuredLogger.java => build/mobile/robocop/StructuredLogger.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/AboutHomeTest.java => mobile/android/tests/browser/robocop/AboutHomeTest.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/BaseRobocopTest.java => mobile/android/tests/browser/robocop/BaseRobocopTest.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/BaseTest.java => mobile/android/tests/browser/robocop/BaseTest.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/ContentContextMenuTest.java => mobile/android/tests/browser/robocop/ContentContextMenuTest.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/ContentProviderTest.java => mobile/android/tests/browser/robocop/ContentProviderTest.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/DatabaseHelper.java => mobile/android/tests/browser/robocop/DatabaseHelper.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/JavascriptTest.java => mobile/android/tests/browser/robocop/JavascriptTest.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/MotionEventHelper.java => mobile/android/tests/browser/robocop/MotionEventHelper.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/MotionEventReplayer.java => mobile/android/tests/browser/robocop/MotionEventReplayer.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/PixelTest.java => mobile/android/tests/browser/robocop/PixelTest.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/SelectionHandlerTest.java => mobile/android/tests/browser/robocop/SelectionHandlerTest.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/SessionTest.java => mobile/android/tests/browser/robocop/SessionTest.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/StringHelper.java => mobile/android/tests/browser/robocop/StringHelper.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/UITest.java => mobile/android/tests/browser/robocop/UITest.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/UITestContext.java => mobile/android/tests/browser/robocop/UITestContext.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/components/AboutHomeComponent.java => mobile/android/tests/browser/robocop/components/AboutHomeComponent.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/components/AppMenuComponent.java => mobile/android/tests/browser/robocop/components/AppMenuComponent.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/components/BaseComponent.java => mobile/android/tests/browser/robocop/components/BaseComponent.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/components/GeckoViewComponent.java => mobile/android/tests/browser/robocop/components/GeckoViewComponent.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/components/TabStripComponent.java => mobile/android/tests/browser/robocop/components/TabStripComponent.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/components/ToolbarComponent.java => mobile/android/tests/browser/robocop/components/ToolbarComponent.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/helpers/AssertionHelper.java => mobile/android/tests/browser/robocop/helpers/AssertionHelper.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/helpers/DeviceHelper.java => mobile/android/tests/browser/robocop/helpers/DeviceHelper.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/helpers/FrameworkHelper.java => mobile/android/tests/browser/robocop/helpers/FrameworkHelper.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/helpers/GeckoClickHelper.java => mobile/android/tests/browser/robocop/helpers/GeckoClickHelper.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/helpers/GeckoHelper.java => mobile/android/tests/browser/robocop/helpers/GeckoHelper.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/helpers/HelperInitializer.java => mobile/android/tests/browser/robocop/helpers/HelperInitializer.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/helpers/JavascriptBridge.java => mobile/android/tests/browser/robocop/helpers/JavascriptBridge.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/helpers/JavascriptMessageParser.java => mobile/android/tests/browser/robocop/helpers/JavascriptMessageParser.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/helpers/NavigationHelper.java => mobile/android/tests/browser/robocop/helpers/NavigationHelper.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/helpers/TextInputHelper.java => mobile/android/tests/browser/robocop/helpers/TextInputHelper.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/helpers/WaitHelper.java => mobile/android/tests/browser/robocop/helpers/WaitHelper.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testANRReporter.java => mobile/android/tests/browser/robocop/testANRReporter.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testAboutHomePageNavigation.java => mobile/android/tests/browser/robocop/testAboutHomePageNavigation.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testAboutHomeVisibility.java => mobile/android/tests/browser/robocop/testAboutHomeVisibility.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testAboutPage.java => mobile/android/tests/browser/robocop/testAboutPage.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testAddSearchEngine.java => mobile/android/tests/browser/robocop/testAddSearchEngine.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testAddonManager.java => mobile/android/tests/browser/robocop/testAddonManager.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testAdobeFlash.java => mobile/android/tests/browser/robocop/testAdobeFlash.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testAppMenuPathways.java => mobile/android/tests/browser/robocop/testAppMenuPathways.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testAwesomebar.java => mobile/android/tests/browser/robocop/testAwesomebar.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testAxisLocking.java => mobile/android/tests/browser/robocop/testAxisLocking.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testBackButtonInEditMode.java => mobile/android/tests/browser/robocop/testBackButtonInEditMode.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testBookmark.java => mobile/android/tests/browser/robocop/testBookmark.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testBookmarkFolders.java => mobile/android/tests/browser/robocop/testBookmarkFolders.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testBookmarkKeyword.java => mobile/android/tests/browser/robocop/testBookmarkKeyword.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testBookmarklets.java => mobile/android/tests/browser/robocop/testBookmarklets.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testBookmarksPanel.java => mobile/android/tests/browser/robocop/testBookmarksPanel.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testBrowserDiscovery.java => mobile/android/tests/browser/robocop/testBrowserDiscovery.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testBrowserProvider.java => mobile/android/tests/browser/robocop/testBrowserProvider.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testBrowserSearchVisibility.java => mobile/android/tests/browser/robocop/testBrowserSearchVisibility.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testCheck2.java => mobile/android/tests/browser/robocop/testCheck2.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testCheck3.java => mobile/android/tests/browser/robocop/testCheck3.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testClearPrivateData.java => mobile/android/tests/browser/robocop/testClearPrivateData.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testDBUtils.java => mobile/android/tests/browser/robocop/testDBUtils.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testDistribution.java => mobile/android/tests/browser/robocop/testDistribution.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testDoorHanger.java => mobile/android/tests/browser/robocop/testDoorHanger.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testEventDispatcher.java => mobile/android/tests/browser/robocop/testEventDispatcher.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testFilePicker.java => mobile/android/tests/browser/robocop/testFilePicker.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testFilterOpenTab.java => mobile/android/tests/browser/robocop/testFilterOpenTab.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testFindInPage.java => mobile/android/tests/browser/robocop/testFindInPage.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testFlingCorrectness.java => mobile/android/tests/browser/robocop/testFlingCorrectness.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testFormHistory.java => mobile/android/tests/browser/robocop/testFormHistory.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testGeckoProfile.java => mobile/android/tests/browser/robocop/testGeckoProfile.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testGeckoRequest.java => mobile/android/tests/browser/robocop/testGeckoRequest.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testGetUserMedia.java => mobile/android/tests/browser/robocop/testGetUserMedia.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testHistory.java => mobile/android/tests/browser/robocop/testHistory.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testHistoryService.java => mobile/android/tests/browser/robocop/testHistoryService.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testHomeBanner.java => mobile/android/tests/browser/robocop/testHomeBanner.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testHomeListsProvider.java => mobile/android/tests/browser/robocop/testHomeListsProvider.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testImportFromAndroid.java => mobile/android/tests/browser/robocop/testImportFromAndroid.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testInputConnection.java => mobile/android/tests/browser/robocop/testInputConnection.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testInputSelections.java => mobile/android/tests/browser/robocop/testInputSelections.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testInputUrlBar.java => mobile/android/tests/browser/robocop/testInputUrlBar.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testJarReader.java => mobile/android/tests/browser/robocop/testJarReader.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testJavascriptBridge.java => mobile/android/tests/browser/robocop/testJavascriptBridge.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testLinkContextMenu.java => mobile/android/tests/browser/robocop/testLinkContextMenu.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testLoad.java => mobile/android/tests/browser/robocop/testLoad.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testMailToContextMenu.java => mobile/android/tests/browser/robocop/testMailToContextMenu.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testMasterPassword.java => mobile/android/tests/browser/robocop/testMasterPassword.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testMozPay.java => mobile/android/tests/browser/robocop/testMozPay.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testNativeCrypto.java => mobile/android/tests/browser/robocop/testNativeCrypto.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testNewTab.java => mobile/android/tests/browser/robocop/testNewTab.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testOSLocale.java => mobile/android/tests/browser/robocop/testOSLocale.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testOrderedBroadcast.java => mobile/android/tests/browser/robocop/testOrderedBroadcast.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testPanCorrectness.java => mobile/android/tests/browser/robocop/testPanCorrectness.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testPasswordEncrypt.java => mobile/android/tests/browser/robocop/testPasswordEncrypt.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testPasswordProvider.java => mobile/android/tests/browser/robocop/testPasswordProvider.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testPermissions.java => mobile/android/tests/browser/robocop/testPermissions.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testPictureLinkContextMenu.java => mobile/android/tests/browser/robocop/testPictureLinkContextMenu.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testPrefsObserver.java => mobile/android/tests/browser/robocop/testPrefsObserver.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testPrivateBrowsing.java => mobile/android/tests/browser/robocop/testPrivateBrowsing.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testPromptGridInput.java => mobile/android/tests/browser/robocop/testPromptGridInput.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testReaderModeTitle.java => mobile/android/tests/browser/robocop/testReaderModeTitle.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testReadingListCache.java => mobile/android/tests/browser/robocop/testReadingListCache.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testReadingListProvider.java => mobile/android/tests/browser/robocop/testReadingListProvider.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testRestrictions.java => mobile/android/tests/browser/robocop/testRestrictions.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testSearchHistoryProvider.java => mobile/android/tests/browser/robocop/testSearchHistoryProvider.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testSearchSuggestions.java => mobile/android/tests/browser/robocop/testSearchSuggestions.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testSelectionCarets.java => mobile/android/tests/browser/robocop/testSelectionCarets.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testSelectionHandler.java => mobile/android/tests/browser/robocop/testSelectionHandler.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testSessionHistory.java => mobile/android/tests/browser/robocop/testSessionHistory.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testSessionOOMRestore.java => mobile/android/tests/browser/robocop/testSessionOOMRestore.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testSessionOOMSave.java => mobile/android/tests/browser/robocop/testSessionOOMSave.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testSettingsMenuItems.java => mobile/android/tests/browser/robocop/testSettingsMenuItems.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testShareLink.java => mobile/android/tests/browser/robocop/testShareLink.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testSnackbarAPI.java => mobile/android/tests/browser/robocop/testSnackbarAPI.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testStateWhileLoading.java => mobile/android/tests/browser/robocop/testStateWhileLoading.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testStumblerSetting.java => mobile/android/tests/browser/robocop/testStumblerSetting.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testSystemPages.java => mobile/android/tests/browser/robocop/testSystemPages.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testTextareaSelections.java => mobile/android/tests/browser/robocop/testTextareaSelections.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testThumbnails.java => mobile/android/tests/browser/robocop/testThumbnails.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testTitleBar.java => mobile/android/tests/browser/robocop/testTitleBar.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testTrackingProtection.java => mobile/android/tests/browser/robocop/testTrackingProtection.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testUITelemetry.java => mobile/android/tests/browser/robocop/testUITelemetry.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testVideoControls.java => mobile/android/tests/browser/robocop/testVideoControls.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/testVkbOverlap.java => mobile/android/tests/browser/robocop/testVkbOverlap.java
rename : mobile/android/tests/browser/robocop/src/androidTest/java/org/mozilla/gecko/tests/test_bug720538.java => mobile/android/tests/browser/robocop/test_bug720538.java
extra : commitid : JuX101ydcX
extra : amend_source : 23e693487b6b66936bbcf679c3a3869271962a71
2015-10-28 14:47:14 -07:00

343 lines
15 KiB
Python

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
from __future__ import absolute_import, print_function, unicode_literals
import argparse
import logging
import os
import mozpack.path as mozpath
from mozbuild.base import (
MachCommandBase,
MachCommandConditions as conditions,
)
from mozbuild.util import (
FileAvoidWrite,
)
from mach.decorators import (
CommandArgument,
CommandProvider,
Command,
SubCommand,
)
SUCCESS = '''
You should be ready to build with Gradle and import into IntelliJ! Test with
./mach gradle build
and in IntelliJ select File > Import project... and choose
{topobjdir}/mobile/android/gradle
'''
@CommandProvider
class MachCommands(MachCommandBase):
@Command('android', category='devenv',
description='Run the Android package manager tool.',
conditions=[conditions.is_android])
@CommandArgument('args', nargs=argparse.REMAINDER)
def android(self, args):
# Avoid logging the command
self.log_manager.terminal_handler.setLevel(logging.CRITICAL)
return self.run_process(
[os.path.join(self.substs['ANDROID_TOOLS'], 'android')] + args,
pass_thru=True, # Allow user to run gradle interactively.
ensure_exit_code=False, # Don't throw on non-zero exit code.
cwd=mozpath.join(self.topsrcdir))
@Command('gradle', category='devenv',
description='Run gradle.',
conditions=[conditions.is_android])
@CommandArgument('args', nargs=argparse.REMAINDER)
def gradle(self, args):
# Avoid logging the command
self.log_manager.terminal_handler.setLevel(logging.CRITICAL)
code = self.gradle_install(quiet=True)
if code:
return code
return self.run_process(['./gradlew'] + args,
pass_thru=True, # Allow user to run gradle interactively.
ensure_exit_code=False, # Don't throw on non-zero exit code.
cwd=mozpath.join(self.topobjdir, 'mobile', 'android', 'gradle'))
@Command('gradle-install', category='devenv',
description='Install gradle environment.',
conditions=[conditions.is_android])
def gradle_install(self, quiet=False):
import mozpack.manifests
m = mozpack.manifests.InstallManifest()
def srcdir(dst, src):
m.add_symlink(os.path.join(self.topsrcdir, src), dst)
srcdir('build.gradle', 'mobile/android/gradle/build.gradle')
srcdir('settings.gradle', 'mobile/android/gradle/settings.gradle')
m.add_pattern_copy(os.path.join(self.topsrcdir, 'mobile/android/gradle/gradle/wrapper'), '**', 'gradle/wrapper')
m.add_copy(os.path.join(self.topsrcdir, 'mobile/android/gradle/gradlew'), 'gradlew')
defines = {
'topsrcdir': self.topsrcdir,
'topobjdir': self.topobjdir,
'ANDROID_SDK_ROOT': self.substs['ANDROID_SDK_ROOT'],
}
m.add_preprocess(os.path.join(self.topsrcdir, 'mobile/android/gradle/gradle.properties.in'),
'gradle.properties',
defines=defines,
deps=os.path.join(self.topobjdir, 'mobile/android/gradle/.deps/gradle.properties.pp'))
m.add_preprocess(os.path.join(self.topsrcdir, 'mobile/android/gradle/local.properties.in'),
'local.properties',
defines=defines,
deps=os.path.join(self.topobjdir, 'mobile/android/gradle/.deps/local.properties.pp'))
srcdir('thirdparty/build.gradle', 'mobile/android/gradle/thirdparty/build.gradle')
srcdir('thirdparty/src/main/AndroidManifest.xml', 'mobile/android/gradle/thirdparty/AndroidManifest.xml')
srcdir('thirdparty/src/main/java', 'mobile/android/thirdparty')
srcdir('omnijar/build.gradle', 'mobile/android/gradle/omnijar/build.gradle')
srcdir('omnijar/src/main/java/locales', 'mobile/android/locales')
srcdir('omnijar/src/main/java/chrome', 'mobile/android/chrome')
srcdir('omnijar/src/main/java/components', 'mobile/android/components')
srcdir('omnijar/src/main/java/modules', 'mobile/android/modules')
srcdir('omnijar/src/main/java/themes', 'mobile/android/themes')
srcdir('app/build.gradle', 'mobile/android/gradle/app/build.gradle')
srcdir('app/src/androidTest/res', 'build/mobile/robocop/res')
srcdir('app/src/androidTest/assets', 'mobile/android/tests/browser/robocop/assets')
# Test code.
srcdir('app/src/robocop_harness/org/mozilla/gecko', 'build/mobile/robocop')
srcdir('app/src/robocop/org/mozilla/gecko/tests', 'mobile/android/tests/browser/robocop')
srcdir('app/src/background', 'mobile/android/tests/background/junit3/src')
srcdir('app/src/browser', 'mobile/android/tests/browser/junit3/src')
srcdir('app/src/javaaddons', 'mobile/android/tests/javaaddons/src')
# Test libraries.
srcdir('app/libs', 'build/mobile/robocop')
srcdir('base/build.gradle', 'mobile/android/gradle/base/build.gradle')
srcdir('base/lint.xml', 'mobile/android/gradle/base/lint.xml')
srcdir('base/src/main/AndroidManifest.xml', 'mobile/android/gradle/base/AndroidManifest.xml')
srcdir('base/src/main/java/org/mozilla/gecko', 'mobile/android/base')
srcdir('base/src/main/java/org/mozilla/mozstumbler', 'mobile/android/stumbler/java/org/mozilla/mozstumbler')
srcdir('base/src/main/java/org/mozilla/search', 'mobile/android/search/java/org/mozilla/search')
srcdir('base/src/main/java/org/mozilla/javaaddons', 'mobile/android/javaaddons/java/org/mozilla/javaaddons')
srcdir('base/src/webrtc_audio_device/java', 'media/webrtc/trunk/webrtc/modules/audio_device/android/java/src')
srcdir('base/src/webrtc_video_capture/java', 'media/webrtc/trunk/webrtc/modules/video_capture/android/java/src')
srcdir('base/src/webrtc_video_render/java', 'media/webrtc/trunk/webrtc/modules/video_render/android/java/src')
srcdir('base/src/main/res', 'mobile/android/base/resources')
srcdir('base/src/main/assets', 'mobile/android/app/assets')
srcdir('base/src/crashreporter/res', 'mobile/android/base/crashreporter/res')
srcdir('base/src/branding/res', os.path.join(self.substs['MOZ_BRANDING_DIRECTORY'], 'res'))
# JUnit 4 test code.
srcdir('base/src/background_junit4', 'mobile/android/tests/background/junit4/src')
srcdir('base/resources/background_junit4', 'mobile/android/tests/background/junit4/resources')
manifest_path = os.path.join(self.topobjdir, 'mobile', 'android', 'gradle.manifest')
with FileAvoidWrite(manifest_path) as f:
m.write(fileobj=f)
self.virtualenv_manager.ensure()
code = self.run_process([
self.virtualenv_manager.python_path,
os.path.join(self.topsrcdir, 'python/mozbuild/mozbuild/action/process_install_manifest.py'),
'--no-remove',
'--no-remove-all-directory-symlinks',
'--no-remove-empty-directories',
os.path.join(self.topobjdir, 'mobile', 'android', 'gradle'),
manifest_path],
pass_thru=True, # Allow user to run gradle interactively.
ensure_exit_code=False, # Don't throw on non-zero exit code.
cwd=mozpath.join(self.topsrcdir, 'mobile', 'android'))
if not quiet:
if not code:
print(SUCCESS.format(topobjdir=self.topobjdir))
return code
class ArtifactSubCommand(SubCommand):
def __init__(self, *args, **kwargs):
SubCommand.__init__(self, *args, **kwargs)
def __call__(self, func):
after = SubCommand.__call__(self, func)
args = [
CommandArgument('--tree', metavar='TREE', type=str,
help='Firefox tree.'),
CommandArgument('--job', metavar='JOB', choices=['android-api-11', 'android-x86'],
help='Build job.'),
]
for arg in args:
after = arg(after)
return after
@CommandProvider
class PackageFrontend(MachCommandBase):
"""Fetch and install binary artifacts from Mozilla automation."""
@Command('artifact', category='post-build',
description='Use pre-built artifacts to build Fennec.',
conditions=[
conditions.is_android, # mobile/android only for now.
conditions.is_hg, # mercurial only for now.
])
def artifact(self):
'''Download, cache, and install pre-built binary artifacts to build Fennec.
Invoke |mach artifact| before each |mach package| to freshen your installed
binary libraries. That is, package using
mach artifact install && mach package
to download, cache, and install binary artifacts from Mozilla automation,
replacing whatever may be in your object directory. Use |mach artifact last|
to see what binary artifacts were last used.
Never build libxul again!
'''
pass
def _make_artifacts(self, tree=None, job=None):
self.log_manager.terminal_handler.setLevel(logging.INFO)
self._activate_virtualenv()
self.virtualenv_manager.install_pip_package('pylru==1.0.9')
self.virtualenv_manager.install_pip_package('taskcluster==0.0.16')
self.virtualenv_manager.install_pip_package('mozregression==1.0.2')
state_dir = self._mach_context.state_dir
cache_dir = os.path.join(state_dir, 'package-frontend')
import which
hg = which.which('hg')
# Absolutely must come after the virtualenv is populated!
from mozbuild.artifacts import Artifacts
artifacts = Artifacts(tree, job, log=self.log, cache_dir=cache_dir, hg=hg)
return artifacts
def _compute_defaults(self, tree=None, job=None):
# Firefox front-end developers mostly use fx-team. Post auto-land, make this central.
tree = tree or 'fx-team'
if job:
return (tree, job)
if self.substs['ANDROID_CPU_ARCH'] == 'x86':
return (tree, 'android-x86')
return (tree, 'android-api-11')
@ArtifactSubCommand('artifact', 'install',
'Install a good pre-built artifact.')
@CommandArgument('source', metavar='SRC', nargs='?', type=str,
help='Where to fetch and install artifacts from. Can be omitted, in '
'which case the current hg repository is inspected; an hg revision; '
'a remote URL; or a local file.',
default=None)
def artifact_install(self, source=None, tree=None, job=None):
tree, job = self._compute_defaults(tree, job)
artifacts = self._make_artifacts(tree=tree, job=job)
return artifacts.install_from(source, self.distdir)
@ArtifactSubCommand('artifact', 'last',
'Print the last pre-built artifact installed.')
def artifact_print_last(self, tree=None, job=None):
tree, job = self._compute_defaults(tree, job)
artifacts = self._make_artifacts(tree=tree, job=job)
artifacts.print_last()
return 0
@ArtifactSubCommand('artifact', 'print-cache',
'Print local artifact cache for debugging.')
def artifact_print_cache(self, tree=None, job=None):
tree, job = self._compute_defaults(tree, job)
artifacts = self._make_artifacts(tree=tree, job=job)
artifacts.print_cache()
return 0
@ArtifactSubCommand('artifact', 'clear-cache',
'Delete local artifacts and reset local artifact cache.')
def artifact_clear_cache(self, tree=None, job=None):
tree, job = self._compute_defaults(tree, job)
artifacts = self._make_artifacts(tree=tree, job=job)
artifacts.clear_cache()
return 0
@CommandProvider
class AndroidEmulatorCommands(MachCommandBase):
"""
Run the Android emulator with one of the AVDs used in the Mozilla
automated test environment. If necessary, the AVD is fetched from
the tooltool server and installed.
"""
@Command('android-emulator', category='devenv',
conditions=[],
description='Run the Android emulator with an AVD from test automation.')
@CommandArgument('--version', metavar='VERSION', choices=['2.3', '4.3', 'x86'],
help='Specify Android version to run in emulator. One of "2.3", "4.3", or "x86".',
default='4.3')
@CommandArgument('--wait', action='store_true',
help='Wait for emulator to be closed.')
@CommandArgument('--force-update', action='store_true',
help='Update AVD definition even when AVD is already installed.')
@CommandArgument('--verbose', action='store_true',
help='Log informative status messages.')
def emulator(self, version, wait=False, force_update=False, verbose=False):
from mozrunner.devices.android_device import AndroidEmulator
emulator = AndroidEmulator(version, verbose, substs=self.substs)
if emulator.is_running():
# It is possible to run multiple emulators simultaneously, but:
# - if more than one emulator is using the same avd, errors may
# occur due to locked resources;
# - additional parameters must be specified when running tests,
# to select a specific device.
# To avoid these complications, allow just one emulator at a time.
self.log(logging.ERROR, "emulator", {},
"An Android emulator is already running.\n"
"Close the existing emulator and re-run this command.")
return 1
if not emulator.is_available():
self.log(logging.WARN, "emulator", {},
"Emulator binary not found.\n"
"Install the Android SDK and make sure 'emulator' is in your PATH.")
return 2
if not emulator.check_avd(force_update):
self.log(logging.INFO, "emulator", {},
"Fetching and installing AVD. This may take a few minutes...")
emulator.update_avd(force_update)
self.log(logging.INFO, "emulator", {},
"Starting Android emulator running %s..." %
emulator.get_avd_description())
emulator.start()
if emulator.wait_for_start():
self.log(logging.INFO, "emulator", {},
"Android emulator is running.")
else:
# This is unusual but the emulator may still function.
self.log(logging.WARN, "emulator", {},
"Unable to verify that emulator is running.")
if wait:
self.log(logging.INFO, "emulator", {},
"Waiting for Android emulator to close...")
rc = emulator.wait()
if rc is not None:
self.log(logging.INFO, "emulator", {},
"Android emulator completed with return code %d." % rc)
else:
self.log(logging.WARN, "emulator", {},
"Unable to retrieve Android emulator return code.")
return 0