| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
This makes the new simpler scheme pretty much free.
I've also made a start on simplifying the make rules, though there's more we
can do, and I'll look at that next.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Place pre-built .jar files in our lib/ directory, and dex/push them on demand.
Change DalvikRunner to somewhat reduce the number of different classpaths in
play. My feeling is that we just want one true classpath: we should build with
it on the host, we should run with it on the host, we should dex everything on
it, we should upload everything to the device, and we should run with it on the
device.
Also add a convenience script for running DalvikRunner. ("Vogar" is the
proposed open source name for DalvikRunner, which really isn't as
dalvikvm-specific as the name might imply.)
There's a noticeable performance regression here, so my next change will be to
add a cache.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Our continuous build has been failing to complete lately. See:
http://jwilson.mtv.corp.google.com:8080/job/master_passion/274/consoleFull
In addition to this problem the continuous build is compiling many
more tests ahead-of-time than we were originally - previously we
would only have up to 4 tests ready-to-run at any given time. With
this change the ExecutorCompletionService was building and installing
all of the tests eagerly.
I believe the problem might be a mismatch between how the BlockingQueue
and the ExecutorCompletionService select which order to return futures.
By removing the ExecutorCompletionService I remove the opportunity for
such a conflict!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changed EnvironmentDevice.prepare to waitForDevice and
waitForNonEmptyDirectory("/sdcard") before proceeding to fix problem with
running immediately after "fastboot flashall"
dalvik/libcore/tools/runner/java/dalvik/runner/EnvironmentDevice.java
Added Adb.waitForDevice and Adb.waitForNonEmptyDirectory
dalvik/libcore/tools/runner/java/dalvik/runner/Adb.java
Added Command.executeWithTimeout based on code refactored from Mode.java
dalvik/libcore/tools/runner/java/dalvik/runner/Command.java
dalvik/libcore/tools/runner/java/dalvik/runner/Mode.java
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SUMMARY:
- Change TestRunner subclasses to instead implement a Runner interface
- Cleanup runtime classpath generation
- Misc improvements
DETAILS:
Change TestRunner subclasses to instead implement a Runner interface
*Runner classes now implement the new Runner interface instead of
extending TestRunner. prepareTest/test now take a "Class
testClass" instead of accessing a "String testClass" from the
superclass. This also means that all their "static void main"
methods are removed and replaced with a single main method in
TestRunner. TestActivity can now instantiate a TestRunner and call
its "boolean run()" method to execute tests and retrieve their
SUCCESS/FAILURE status via the return value, allowing the removeal
of TestRunner.success. Mode now needs to explicitly include
TestRunner.java in the list of code to compile because it no
longer is implicitly found by compiling its former subclasses.
java/dalvik/runner/TestRunner.java
java/dalvik/runner/Runner.java
java/dalvik/runner/CaliperRunner.java
java/dalvik/runner/JUnitRunner.java
java/dalvik/runner/JtregRunner.java
java/dalvik/runner/MainRunner.java
java/dalvik/runner/Mode.java
CodeFinder.getRunnerClass now returns a Runner, not a TestRunner
java/dalvik/runner/CodeFinder.java
java/dalvik/runner/JUnitFinder.java
java/dalvik/runner/CaliperFinder.java
java/dalvik/runner/JtregFinder.java
java/dalvik/runner/MainFinder.java
Similarly, TestRun.runnerClass is now a Runner, not a TestRunner
java/dalvik/runner/TestRun.java
Move logic to run a test based on TestProperties.RUNNER_CLASS from
TestActivity to TestRunner since its now used in all cases, not
just the Activity case. TestActivity.ActivityRunner remains the
one subclass of TestRunner, accessing the TestRunner.run(...)
logic via super.run(...), allowing it to maintain its special
result file writing logic.
java/dalvik/runner/TestActivity.java
java/dalvik/runner/TestRunner.java
Moved writing of TestProperties.RUNNER_CLASS from ActivityMode now
that it is used for all Modes.
java/dalvik/runner/ActivityMode.java
java/dalvik/runner/Mode.java
Since CaliperRunner now has a "Class testClass", it uses the more
strongly typed Runner.main(Class<? extends Benchmark>, ...) API.
java/dalvik/runner/CaliperRunner.java
Fixing javadoc TestRunner->Runner
java/dalvik/runner/TestProperties.java
Adding new Runner class to the build.
Android.mk
Cleanup runtime classpath generation
Changed Mode.postCompileTest to return void instead of Classpath
to match Most.postCompileTestRunner. Removed passing test
classpath from compile to run via TestRun.testClasspath. Instead,
Vm.getRuntimeSupportClasspath now is used to compute full
classpath, instead of using the old TestRun.getTestClasspath in
Mode. Mode.compileTest now uses a boolean to indicate compilation
success, instead of null/non-null Classpath. TestRun.testClasspath
is now replaced with TestRun.testCompiled which is used to track
compilation success. In retrospect, it seems like using the
absense of a Classpath as an indication of compilation
success/failure seems like somewhat of a hack.
java/dalvik/runner/Mode.java
java/dalvik/runner/ActivityMode.java
java/dalvik/runner/DeviceDalvikVm.java
java/dalvik/runner/JavaVm.java
java/dalvik/runner/TestRun.java
New deviceDexFile to make sure dex file name generation stays
consistent between build time and compile time.
java/dalvik/runner/DeviceDalvikVm.java
Changed MainRunner implementation to more closely match JtregRunner
java/dalvik/runner/MainRunner.java
Misc improvements
Changed TestActivity to use a shutdown hook to catch when a test
calls System.exit so we can be sure to write a result file and not
simply wait for the timeout to catch our failure to return.
java/dalvik/runner/TestActivity.java
Changed Mkdir.mkdirs to use new Command().execute to get automatic
logging of command execution with --verbose
java/dalvik/runner/Mkdir.java
Improved javadoc
java/dalvik/runner/Mode.java
Fixed apparently misplaced @SuppressWarnings("unchecked")
java/dalvik/runner/OptionParser.java
Enabling warnings as errors and turning on unchecked warnings.
Android.mk
Made sure test script works with fresh device and improved logging
test-dalvik-runner.sh
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PathClassLoader.toString change
SUMMARY:
- PathClassLoader.toString prints path
- DalvikRunner --mode activity now working
- new DalvikRunner --no-clean vs --no-clean-after behavior
DETAILS
Dalvik runtime change
Changed PathClassLoader.toString to print the class loaders path
Also fixed variable name in commented out debug code
libcore/dalvik/src/main/java/dalvik/system/PathClassLoader.java
Dalvik Runner changes
Mode is the new abstract superclass of the existing Vm
class. ActivityMode is for the new Mode of running as a Activity
on the device. Vm is now a subclass of Mode and its JavaVm and
DeviceDalvikVm still exist although some code has been refactored
into the new Environment clases (see below)
libcore/tools/runner/java/dalvik/runner/Mode.java
libcore/tools/runner/java/dalvik/runner/ActivityMode.java
libcore/tools/runner/java/dalvik/runner/DeviceDalvikVm.java
libcore/tools/runner/java/dalvik/runner/JavaVm.java
libcore/tools/runner/java/dalvik/runner/Vm.java
Environment and its subclasses EnvironmentHost and
EnvironmentDevice allow us to reuse some common code between the
two different device modes (ActivityMode and
DeviceDalvikVm). Basically code that was more about where and how
to do things based on where the code was running as opposed to how
the code was running moved to the Environment classes. For
example, prepare() logic for /sdcard/ and ADB code in general.
libcore/tools/runner/java/dalvik/runner/DeviceDalvikVm.java
libcore/tools/runner/java/dalvik/runner/Environment.java
libcore/tools/runner/java/dalvik/runner/EnvironmentDevice.java
libcore/tools/runner/java/dalvik/runner/EnvironmentHost.java
libcore/tools/runner/java/dalvik/runner/JavaVm.java
libcore/tools/runner/java/dalvik/runner/Vm.java
Adding new files
libcore/tools/runner/Android.mk
Aapt is a wrapper for "aapt" similar to Adb and Dx
libcore/tools/runner/java/dalvik/runner/Aapt.java
Added Adb.install and Adb.uninstall methods
Changed from using File.toString to File.getPath for clarity
libcore/tools/runner/java/dalvik/runner/Adb.java
CodeFinder has been extended so that Driver can ask finders what
they need to build and run, specifically through the new
getRunnerJava and getRunnerClasspath. (As part of this
NamingPatternCodeFinder's runnerClass was changed to
getRunnerClass for consistency with the superclass.) This was
important for running as an Activity because we want to minimize
what we pack into the APK file because of the "dx --dex" runtime
and not just pull in all possible runners and supporting
libraries. TestRun objects also hold onto this information from
their finders.
libcore/tools/runner/java/dalvik/runner/Driver.java
libcore/tools/runner/java/dalvik/runner/CodeFinder.java
libcore/tools/runner/java/dalvik/runner/CaliperFinder.java
libcore/tools/runner/java/dalvik/runner/JUnitFinder.java
libcore/tools/runner/java/dalvik/runner/JtregFinder.java
libcore/tools/runner/java/dalvik/runner/MainFinder.java
libcore/tools/runner/java/dalvik/runner/NamingPatternCodeFinder.java
libcore/tools/runner/java/dalvik/runner/TestRun.java
TestRunner TestRunner's className is now testClass to clarifiy it
from the runnerClass.
libcore/tools/runner/java/dalvik/runner/TestRunner.java
libcore/tools/runner/java/dalvik/runner/CaliperRunner.java
libcore/tools/runner/java/dalvik/runner/JUnitRunner.java
libcore/tools/runner/java/dalvik/runner/JtregRunner.java
libcore/tools/runner/java/dalvik/runner/MainRunner.java
Classpath now has a Collection.of and Collection.addAll that take
a Collection<File> instead if just a File...
libcore/tools/runner/java/dalvik/runner/Classpath.java
Added Command.args(File arg) to avoid a lot of
args(file.getPath())
libcore/tools/runner/java/dalvik/runner/Command.java
Option --clean has expanded to --clean-before, --clean-after, and
--clean. Now --no-clean will remove nothing as Elliot
requested. --no-clean-after is now what is useful for
DalvikRunner debuggin. Default is still to clean before and
after.
libcore/tools/runner/java/dalvik/runner/DalvikRunner.java
Moved Vm.DALVIK_RUNNER_HOME to DalvikRunner.HOME.
/tmp/<UUID> paths are now /tmp/dalvikrunner/<UUID> paths are easier cleanup.
libcore/tools/runner/java/dalvik/runner/DalvikRunner.java
Driver was changed to use a ExecutorCompletionService around the
ExecutorService so that exceptions from the execute threads could
be reported on the main thread.
libcore/tools/runner/java/dalvik/runner/Driver.java
We now build the testrunner before the test so that its classes
will be around to be packed into APK files.
libcore/tools/runner/java/dalvik/runner/Driver.java
Dx.dex now takes File arguments instread of Strings. Dx.dex also
needs to pass additional memory arguments to not run out of memory
building the big dex for the APK. The values I used where from the
build/core/definitions.mk
libcore/tools/runner/java/dalvik/runner/Dx.java
postCompile was split into postCompileTestRunner and
postCompileTest because the packaging requires are very different
in each case for ActivityMode. Specifically, the test runner is
not post-packaged seperately, but packaged in the APK with each
test.
libcore/tools/runner/java/dalvik/runner/ActivityMode.java
libcore/tools/runner/java/dalvik/runner/DeviceDalvikVm.java
libcore/tools/runner/java/dalvik/runner/JavaVm.java
libcore/tools/runner/java/dalvik/runner/Vm.java
Changed testClass to test to avoid collision with new superclass field
libcore/tools/runner/java/dalvik/runner/JtregRunner.java
libcore/tools/runner/java/dalvik/runner/MainRunner.java
Added @SuppressWarnings("unchecked")
libcore/tools/runner/java/dalvik/runner/OptionParser.java
New android.app.Activity based on Elliot's TestAPK. It encapsulates an
ActivityRunner that invokes the appropriate TestRunner based on test.properties.
libcore/tools/runner/java/dalvik/runner/TestActivity.java
New class that shared contains (old and some new) between the
DalvikRunner and the TestRunner.
libcore/tools/runner/java/dalvik/runner/TestProperties.java
Regression test script for debugging the matrix of various
DalvikRunner modes and test types:
libcore/tools/runner/test-dalvik-runner.sh
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--skip-clean is now --no-clean
--java-home now defaults to 1.5
--mode is now used to specify to run on host's java-home
DalvikRunner page examples are updated with new --mode and --java-home
Fixes junit tests to work on host by using changing classpath to be absolute paths
Some minor scaffolding to prepare for running tests within an android.app.Activity.
(Patchset 2 adds default --java-home location to usage output)
(Patchset 3 address reviewer comments, mostly newbie style issues)
(Patchset 4 address enh OptionParser issues, adds short/byte as well)
(Patchset 5 address enh OptionParser issues, work with "java" from PATH, change deviceRunnerDir to File)
|
| |
|
|
|
|
|
|
|
|
|
| |
This came up for the XML test suite, which isn't JUnit but a bunch
of main methods (that ask you to verify their output independently; ugh)
Also setting up the current working directory of the forked process.
This only works for local VMs; setting the working directory for
device VMs causes the "adb shell" call to crash.
|
|\ |
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
| |
This is a bit of a hack, but I think it's not unreasonable, given the purpose
of this tool (and the fact that we both favor writing our tests in the package
they're testing).
Bug: 2362187
|
|
|
|
| |
Plus other jtreg test scrubbing.
|
| |
|
| |
|
|
|
|
| |
upfront.
|
|
|
|
|
| |
Although tedious, we found a real bug in the mix. This also removes some
of the noise from our test results.
|
|
Now that it runs caliper and JUnit, the old name was awful clumsy.
|