History log of /external/vogar/src/vogar/android/HostRuntime.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
96d88e038d269742325394392a1aa98054c9de7b 15-Feb-2016 Neil Fuller <nfuller@google.com> Retry implementing --debuggable

VmCommandBuilder is also used for --mode jvm:
"-Xcompiler-option --debuggable" cannot be inserted there;
the "java" command rejects it.

Bug: 27186214
(cherry-picked from commit 9712658a463c437f5437bcd981e7e6beacac0dc5)

Change-Id: Ic4fab77aed0f6b844aae0ce1c503618bef7ceb5e
/external/vogar/src/vogar/android/HostRuntime.java
51e82d0c6bd72bbf8a7428f7e8f0881337910e2c 11-Feb-2016 Neil Fuller <nfuller@google.com> Move to using jack for more things instead of dx

Use jack to create .dex.jar files for --mode=host and
--mode=device with --toolchain jack.

Also allow for .jack files on the classpath.

This is a quick-and-dirty change to keep things working for
Jack. Jack is required for the Java 8 work to proceed without
breaking the ART continuous build.

This change deliberately leaves the existing (toolchain=jdk)
untouched.

These changes are just intended to modify the --toolchain
jack behavior. --toolchain jdk should remain the same.

Bug: 27115876
Bug: 26753820
(cherry-picked from commit 4b2e7ab15323b2b057e8bb7b0cf361bb2ab880e0)

Change-Id: I02e7b7aa144f49e1fde8de16384b170be6f50cb0
/external/vogar/src/vogar/android/HostRuntime.java
411cb1fb67241125203629229600ecbd821eb9c7 19-Nov-2015 Paul Duffin <paulduffin@google.com> Fix escaping and grouping of arguments to the Target shells

Vogar allows custom arguments to be passed to the classes being
tested. If these contain special shell characters then the
command line used to run the tests may not be correct. e.g. If
the argument was "-Cvm.args=-Xmx256M -Xms256M" (which tells
Caliper to run the benchmark in a process with an initial and
maximum heap size of 256M) then when the command is actually run
by the adb shell they are split into two arguments,
"-Cvm.args=-Xmx256M" and "-Xms256M" which causes Caliper to fail
as the latter is an unrecognized Caliper option.

The solution is to simply escape any special shell characters
with a backslash (\) to ensure that they are treated as literal
characters.

Another bug is that any use of an argument "-c" will result in
all the following arguments being grouped into one, e.g.
fred -c wilma barney betty
will become
fred -c "wilma barney betty"

This behaviour is required when the -c option is part of "sh"
"-c" but not in any other case. This is currently implemented in
Command which is the wrong place as it's a generic class
independent of the Target and the grouping is dependent on the
target shell.

After some investigation it turns out that while grouping isn't
required for AdbTarget and SshTarget like it is for HostTarget
neither does it break anything. Therefore, for simplicity's sake
all targets will group their arguments into one when executing
the command line. That will be done before it is appended to the
targetProcessPrefix().

The escaping and grouping will be done by a new
Target.ScriptBuilder class, instances of which will be created
by a Target.newScriptBuilder() method that will make sure that
the ScriptBuilder returned will be appropriate for the target
shell.

It will provide support for specifying inline environment
variables, a working directory and adding tokens to the command
line. It will escape where necessary, e.g. it will not escape
the environment variable name or assignment but will escape the
value. It will escape all the tokens. When asked to construct an
appropriate command line to execute that script it will group
the script contents into one argument and append it to a target
specific prefix.

VmCommandBuilder will use the new ScriptBuilder to build the
command line that it then passes to Command. It will also be
changed to track environment variables explicitly (will use the
existing but unused env field and method) which it will then
pass onto the ScriptBuilder. Finally, it will track the
workingDirectory as well.

DeviceRuntime and HostRuntime will both change how they use
VmCommandBuilder to make use of the env(String, String) method
and the new workingDirectory(File).

Command will remove the processArgs() method and simply take a
copy of its args.

Added new tests for ScriptBuilder.escape(String) method and
a JUnit 4 TestSuite AllTests that can be used to run all the
tests that currently work within an IDE.

Change-Id: I0351c9fd3fe9d42c1b454251cf78ff74fafb08b2
/external/vogar/src/vogar/android/HostRuntime.java
af11af97e4456b8b28b6914dfede7ca6c1272c1a 19-Sep-2015 Alex Light <allight@google.com> Fix vogar

Change-Id: Ie24556b9fc9c487033dbb3e69bb7ede426d3b991
/external/vogar/src/vogar/android/HostRuntime.java
128163bc9658aad4a0b331ff9a777a7719d8c459 18-Sep-2015 Alex Light <allight@google.com> Make vogar work if one uses OUT_DIR

