| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
- "vogar --debug-port <port>" now overrides --timeout-seconds to be zero
to prevent timeouts during interactive debugging
- "vogar --timeout-seconds 0" now disables timeout
as a side-effect of the previous change
- "vogar" no longer defaults to "javac -Xmaxerrs 1"
This is to make using vogar's output more useful when iteratively developing tests.
continuous build needs to use "vogar --javac-arg -Xmaxerrs --javac-arg 1"
- "vogar --ident ''" allows disabling of output formating
This prevents output parsing problems for Emacs *compilation* buffers
Change-Id: I599590c9c4fe3c57524af5c4d7f2be2e30ad4685
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Emacs makes hidden bogus symlinks for open modified files such as
".#Foo.java -> user@host.pid:rand" which I'm guessing are to identify
the owning user/host/process. Unfortunately, DalvikRunner was picking
these up as source and trying to compile them.
This change makes NamingPatternCodeFinder ignore these. In order to
avoid duplicating this in all the subclasses, the subclasses now call
super.matches as a first pass. Now subclasses only apply any
additional filtering they want. MainFinder.matches was deleted since
it wasn't adding any new restrictions.
We arguably could add a better starting filter perhaps, but skipping
dot files seems a reasonable first stem.
Change-Id: Ic9f5ec0bb629d5e1bc25a5b80a6619a64285d2b0
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
IOError and IOException are just copied from harmony. The native code
is all our own, and the File code is rewritten to match our earlier
changes. FileTest gains more tests for the new methods' behavior with
File("").
We still can't test most of this stuff directly because we run our tests
as root. Manual inspection looks good, though, and I've raised a bug
for switching our tests over to run as a non-root user.
I've removed all the Java 6 exceptions from expectations.txt because
we plan on fixing them all, and almost all of the ones mentioned there
are already addressed anyway.
Bug: 2497395
Change-Id: I517cd2d871bff64d63b2f4eb80fda4cfd6d19cd8
|
|
|
|
| |
Change-Id: Ie1d97b1b8a8a87cc8298a6de417104db324e9b47
|
|\ |
|
| | |
|
|/
|
|
|
| |
I often run vogar from various working directories but several
internal paths assume that it is run from the android_root.
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
/sdcard after reboot works again.
Merge commit '60a65773a7199f0a6b8f36bba00f11b84f8c0227' into dalvik-dev
* commit '60a65773a7199f0a6b8f36bba00f11b84f8c0227':
Minor fix for Adb.waitForNonEmptyDirectory so that waiting for /sdcard after reboot works again.
|
| |
| |
| |
| | |
reboot works again.
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| | |
runtime
Merge commit 'd1ad6ae8509d5890a7175a1dcd0a3f7fceb75d23' into dalvik-dev
* commit 'd1ad6ae8509d5890a7175a1dcd0a3f7fceb75d23':
DalvikRunner --tee option to send output to a file or stdout at runtime
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Added --tee option so we can watch test output while the test is
running, as opposed to waiting until all the output is collected.
As part of this, Command.Builder can now optionally specifiy a
PrintStream via tee (name from tee(1)).
Added ADB.waitForFile to accompany ADB.waitForNonEmptyDirectory
Removed gross bash wait loop hack in Activity Mode by replacing
Mode.buildCommands with Mode.runTestCommand.
Fixed bug that out generated APK package names did not contain a
required "." in all cases.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This fixes running junit tests for non-public classes, since bdc's --sdk
change went in. While --sdk is perfect for real people, it's probably not
what we want to use ourselves. Since this script is already hard-coded
for use in an Android build tree, this seems like a reasonable place to
apply the fix.
|
|/
|
|
| |
(Longer term, we want to package junit, but this gets us running again.)
|
|\ |
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the now-unnecessary jsr305 and guava build dependencies.
Move TestActivity.java -- which is only needed at *run* time -- out into
lib/, which lets us simplify the makefile.
Pass the dalvik.annotation.* source files to javac(1) (at *run* time) so
we don't need the run-time dependency on core-intermediates [that I'd
already removed in a successful attempt to find out why we had the
dependency].
We need to remove all uses of those useless annotations from the harmony
tests so we can get back in sync with upstream, but now also so that we
can clean up this part of DalvikRunner.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
created.
Adding a --skip-clean option.
Adding a --device-runner-dir option to run off the SD card
|
|
|
|
| |
Moving tests to the local sdcard.
|
| |
|
|
|
|
|
| |
Fixing a bug where we were attempting to execute errord out tests. And
renaming the testClasses to a testClasspath.
|
|\
| |
| |
| |
| | |
* changes:
Updating Caliper runner to correspond with caliper r20091215
|
| | |
|
| |
| |
| |
| |
| |
| | |
The relevant libcore .java files were all under test/java/ directories, but
that's not generally true, and not true in the specific case of caliper's
benchmarks.
|
|/
|
|
|
|
| |
Use the same technique frameworks/base uses when building external/apache-http
to build the dalvik_jtreg dependencies. This is ugly, but seems to keep the
host and device builds off each others' toes.
|
|
|
|
| |
we'll need to fix a few things before the UI for this is nice.
|
|
|
|
| |
Also fixing the number of threads used by the driver.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
will compile a focused set of tests, install them on the device, and
run them.
There are still some features missing in the current test runner:
- it requires JUnit to be compiled manually "mmm external/junit". I'm
trying to figure out why our build system cannot find it.
- it requires the full test suite already be on the device. This is
necessary for the support test files and annotations. I intend to
create a follow up change to move those into a smaller target.
For now "mmm dalvik snod" will build these.
- JUnit test expectations are at the class level, not the method level.
I don't yet have a mechanism to introspect the .java file from JUnit
to get its method-level detail.
- jtreg tests can only be run as a directory, not as a single test.
|
| |
|
| |
|