Added an ability to pass arguments with space character to the application by using the command "--args":
./ios-deploy ... --args "\"TEST_FILTER=some text here\" arg2 arg3"
This commit is contained in:
parent
6fc2ee5e38
commit
c5d206b72c
12
ios-deploy.c
12
ios-deploy.c
@ -57,6 +57,7 @@ const char* lldb_prep_noninteractive_cmds = "\
|
|||||||
#define LLDB_FRUITSTRAP_MODULE CFSTR("\
|
#define LLDB_FRUITSTRAP_MODULE CFSTR("\
|
||||||
import lldb\n\
|
import lldb\n\
|
||||||
import sys\n\
|
import sys\n\
|
||||||
|
import shlex\n\
|
||||||
\n\
|
\n\
|
||||||
def connect_command(debugger, command, result, internal_dict):\n\
|
def connect_command(debugger, command, result, internal_dict):\n\
|
||||||
# These two are passed in by the script which loads us\n\
|
# These two are passed in by the script which loads us\n\
|
||||||
@ -86,7 +87,7 @@ def run_command(debugger, command, result, internal_dict):\n\
|
|||||||
device_app = internal_dict['fruitstrap_device_app']\n\
|
device_app = internal_dict['fruitstrap_device_app']\n\
|
||||||
error = lldb.SBError()\n\
|
error = lldb.SBError()\n\
|
||||||
lldb.target.modules[0].SetPlatformFileSpec(lldb.SBFileSpec(device_app))\n\
|
lldb.target.modules[0].SetPlatformFileSpec(lldb.SBFileSpec(device_app))\n\
|
||||||
lldb.target.Launch(lldb.SBLaunchInfo(['{args}']), error)\n\
|
lldb.target.Launch(lldb.SBLaunchInfo(shlex.split('{args}')), error)\n\
|
||||||
print str(error)\n\
|
print str(error)\n\
|
||||||
\n\
|
\n\
|
||||||
def autoexit_command(debugger, command, result, internal_dict):\n\
|
def autoexit_command(debugger, command, result, internal_dict):\n\
|
||||||
@ -500,15 +501,8 @@ void write_lldb_prep_cmds(AMDeviceRef device, CFURLRef disk_app_url) {
|
|||||||
if (args) {
|
if (args) {
|
||||||
CFStringRef cf_args = CFStringCreateWithCString(NULL, args, kCFStringEncodingASCII);
|
CFStringRef cf_args = CFStringCreateWithCString(NULL, args, kCFStringEncodingASCII);
|
||||||
CFStringFindAndReplace(cmds, CFSTR("{args}"), cf_args, range, 0);
|
CFStringFindAndReplace(cmds, CFSTR("{args}"), cf_args, range, 0);
|
||||||
|
|
||||||
//format the arguments 'arg1 arg2 ....' to an argument list ['arg1', 'arg2', ...]
|
|
||||||
CFMutableStringRef argsListLLDB = CFStringCreateMutableCopy(NULL, 0, cf_args);
|
|
||||||
rangeLLDB.length = CFStringGetLength(argsListLLDB);
|
|
||||||
CFStringFindAndReplace(argsListLLDB, CFSTR(" "), CFSTR(" "), rangeLLDB, 0);//remove multiple spaces
|
|
||||||
rangeLLDB.length = CFStringGetLength(argsListLLDB);
|
|
||||||
CFStringFindAndReplace(argsListLLDB, CFSTR(" "), CFSTR("', '"), rangeLLDB, 0);
|
|
||||||
rangeLLDB.length = CFStringGetLength(pmodule);
|
rangeLLDB.length = CFStringGetLength(pmodule);
|
||||||
CFStringFindAndReplace(pmodule, CFSTR("{args}"), argsListLLDB, rangeLLDB, 0);
|
CFStringFindAndReplace(pmodule, CFSTR("{args}"), cf_args, rangeLLDB, 0);
|
||||||
|
|
||||||
CFRelease(cf_args);
|
CFRelease(cf_args);
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user