Change-Id: I19824d792d5dcbed32846912fb36654894fcc0ac
/external/vogar/src/vogar/android/HostRuntime.java
f76a1e929a3ad46e7612a9307efffffc47222cc4 31-Jul-2015 Rayhaan Jaufeerally <rayhaan@google.com> JNI check flag in Vogar.

Add a flag to toggle the use of -Xcheck:jni when not in benchmark
mode. (see b/22310991).

Change-Id: Ibb3c78f154ff0653790f3ef75615015b4b26f64d
/external/vogar/src/vogar/android/HostRuntime.java
fca99ba6a930cd7a36b1807c0201f49a80cadcf6 13-Jul-2015 Rayhaan Jaufeerally <rayhaan@google.com> Experimental support for jack on host mode.
This includes adding a --toolchain={jack,jdk} option which chooses what
to compile sources with. Currently only works with host mode and pending
on b/22382563 to be able to properly compile code with dependencies on
the surrounding package. This depends on the prebuilt jack jar file in
AOSP.

Change-Id: Id4d5eaa51318009fd8a147e4c548be3c62f9c5aa
/external/vogar/src/vogar/android/HostRuntime.java
6373ab628b4a93a375b8cfde633229816ba101af 09-Jul-2015 Rayhaan Jaufeerally <rayhaan@google.com> Drop support for legacy modes: DEVICE_DALVIK, DEVICE_ART_KITKAT, HOST_DALVIK, HOST_ART_KITKAT.

Change-Id: I62825c2055e6865d531bf549e1a75177c0103b74
/external/vogar/src/vogar/android/HostRuntime.java
b3c0729475d1ca64d6c64d2d42f190093c7ff300 25-Jun-2015 Nicolas Geoffray <ngeoffray@google.com> Add environment variable now required by ART on host.

We switched ART to using dlopen instead of our own .oat
file loader. We load the boot image at a fixed address, which
requires LD_USE_LOAD_BIAS to be set for dlopen to work.

Change-Id: I63f36e3128233a80531e146ae104eac550bb7220
/external/vogar/src/vogar/android/HostRuntime.java
83672b1eeb88b7b8e04126a8656ac4594f676a54 22-Apr-2015 Elliott Hughes <enh@google.com> Fix vogar's idea of quoting.

This patch switches us over to using "sh -c" on the host and
"adb shell sh -c" on the device for consistency. Before we were using
exec(2) directly on the host and relying on a bug in adb shell on the
device. This patch stops exploiting that bug (which was fixed as bug
http://b/20323053) and stops using exec(2) locally to keep us honest.

We should probably remove SshTarget, but that's a job for another patch.

Bug: http://b/19734868
Bug: http://b/20323053
Change-Id: I9a74050e10502ff062fe404f8359aecdb82afbe2
/external/vogar/src/vogar/android/HostRuntime.java
6c6446ae4491f6e0aae46d7af1b272df79696dd8 25-Nov-2014 Nicolas Geoffray <ngeoffray@google.com> Only set verify:none for dalvik.

It has the side effect of disabling ART's compiler (which relies on
the verifier).

Change-Id: I3201f861897fadef5962d31c600279ca21c39b68
/external/vogar/src/vogar/android/HostRuntime.java
0bfe27ed7e3a2a83e45688ecb420df7b30a59a85 16-Sep-2014 nfuller@google.com <nfuller@google.com@aa685c63-decc-881d-cd2b-7fa72aad72e1> Use --var=x64 to run the 64-bit version of ART
on platforms that support it.

--var=x32 is still the default.


git-svn-id: http://vogar.googlecode.com/svn/trunk@300 aa685c63-decc-881d-cd2b-7fa72aad72e1
/external/vogar/src/vogar/android/HostRuntime.java
c620846e4044b3b3a8abfc42ddba4adca4e545d9 05-Aug-2014 nfuller@google.com <nfuller@google.com@aa685c63-decc-881d-cd2b-7fa72aad72e1> Adding back support for Dalvik.
Laying groundwork for 64-bit ART support (--var)
Fixing app_process / activity modes.
Refactoring / renaming classes to better
reflect their purpose.

--mode device and --mode host are for ART-only
releases.
--mode device_dalvik and --mode host_dalvik are
for Dalvik releases.
--mode device_art_kitkat and --mode host_art_kitkat
are for running ART on KitKat releases. Host mode
appears broken, not sure why.

--mode app_process is ART-specific now unless run with
an SDK.

--mode activity didn't appear to work. It works for
simple tests now with ART or with an SDK.

L introduced some changes to System property
behavior which broke TestEnvironment and have been
worked around.


git-svn-id: http://vogar.googlecode.com/svn/trunk@299 aa685c63-decc-881d-cd2b-7fa72aad72e1
/external/vogar/src/vogar/android/HostRuntime.java